為什麼需要資料分片?
現在要處理的資料量已經由gb跨越到pb的階段,單機無法處理,所以只能增加機
器擴大儲存空間,那麼資料就必須要切割。資料分片後,如何確定分片資料與機器
節點的對映關係,這就需要資料分片與路由演算法。
補充:資料複製,備份分片資料,可以提高系統可用性,以及提高系統讀效能,關
鍵的問題就是如何保證資料一致性。
常見資料分片演算法
round robin
將資料的key取hash然後模上機器節點的數量。缺點很明顯,當機器節點改動時會讓大量的資料失效。
虛擬桶在資料與機器節點之間新增虛擬桶這一層,資料到虛擬桶是通過hash多對一的對映,虛擬桶到機器節點是通過主節點記憶體中的一張表實現多對一的對映,所以當新增機器時只需要將若干虛擬桶移動到對應的節點即可。
一致性hash
我們構建邏輯上長度為2^32的環,根據每台機器節點的ip位址等資訊計算出它們的hash,對應的 hash值就是他們在環上的位置。當資料被插入時,根據資料的hash值順時針尋找,第乙個被找到的機器節點存入該資料。同時為了避免節點分布不均衡,以及增加新節點時能平攤大多數機器節點的壓力,我們增加虛節點的概念,將乙個機器節點對映成多個,同時打散分布。
注:由於它的節點之間是p2p的,所以它的維護成本較高。
範圍分片
根據資料的主鍵劃分範圍,乙個範圍對應一台節點,其對映關係由一張表維護,需要注意的是在這張表往往不是單層的結構,而是乙個b+樹,以適於範圍的**。
路由與交換技術第一章
1.在交換機上作如下配置 switch config ip default gateway 192.168.2.1 其作用是 2.0分 a 配置交換機的預設閘道器,為了可以實現對交換機進行跨網段的管理 b 配置交換機的預設閘道器,為了使連線在此交換機上的主機能夠訪問其他主機 c 配置交換機的管理ip...
python第一章筆記 第一章 基礎
參與除法的兩個數中有乙個數為浮點數,結果也為浮點數 如 1.0 2,1 2.0,1.0 2.0 python print 1.0 2 結果 0.5 print 1 2.0 結果 0.5 print 1.0 2.0 結果 0.5 整數 整數,計算結果的小數部分被截除,只保留整數部分 不會四捨五入 如 ...
第一章 緒論
1.16 void print descending int x,int y,int z 按從大到小順序輸出三個數 print descending 1.17 status fib int k,int m,int f 求k階斐波那契序列的第m項的值f gender char schoolname 校...