绝想首页

Cassandra 分区算法

张洁37krqg [无奈] 2013-04-23 20:11:25 星期二 晴天 查看:157 回复:1 发消息给作者

1。根据Token得到Range
2。新插入的Token导致原来的某个Range被split为多个Range,记录下来得到一个Map,key为split前的Rang,value为split后的sub Rang列表,这个map为splitRangs
3。得到老的Rang到EndPoint的映射,
oldRangToEndPointMap ,Map,key为Rang,value为负责该Rang的replica节点的EndPoint列表
4。得到Map,replicasForSplitRangs,这个Map记录被split的Rang对应的replicas节点的EndPoint
5。将oldRangToEndPointMap里面被split的Rang删除
6。将split后的sub Rang加入到oldRangToEndPointMap中,让这些sub Rang对应其父Rang(被split的Rang)对应的EndPoint
7。把新Token加进去,重新得到所有Rang列表
8。根据新的Rang得到新的Rang到EndPoint的影射,newRangToEndPointMap
9。


G    A    B    C    D    F
[A-B] B,C,D
G    A    B    E    C    D    F
[A-B]B,E,C    D->E

[B-E]C,D,F
[B-E]E,C,D    F->E

[E-C]C,D,F
[E-C]C,D,F

[G-A]A,B,C
[G-A]A,B,E    C->E


顶一下(33 写日记 1252482 240607
上一篇:1下一篇:2013.04.23
分享排行

 

 

留住已经逝去的峥嵘岁月 记住曾经绽现的万种风情 在记忆即将淡漠的时候 来把这些重新回味

Copyright (C) 2008-2014 www.juexiang.com, All Rights Reserved.

京ICP备2023001011号-3   京公网安备11010802011908号

客服QQ 1017160561 违法和不良信息举报电话 13148464312 邮箱 1017160561@qq.com