cassandra最終一致性相關演算法資料結構
Merkle Tree(MT)是一個非常容易理解的資料結構,簡單來說就是一顆hash樹,在這棵樹中,葉子節點的值是一些hash值、非葉節點的值均是由其子節點值計算hash得來的。在Dynamo中,每個節點儲存一個範圍內的key值,不同節點間存在有相互交迭的key值範圍。在去熵操作中,考慮的僅僅是某兩個節點間共有的key值範圍。MT的葉子節點即是這個共有的key值範圍內每個key的hash,透過葉子節點的hash自底向上便可以構建出一顆MT。 Dynamo首先比對MT根處的hash,如果一致則表示兩者完全一致,否則將其子節點交換並繼續比較的過程。
1.Dynamo中每個子節點儲存一個範圍內的key值,如何比較不同節點上相同key範圍的hash?
2.MT與線段樹資料結構的比較
線段樹:
CommitLog類>
3.雙端佇列資料結構
private final Deque
4.commitlog segment 大小硬編碼
private volatile int segmentSize = 128*1024*1024; // roll after log gets this big
commitlog有一個固定大小的commitlogHeader結構,
其包含兩個重要的資料結構,每個CF在兩個陣列中都有一個對應的元素:
點陣圖陣列(BitSet Dirty)
->若CF對應的Memtable中有髒資料,則置為1,否則為0;在恢復的時候可以指明那些CF需要從commitlog中恢復。
整數陣列(int[] lastFlushedAt )
->儲存的是CF上次Flush時日誌的偏移位置,恢復是可以從這個位置讀取commitlog。
5.bloom filter演算法
http://blog.csdn.net/wh62592855/article/details/5750337
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23937368/viewspace-1053924/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Cassandra的內部資料儲存結構
- 訊息最終一致性最易用的新架構架構
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 那些關於前端資料結構與演算法前端資料結構演算法
- MySQL半同步複製資料最終一致性驗證MySql
- cassandra業務資料一致性問題處理?
- 資料結構:初識(資料結構、演算法與演算法分析)資料結構演算法
- 非關係型資料庫:Cassandra資料庫
- iOS @property 屬性相關的總結iOS
- 【PHP資料結構】PHP資料結構及演算法總結PHP資料結構演算法
- 資料結構&演算法資料結構演算法
- 資料結構演算法資料結構演算法
- Cassandra 分散式資料庫詳解,第 2 部分:資料結構與資料讀寫分散式資料庫資料結構
- 關於資料結構資料結構
- RocketMQ系列(七)事務訊息(資料庫|最終一致性)MQ資料庫
- 資料結構與演算法:圖形結構資料結構演算法
- leetcode演算法資料結構題解---資料結構LeetCode演算法資料結構
- 前端演算法 - 資料結構前端演算法資料結構
- 基本資料結構演算法資料結構演算法
- 資料結構——Floyd演算法資料結構演算法
- 資料結構和演算法資料結構演算法
- 資料結構及演算法資料結構演算法
- 演算法和資料結構演算法資料結構
- 資料結構演算法題資料結構演算法
- 資料結構與演算法資料結構演算法
- 對資料結構和演算法的關係的理解資料結構演算法
- 資料結構與演算法之間有何關係?資料結構演算法
- 圖資料庫|正反向邊的最終一致性——TOSS 介紹資料庫
- python演算法與資料結構-演算法和資料結構介紹(31)Python演算法資料結構
- [資料結構與演算法]-動態規劃之揹包演算法終極版資料結構演算法動態規劃
- 資料結構——關聯容器資料結構
- python演算法與資料結構-什麼是資料結構Python演算法資料結構
- 資料結構 & 演算法 in Swift (一):Swift基礎和資料結構資料結構演算法Swift
- 最終一致性落地實踐
- 連通性相關
- 資料結構與演算法之線性結構資料結構演算法
- Cassandra 資料模型模型
- Cassandra資料庫資料庫