《大數據日知錄》讀書筆記-ch1數據分片與路由
阿新 • • 發佈:2019-04-09
lsp 負載不均 圖片 obi 縱向擴展 數據庫 b+樹 ash padding
目前主流大數據存儲使用橫向擴展(scale out)而非傳統數據庫縱向擴展(scale up)的方式。因此涉及數據分片、數據路由(routing)、數據一致性問題
二級映射關系:key-partition映射,partition-machine映射
首先找到partition(比如hash),然後找machine(路由routing)
hash分片方式1:Round Robin
新增一臺機器:
需要重新分配數據歸屬,靈活性差
hash分片方式2:虛擬桶(virtual buckets)
hash分片方式3:一致性hash(consistent hashing)
提高靈活性:集群各機器連成一個環
路由問題:每個節點配置路由表(finger table)。N14的路由表:
每個機器根據路由表轉發請求,直到查到value數據。
新節點加入、離開集群需要結合穩定性檢測策略,更新前後繼指針
穩定性檢測:定期向前後繼節點發送請求,更新前後繼指針
解決負載不均衡/機器異質性問題:引入虛擬節點,將每個物理節點虛擬成多個虛擬節點,分別映射到hash環不同位置
範圍分片(range partition):
數據分片在物理機管理往往采用LSM樹,BigTable采用類似B+樹的多層結構
Dynamo | Cassandra | Riak | Voldmort | Membase/Couchbase | BigTable | Azure | PNUTS | |
介紹 | 內存分布式NoSQL | |||||||
數據分片 | consistent hash | consistent hash | hash | hash | hash | range | range | hash+range |
virtual node | B+ tree |
《大數據日知錄》讀書筆記-ch1數據分片與路由