经过阅读源代码 总结了一下官方文件没有说到的更细节一些的步骤:

开始Rebalance的步骤:
1验证集群的状态,所有的server都是NORMAL_SERVER
2.//向cluster发布的cluster.xml, 新加的节点 没有partition信息 旧节点的分区不变,这个cluster叫current cluster
3.  copy一份current cluster,这个拷贝叫transition cluster,for:每个要迁移的分区,将这个分区加入到transition cluster,并发布到每个server上,而且改变每个server的状态。
4.for:每个分区,数据开始迁移,在一个list中 主到主的迁移要优先于 从到相应从(主的按某顺序的下一个节点)的迁移。
5。 for每个分区:上面的工作完成后 crrent cluster=transition cluster
6。若对某个分区的迁移失败,那么改变所有Server的状态,将current cluster发布到所有server。这时current cluster中已经迁移成功的分区是有效的。而迁移失败的分区在迁移的过程中事实上已经接受写数据了,但是由于状态回滚,这些新写的数据在回滚后已经是属于老节点的数据了~ 这时系统恢复到正常状态只能依靠stealer node自己的repair功能,遍历自己的数据发现不属于自己的数据就放到slop库中等待转发.最后将恢复。

转载于:https://blog.51cto.com/xiaomao870311/703052

voldemort分布式数据库Rebalance的代码总结相关推荐

  1. 全面讲解分布式数据库架构设计特点

    行业背景 随着全球经济下行压力增大,中美贸易摩擦愈演愈烈,美国一系列的经济制裁和技术封锁使得我们有种被扼住咽喉的感觉,数据库作为基础软件中的重要一环有着很深的技术含量,在这样的大背景下国产数据库厂商开 ...

  2. 腾讯分布式数据库DCCB

    分布式数据库 DCDB 的优势 1.性能/容量线性增长 DCDB 是天然的 MPP (Massively Parallel Processing,大规模并行处理系统)架构,这意味着随着 DCDB 分片 ...

  3. 分布式数据库实战第六节 数据库中间件的研究

    21 知识串讲:如何取得性能和可扩展性的平衡? 这一讲我们来总结一下模块三.经过这个模块的学习,相信你已经对分布式数据库中分布式系统部分常见的技术有了深刻的理解.这是一节知识串讲的课,目的是帮助你将所 ...

  4. 开源分布式数据库中间件

    转自:https://www.csdn.net/article/2015-07-16/2825228 MyCat:开源分布式数据库中间件 为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性 ...

  5. 重磅!分布式数据库解决方案Apache ShardingSphere毕业成为顶级项目

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 全球最大的开源软件基金会 Apache 软件基金会(以下简称 Ap ...

  6. 网易分布式数据库多活架构的演进与实践

    本文根据周劲松老师在[deeplus直播第228期]线上分享演讲内容整理而成. 周劲松 网易杭州研究院资深研发工程师 来自网易数据科学中心,目前是网易分布式数据库DDB及网易数据运河NDC项目负责人. ...

  7. 一款低延迟的分布式数据库同步系统--databus

    每次看到马路对面摩托罗拉的大牌子,都想起谷歌125亿美元收购摩托罗拉移动,后来又以29亿美元卖给联想的事情.谷歌所做的决策都比较考虑长远利益,在这串交易中,谷歌获得了摩托罗拉最有价值的几千项专利,稳健 ...

  8. 传承or创新 ?解密分布式数据库自研修炼之路

    一直以来,数据库的核心研发团队都十分神秘,作为隐藏在幕后的隐士高人,他们对数据库研发的心得是什么?他们又对数据库的未来发展有什么看法呢?本文就由巨杉数据库核心技术研发团队的"老司机" ...

  9. 分布式数据库解决方案Apache ShardingSphere毕业成为顶级项目

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「ShardingSphere官微」 全 ...

  10. 开源分布式数据库RadonDB的核心技术与实现

    本文根据张雁飞在[IT168微学堂 第61期]的演讲内容整理而成. 讲师介绍: 张雁飞,TokuDB内核贡献者.维护者,TokuDB企业级热备工具作者.曾就职于阿里云数据库内核团队,目前为青云Qing ...

最新文章

  1. 代码中配置log4j (同时输出不同级别的log到不同终端)
  2. CVPR 2019 | 一种用于年龄估计的连续感知概率网络
  3. 逻辑漏洞挖掘初步总结篇
  4. 机器学习中的数学知识(part1)
  5. cam350怎么看顶层_蛋糕胚速学教程大全,适合初学者看哦!
  6. npm环境安装linux,Node.js环境在linux上的部署教程
  7. 即席和即兴_即兴说话小课堂
  8. linux设置php时间,修改 linux 时区时间和 php 时区(示例代码)
  9. 千万别被“读书无用”给害了
  10. win7安装 - 避免产生100m系统保留分区的办法
  11. kali linux2.0输入法,kali2.0 设置输入法 找了好久,亲测有效
  12. 基于OpenXR,Collabora推开源VI-SLAM AR/VR定位系统
  13. 网易云类音乐--主页与登录界面结构html+css实现(三)
  14. mysql strip_strip 命令的用法
  15. mysql xtrabackup-v2_xtrabackup 备份问题
  16. 如何用代码实现图片,音频视频的复制粘贴
  17. 电脑播放视频一卡一卡的,一顿一顿的 怎么办
  18. Springboot毕设项目绩效考核管理系统m29awjava+VUE+Mybatis+Maven+Mysql+sprnig)
  19. 运维部知识库管理办法V1版
  20. 蓄“视”待发 TCL显示器在全球最大智能显示终端制造基地下线

热门文章

  1. 题解 luoguP2928 【[USACO09HOL]牛的打手Cattle Bruisers】
  2. 爬虫--Item Pipeline 介绍(21)
  3. hoolilaw解读:在美国一不小心就犯法 一言不合就法庭见
  4. ipa图片解密 php,ipa文件详解 - 如何提取App图片
  5. java调用微软语音库,微软语音识别SDK总结
  6. CCD(像素)与视觉系统的基础知识
  7. android 加速度过滤,如何校准Android加速度计并降低噪音,消除重力
  8. 计算机基础应用本终结性考试,计算机应用基础
  9. html中siblings方法,jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例...
  10. 665. Non-decreasing Array