2016-04-21 52 views

回答

0

我不明白你的意思是多羣集。所以,我會回答單個羣集。假設您有一個包含5個節點的C *集羣,並且您的複製因子是5(從1開始 - 在評論之後編輯)。

當前狀態(X1,Y1)

你有兩個操作 更新(X1,Y2) 讀(X1)

現在對於不同的一致性水平圖案,

  1. READ QUORUM,WRITE QUORUM: 您總是從至少3個節點讀取數據,並始終向至少3個節點寫入數據。 所以你永遠不會讀舊數據。

  2. READ ONE,WRITE QUORUM: 您總是從1個節點讀取數據,並且總是寫入至少3個節點。 所以你有2/5的機會閱讀舊數據。

  3. 讀取一個,寫入一個: 您總是從一個節點讀取數據並始終寫入至少一個節點。 因此,您有4/5的機會閱讀舊數據。

欲瞭解更多模式,你可以檢查這個奇妙的工具。 http://www.ecyrd.com/cassandracalculator/

希望它有幫助!

+1

「你的複製因子是1」 - 你的意思是指定RF = 5嗎? –

+0

Plz明白我問了什麼。更新正在進行併發生讀取時會發生什麼。假設我有3個節點。節點1是更新節點2更新正在進行,並且該時間本身是一個讀取被調用。它會返回哪些數據?從節點1或節點2或節點3。可以說一致性水平是閱讀一,寫全部。 –

+0

@PritamPrakash試圖理解他的答案。他告訴你,爲了確保信息是正確的,你必須設置更高的一致性水平,這意味着檢查更多節點上的信息。如果讀取一致性級別,則全部寫入,cassandra將僅返回來自第一個查詢節點的信息。如果它是全部讀取的,它將通過比較每個節點上的所有值返回上次更新 – Whitefret