読み取り-自分-書き込みの一貫性は、いわゆる結果的一貫性から大幅に改善されています。プロフィール写真を変更した場合、1 分後に他の人が変更を確認するかどうかは気にしませんが、ページのリロード後にまだ表示される場合は奇妙に見えます。古いもの。
複数のノードで完全な読み取りチェックを行うことなく、Cassandra でこれを実現できますか?
ConsistencyLevel.QUORUM
不特定のデータを読み込みながら使用しても問題なく、実際に n>1 ノードが読み込まれています。ただし、クライアントが書き込みと同じノードから読み取る場合 (実際には同じ接続を使用する場合) は、無駄になる可能性があります。この場合、一部のデータベースは、以前に書き込まれた (私の) データが返され、古いデータではなく常に返されることを保証します。を使用ConsistencyLevel.ONE
してもこれは保証されず、競合状態につながると想定されます。いくつかのテストでこれが示されました:
このシナリオの私の仮定のセットアップは、2 つのノード、レプリケーション ファクター 2、読み取りレベル 1、書き込みレベル 1 です。
私の意見では、RF=3、RL=quorum、WL=quorum の 3 つのノードを使用すると、「自分の」データのみで一貫性を保つだけで十分な場合、無駄な読み取り要求が発生します。
// seo: 別名: セッションの一貫性、read-after-my-write の一貫性