分布式-存储系统partitioning

什么是partitioning(划分)

有时一台机器存不下所有数据,这时,可以把数据存储在多台机器上。如何划分每台机器应该存储哪些数据,这就是partitioning(划分)。

最简单的划分方法

假设有N台机器,把一个key映射到某台机器最简单方法:pos = hash(key) % N

优点是,足够简单,并且数据均匀分布在每台机器上。

但是,如果集群需要增减机器,存在致命缺陷!用一个小例子来说明:

假设当前集群包含3台机器,编号是0,1,2,集群中已存储数据是:0,1,2,3,4,5,6,7,8,9,10,11,共12个数字。用此方法,第0号机器存储0,3,6,9;第1号机器存储1,4,7,10;第2号机器存储2,5,8,11;

现在新增一台机器,编号变为0,1,2,3。那么此时,正确的数据分布是:第0号机器存储0,4,8;第1号机器存储1,5,9;第2号机器存储2,6,10;第3号机器存储3,7,11;如果不是这样分布,客户端就无法读取到数据,因此新加机器后,需要对数据进行移动(data rebalance)

需要发生移动的数据用黑体标出:0,1,2,3,4,5,6,7,8,9,10,11。几乎所有数据都需要移动,假设集群包含100台机器,一共存储了100TB数据,就需要100TB数据在集群间传输,消耗太多资源。理论上,只要从原来的100台机器上,每一台拿出一点数据,凑出1TB数据移动到新增的那台机器上,即可达到数据均匀分布。

教导主任的方法

上面介绍的方法,一条数据的去向,完全由取模运算决定。

假设,学校有n个班,有一天要新增一个班,学校会怎么做???

很自然,由教导主任决定每个班应该有哪些小朋友去新班。

教导主任掌握了每一个班的情况,由她来做分配自然是最简单的方法。

这里,班级相当于机器,小朋友相当于数据,教导主任相当于掌握全局信息的人

教导主任只需要维护:小朋友-->班级 的映射。家长来接孩子时,只需问一下教导主任,就知道自己孩子在哪个班,记住就好,以后就不用经常麻烦教导主任了。

对教导主任的方法做一点优化

教导主任需要记录所有 小朋友-->班级 的映射,笔者的小学有2000多个小朋友,估计教导主任维护这么多条记录,一定要疯了

一个优化是,把小朋友分组,例如按照姓氏,姓“王”的一组,姓“李”的一组,教导主任此时只要维护 组-->班级 的映射。需要维护的映射数量,变少了很多。此时,一个班级包含“王”,“刘”,“李”三个组,另一个班级包含“祝”,第三个班级包含“房”,“蔡”

但是,现在的问题是,不同组的小朋友数量差别很大;有的班级,人数很多,有的班级人数很少。

但无论如何,通过分组,解决了教导主任需要维护太多映射的问题。下一个问题是,如何让组的规模均匀,这个问题不难想,这里不再讲了。

总结

增加教导主任的好处:

  1. 通过教导主任,由她掌握全局信息,划分班级的问题变得简单而自然;
  2. 在分布式问题中,增加一个教导主任,很多情景可以变得简单;

2018-06-15更新

其实,总结起来,有两种方式:将key分桶,每个机器负责一些桶(一致性哈希也是这个原理),易保持负载均衡,但是每台机器会失去key的连续性;另一种方式是按key范围切分,能保持key有序,但是易打破负载均衡。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容