11

読み取り-自分-書き込みの一貫性は、いわゆる結果的一貫性から大幅に改善されています。プロフィール写真を変更した場合、1 分後に他の人が変更を確認するかどうかは気にしませんが、ページのリロード後にまだ表示される場合は奇妙に見えます。古いもの。

複数のノードで完全な読み取りチェックを行うことなく、Cassandra でこれを実現できますか?

ConsistencyLevel.QUORUM不特定のデータを読み込みながら使用しても問題なく、実際に n>1 ノードが読み込まれています。ただし、クライアントが書き込みと同じノードから読み取る場合 (実際には同じ接続を使用する場合) は、無駄になる可能性があります。この場合、一部のデータベースは、以前に書き込まれた (私の) データが返され、古いデータではなく常に返されることを保証します。を使用ConsistencyLevel.ONEしてもこれは保証され、競合状態につながると想定されます。いくつかのテストでこれが示されました:

このシナリオの私の仮定のセットアップは、2 つのノード、レプリケーション ファクター 2、読み取りレベル 1、書き込みレベル 1 です。

私の意見では、RF=3、RL=quorum、WL=quorum の 3 つのノードを使用すると、「自分の」データのみで一貫性を保つだけで十分な場合、無駄な読み取り要求が発生します。

// seo: 別名: セッションの一貫性、read-after-my-write の一貫性

4

2 に答える 2

5

良い質問。

これを追加するためにhttp://issues.apache.org/jira/browse/CASSANDRA-876をしばらく開いていましたが、誰もそれを終わらせようとはしませんでした。

  1. CL.ONE は、余分な体操をしなくても、多くのワークロードに最適です。
  2. いずれにせよ読み取りは非常に高速であるため、余分なものを実行することは大したことではありません (実際、デフォルトでオンになっている読み取り修復は、とにかくすべてのノードがチェックされることを意味するため、CL.ONE とそれ以降の違いは実際には可用性に関するものです。性能より)

とはいえ、あなたが助けたいと思っているなら、チケットで尋ねてください。私はあなたを正しい方向に向けさせていただきます.

于 2011-07-29T05:35:32.427 に答える
0

私は Cassandra の開発をしばらく追跡してきましたが、このような機能は見たことがありません。

とはいえ、レプリケーション ファクターが 2 のノードが 2 つしかない場合、Cassandra が最適なソリューションかどうか疑問に思うでしょう。最終的には各ノードにデータ セット全体が存在することになるため、従来のレプリケートされた SQL セットアップの方が単純で、より広くテストされている可能性があります。Cassandra は非常に有望ですが、まだバージョン 0.8.2 であり、メーリング リストで定期的に問題が報告されています。

「自分の更新を見る」問題を解決するもう 1 つの方法は、Web サーバー、アプリケーション層、または memcached のようなものを使用して、クライアントに近い場所に結果をキャッシュすることです。

于 2011-07-28T21:34:05.083 に答える