我知道答案是Tunable Consistency。但任何人都可以用例子來闡述我。我無法找到真正的時間場景。在實施到項目之前。 PLZ解釋...對於單個羣集和多羣集如果在更新傳播到cassandra中的所有副本之前發生讀取,會發生什麼情況?
0
A
回答
0
我不明白你的意思是多羣集。所以,我會回答單個羣集。假設您有一個包含5個節點的C *集羣,並且您的複製因子是5(從1開始 - 在評論之後編輯)。
當前狀態(X1,Y1)
你有兩個操作 更新(X1,Y2) 讀(X1)
現在對於不同的一致性水平圖案,
READ QUORUM,WRITE QUORUM: 您總是從至少3個節點讀取數據,並始終向至少3個節點寫入數據。 所以你永遠不會讀舊數據。
READ ONE,WRITE QUORUM: 您總是從1個節點讀取數據,並且總是寫入至少3個節點。 所以你有2/5的機會閱讀舊數據。
讀取一個,寫入一個: 您總是從一個節點讀取數據並始終寫入至少一個節點。 因此,您有4/5的機會閱讀舊數據。
欲瞭解更多模式,你可以檢查這個奇妙的工具。 http://www.ecyrd.com/cassandracalculator/
希望它有幫助!
「你的複製因子是1」 - 你的意思是指定RF = 5嗎? –
Plz明白我問了什麼。更新正在進行併發生讀取時會發生什麼。假設我有3個節點。節點1是更新節點2更新正在進行,並且該時間本身是一個讀取被調用。它會返回哪些數據?從節點1或節點2或節點3。可以說一致性水平是閱讀一,寫全部。 –
@PritamPrakash試圖理解他的答案。他告訴你,爲了確保信息是正確的,你必須設置更高的一致性水平,這意味着檢查更多節點上的信息。如果讀取一致性級別,則全部寫入,cassandra將僅返回來自第一個查詢節點的信息。如果它是全部讀取的,它將通過比較每個節點上的所有值返回上次更新 – Whitefret