1.分区和复制
复制是指把相同的数据冗余多份,是一种保障;分区是指一份数据很大大家一起保存,有一点像是连城诀里的师兄弟三人一起保存剑谱。
2.分区方法
如果是随机分区虽然存储上是容易了,但是检查的时候需要搜索所有节点,事实上是把压力给到了查询,可以使用关键字哈希分区的方法。
使用关键字哈希类似从a到z区分的多本百科全书、或者史记资治通鉴这些按照年代分类的书籍,比如第二本是900-1000年,如果我们要查961年的事情,就在这本书里去查。
关键字哈希一定程度上解决了负载均衡的问题,但是如果数据本身是倾斜的,比如我们的所有数据都是关于万历十五年的事情,那如果要查某一件具体的事情我们就只能在这本书里一点一点全部去查。
针对这种数据本身的倾斜的一种解决方法是可以在数据前面加上伪随机数来区分,仍然是好处是能分区了缺点是要查所有这些分区。
3.分区数量
分区数量和节点数量如果是一一对应的有一个缺点,即节点的增加和删除,都可能改变key的映射,导致要迁移过多的数据,这也是一致性哈希解决的问题即尽量减少改变key的映射。
可以采用固定数量的分区,这样一旦key确定了,分区确定了就不会改变映射关系,难点是分区数量的选择,好处是一个节点可以对应多个分区,在节点上下线的过程中迁移的数据少。