除了quorum 以外,consistency level (CL)還有其他的選擇。
至少要有一個以上的副本節點回應(其實跟下面的ONE很像)。
有一個副本節點回應,操作即完成。
在本地的datacenter,有一個副本節點回應,操作即完成。
在本地的data center,執行QUORUM的策略。
每一個data center,都是執行QUORUM策略,但這個設定不是給讀取使用,只用在指定寫入的處理策略。
無論讀或寫,一定要等到所有副本節點回應,操作才算完成,此策略提高一致性,但是大幅降低了可用性。
值得一提的是,無論採取什麼樣的CL,實際上寫入的數量還是依照RF設定的數量。例如策略是設定ONE
,已經有一個節點完成的時候,就會通知操作完成,但是實際上看RF要寫入幾個副本,還是持續進行寫入副本的動作。
與client連線的節點,又稱coordinator(協調者)
,此時其他相對來說的副本節點,就叫做replica node
。
如下圖,coordinator不一定剛好會是要寫入或有目標的資料的節點,它的角色就是對其他replica node做處理。
如CL=1,RF=3的情況,只要有一個replica node
回應給coordinator成功,那就算成功了。
但如果CL=Quorum,RF=3的情況,則需要2個replica node
回應給coordinator成功,才算成功了。
為什麼是2個,不是3個,因為2個就過半了。