2011-12-14 59 views
2

衆所周知,我們在cassandra中具有ConsistencyLevel的ReplicationFactor。我們只是想要保持數據一致性。因爲它應該保持價格信息。使用cassandra並保持數據一致性

那麼哪種策略更好?

全部寫入 確保在響應客戶端之前寫入所有N個副本。任何無響應的副本將無法執行操作

全部讀取 將查詢所有副本,並在所有副本已答覆後返回具有最新時間戳記的記錄。任何無響應的副本都會使操作失敗。

它似乎寫所有肯定是最安全的。 但不知道如果讀取所有更好?任何關於它的利弊的意見?你認爲哪種nosql更好?

+0

我需要添加一些評論,如果你認爲在這個用例中其他一些nosql數據庫比cassandra更好。告訴我原因。事實上,我猜HBase可以在保持一致性方面做得更好。只是不知道非常詳細。 – 2011-12-14 01:27:47

+0

http://wiki.apache.org/cassandra/API – 2011-12-15 02:18:26

回答

2

「更好」取決於你想達到的目標。在一致性級別使用寫入或讀取ALL意味着如果即使一個節點沒有響應,您的羣集也將不可用於寫入(或讀取)。

通常,在一致性級別QUORUM寫入和讀取都是一種有效的均衡方法,因爲它提供了完全一致性(您永遠不會讀取過時的值),但也可以容忍少數節點的故障。

但「最佳」方法取決於您的應用程序以及您實際需要多少一致性。特別是,如果您可以容忍較低的一致性,您可以獲得更好的讀寫性能(以及更好的可用性)。

相關問題