m3db為讀寫操作以及集群連線操作提供了可變的一致性級別。
one : 對應於乙個操作成功的單個節點。
majority: 對應於操作成功的大多數成功節點。
all: 對應操作成功的所有成功節點。
one: 對應於從單個節點讀取以指定成功。
unstrictmajority: 對應於大多數節點的讀取,但在無法滿足約束時放鬆約束,在嘗試從大多數節點讀取後從至少乙個節點讀取時返回成功。
majority: 對應於從大多數節點讀取以指定成功。
all: 對應於從所有節點讀取以指定成功。
連線一致性級別用於確定在嘗試操作之前何時將客戶端會話視為已連線。
any: 對應於連線到所有碎片的任意數量的節點,此策略將嘗試連線到所有碎片,然後連線到多數碎片,然後連線到乙個碎片,然後返回到無碎片,因此始終會成功。
none: 對應於連線到所有碎片的無節點,因此始終會成功。
one: 對應於連線到所有碎片的單個節點。
majority: 對應於連線到所有碎片的大多數節點。
all: 對應於連線到所有碎片的所有節點。
配置方法
對於 m3query 及 m3coordinator 中,可以執行下面讀寫一致性配置
writeconsist
強一致性 弱一致性 最終一致性
這種方式在es等分布式系統中也有體現,可以設定主shard提交即返回成功,或者需要replica shard提交成功再返回。提到分布式架構就一定繞不開 一致性 問題,而 一致性 其實又包含了資料一致性和事務一致性兩種情況,本文主要討論資料一致性 事務一致性指acid 複製是導致出現資料一致性問題的唯...
資料一致性處理
資料一致性處理 當多個程序同時操作同乙個資料,會產生資源爭搶,資料一致性的問題。高併發情況下,涉及到寫操作時,不可能直接運算元據庫,大併發的連線會導致mysql請求會阻塞,比如大量的insert update 請求到,會直接導致無數的行鎖和表鎖,甚至最後堆積很多,從來觸發too many conne...
一致性雜湊
直接貼出一篇介紹的很清楚的博文。關鍵字一致性雜湊 平衡性,單調性,分散性,負載 其實說白了,就是解決把請求分散到不同的機器上運算,怎麼做分散的平均,機器少一台多一台,或者壞掉一台,成很好的自適應和拓展。最簡單的實現分布式演算法,取模嘛,但是它就上述的一些問題,所以不算好的雜湊函式。一致性雜湊演算法,...