2

ご存知のように、cassandra には ReplicationFactor の ConsistencyLevel があります。そして、データの一貫性を維持するためにそれを活用したいだけです. 価格情報を保持することになっているためです。

では、どの戦略が優れているでしょうか?

Write ALL クライアントに応答する前に、N 個のレプリカすべてに書き込みが行われるようにします。応答しないレプリカは操作に失敗します

Read ALL すべてのレプリカを照会し、すべてのレプリカが応答すると、最新のタイムスタンプを持つレコードを返します。応答しないレプリカは操作に失敗します。

確かに write ALL が最も安全なようです。しかし、すべてを読む方が良いかどうかわかりませんか? 賛否両論について何か意見はありますか?あなたがより良いと思うnosqlの他の選択肢はありますか?

4

1 に答える 1

2

「より良い」は、何を達成しようとしているかによって異なります。整合性レベル ALL で書き込みまたは読み取りを使用すると、ノードが1 つでも応答しなくなった場合に、クラスターが書き込み (または読み取り) に使用できなくなります。

一般に、一貫性レベル QUORUM で書き込みと読み取りの両方を行うことは、完全な一貫性を提供するため (古い値を読み取ることはありません)、効果的なバランスの取れたアプローチですが、少数のノードの障害を許容することもできます。

ただし、「最良の」アプローチは、アプリケーションと実際に必要な一貫性によって異なります。特に、一貫性の低下を許容できる場合は、読み取りと書き込みのパフォーマンス (および可用性) を向上させることができます。

于 2011-12-14T23:14:53.763 に答える