此命令顯示當前的一致性級別,或設置新的一致性級別。
Consistency可以理解讀和寫操作的Consistency Level
寫操作的consistency level指定了寫操作在通知客戶端請求成功之前,必須確保已經成功完成寫操作的replica的數量。
QUORUM級別確保數據寫到指定quorum數量的節點。一個quorum的值由下面的公式四舍五入計算而得:
(sum_of_replication_factors / 2) + 1
sum_of_replication_factors指每個數據中心的所有replication_factor設置的總和。
寫操作:
描述: 任意一個節點寫操作已經成功。如果所有的replica節點都掛了,寫操作還是可以在記錄一個hinted handoff事件之后,返回成功。如果所有的replica節點都掛了,寫入的數據,在掛掉的replica節點恢復之前,讀不到。
用法: 最小的延時等待,并且確保寫請求不會失敗。相對于其他級別提供最低的一致性和最高的可用性。
讀:
描述:向所有replica節點查詢數據,返回所有的replica返回的數據中,timestamp最新的數據。如果某個replica節點沒有響應,讀操作會失敗。
用法:相對于其他級別,提供最高的一致性和最低的可用性。
寫:
描述:寫操作必須將指定行的數據寫到所有replica節點的commit log和memtable。
用法:相對于其他級別提供最高的一致性和最低的可用性。
讀:
描述:向每個數據中心內quorum數量的replica節點查詢數據,返回時間戳最新的數據。
用法:同LOCAL_QUORUM
寫:
描述:寫操作必須將指定行的數據寫到每個數據中心的quorum數量的replica節點的commit log和memtable。
用法:用于多數據中心集群嚴格的保證相同級別的一致性。例如,如果你希望,當一個數據中心掛掉了,或者不能滿足quorum數量的replica節點寫操作成功時,寫請求返回失敗。
讀:
描述:返回本地數據中心內離coordinator節點最近的replica節點的數據。
用法:同寫操作Consistency level中該級別的用法。
寫:
描述:任何一個本地數據中心內的replica節點寫操作成功。
用法:對于多數據中心的情況,往往期望至少一個replica節點寫成功,但是,又不希望有任何跨數據中心的通信。LOCAL_ONE正好能滿足這樣的需求。
讀:
描述:向每個數據中心內quorum數量的replica節點查詢數據,返回時間戳最新的數據。避免跨數據中心的通信。
用法:使用SimpleStrategy時會失敗。
寫:
描述:本地數據中心內quorum數量的replica節點寫操作成功。避免跨數據中心的通信。
用法:不能和SimpleStrategy一起使用。用于保證本地數據中心的數據一致性。
讀:
描述:同SERIAL,但是只限制為本地數據中心。
用法:同SERIAL。
寫:
描述:本地數據中心內quorum數量的replica節點有條件地(conditionally)寫成功。
用法:用于輕量級事務(lightweight transaction)下實現linearizable consistency,避免發生無條件的(unconditional)更新。。
讀:
描述:返回由snitch決定的最近的replica返回的結果。默認情況下,后臺會觸發read repair確保其他replica的數據一致。
用法:提供最高級別的可用性,但是返回的結果不一定最新。
寫:
描述:任意一個replica節點寫操作已經成功。 滿足大多數用戶的需求。
用法:一般離coordinator節點具體最近的replica節點優先執行。
讀:
描述:讀取所有數據中心中quorum數量的節點的結果,返回合并后timestamp最新的結果。
用法:保證很強的一致性,雖然有可能讀取失敗。
讀:
描述:允許讀取當前的(包括uncommitted的)數據,如果讀的過程中發現uncommitted的事務,則commit它。
用法:輕量級事務。
讀:
描述:返回兩個最近的replica的最新數據。
用法:和ONE類似。
讀:
描述:返回三個最近的replica的最新數據。
用法:和TWO類似。
https://docs.datastax.com/en/archived/cassandra/2.0/cassandra/dml/dml_config_consistency_c.html
即使指定了consistency level ON或LOCAL_QUORUM,寫操作還是會被發送給所有的replica節點,包括其他數據中心的里replica節點。consistency level只是決定了,通知客戶端請求成功之前,需要確保寫操作成功的replica節點的數量。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。