mysql扩展性架构实践N库到2N 库的扩容,2变4、4变8

http://geek.csdn.net/news/detail/52070

58同城 沈剑

http://www.99cankao.com/algebra/modulo-calculator.php

取模计算器

扩展性也是架构师在做数据库架构设计的时候需要考虑的一点。首先分享一个58同城非常帅气的秒级数据扩容的方案。这个方案解决什么问题呢?原来数据库水平切分成N个库,现在要扩容成2N个库,解决的就是这个问题。

一开始除以2取模 0或者1

假设原来分成两个库,假设按照hash的方式分片。如上图,分为奇数库和偶数库。

第一个步骤提升从库,底下一个从库放到上面来(其实什么动作都没有做);

第二个步骤修改配置,此时扩容完成,原来是2个分片,修改配置后变成4个分片,这个过程没有数据的迁移。原来偶数的那一部分现在变成了两个部分,一部分是0,一部分是2,奇数的部分现在变成1和3。0库和2库没有数据冲突,只是扩容之后在短时间内主从的可用性这个特性丢失掉了。

扩展之后除以4取模 ,0,1,2,3

第三个步骤还要做一些收尾操作:把旧的主从给解除掉,为了保证可用性增加新的主从同步,原来拥有全部的数据,现在只为一半的数据提供服务了,我们把多余的数据删除掉,结尾这三个步骤可以事后慢慢操作。整个扩容在过程在第二步提升从库,修改配置其实就秒级完成了,非常的帅气。

这个方案的缺点是只能实现N库到2N 库的扩容,2变4、4变8,不能实现2库变3库,2库变5库的扩容。

沈剑这个方案不能秒级扩容

第一个步骤提升从库,底下一个从库放到上面来(其实什么动作都没有做)

第二个步骤原来是2个分片,现在变成4个分片,这个过程没有数据的迁移。原来偶数的那一部分现在变成了两个部分,一部分是0,一部分是2,奇数的部分现在变成1和3,把旧的主从给解除掉,0库和2库,1库和3库都有数据冲突,需要先把多余的数据删除掉

第三个步骤为了保证可用性增加新的主从同步,修改配置,此时扩容完成

阿里云HybridDB for MySQL 在线加分片

阿里云HybridDB for MySQL 在线加分片应该是在扩容时记录下对数据库的修改,直至删除数据完毕,应用新的路由规则,xtrabackup备份主库生成从库,增加新的主从同步

扩容其实就是一个删数据过程而不是迁移数据过程,理论上可以无限横向扩展

2库扩3库可以扩,问题1:数据倾斜 0,1,2三个分片,1这个分片数据量最多  问题2:本来磁盘空间不够要扩容,如果不增加3这个分片,那么1这个分片无法再插入数据,因为磁盘空间不足

f

mysql双倍扩容_mysql扩展性架构实践N库到2N 库的扩容,2变4、4变8相关推荐

  1. 《MySQL性能优化和高可用架构实践》阅读总结

    文章目录 介绍 第1章 MySQL架构介绍 1.1 MySQL简介 1.2 MySQL主流的分支版本 1.3 MySQL存储引擎 1.4 MySQL逻辑架构 1.5 MySQL物理文件体系结构 第2章 ...

  2. TCP接入层的负载均衡、高可用、扩展性架构

    转载自 TCP接入层的负载均衡.高可用.扩展性架构 一.web-server的负载均衡 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡.整个架构分三层: 上游调用层 ...

  3. 《MySQL性能优化和高可用架构实践》简介与推荐序

    #好书推荐##好书奇遇季#<MySQL性能优化和高可用架构实践>,京东当当天猫都有发售.腾讯云架构师宋立桓倾情奉献,定价59元,网店打折销售其实没多少钱. 互联网公司里面几乎很少有公司不用 ...

  4. MySQL 复制 - 性能与扩展性的基石:概述及其原理

    1. 复制概述 MySQL 内置的复制功能是构建基于 MySQL 的大规模.高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他服务器保持同步.接下来,我们将从复制概述及原理.复制的配置.常 ...

  5. aws s3仅允许cloudfront访问_初创公司如何用AWS搭建高扩展性架构

    ‍‍‍‍ 亚信云天的理解 • 初创公司需要快.多.好.省的技术架构 o 快:针对业务需要可以快速获得资源与服务 o 多:拥有丰富的云服务可供选择,能不自己做就不自己做 o 好:强调扩展性和高可用,既不 ...

  6. 【总结】初创公司用AWS搭建高扩展性架构

    下载地址:完整mp4视频 演讲人:张侠 博士 1. 邱洋的理解 初创公司需要快.多.好.省的技术架构 快:针对业务需要可以快速获得资源与服务 多:拥有丰富的云服务可供选择,能不自己做就不自己做 好:强 ...

  7. mysql性能优化和高可用架构实践pdf_实践大于一切!Alibaba最新MySQL性能优化+高可用架构全彩版PDF...

    本篇的内容将会覆盖MySQL 5. 7数据库体系结构.InnoDB存储引擎.MySQL事务和锁.性能优化.服务器全面优化.性能监控.主从复制,以及PXC集群.MHA自动故障转移群集.MGR组复制.Ke ...

  8. mysql aa复制_MySQL的复制架构与优化

    MySQL的复制架构与优化 ###########原理########### 1.主服务器将更新的数据的sql语句(例如,insert,update,delete等)写入到 二进制文件中(由log-b ...

  9. mysql调优_MYSQL企业常用架构与调优经验分享

    一.选择Percona Server.MariaDB还是MYSQL 1.Mysql三种存储引擎 MySQL提供了两种存储引擎:MyISAM和 InnoDB,MySQL4和5使用默认的MyISAM存储引 ...

最新文章

  1. 基于re模块的计算器
  2. centos7.3安装nodejs
  3. MySQL基础 (DML)
  4. Eclipse中手动清理项目缓存,
  5. how is navigation list item click event handled - actually no logic done
  6. 信息学奥赛一本通(1281:最长上升子序列)
  7. Redis学习总结(19)——Redis 5种集群方式对比
  8. ffmpeg输出yuv的函数堆栈(h264)
  9. [linux]解决DNS配置重启丢失
  10. Check $M2_HOME environment variable and mvn script
  11. hadoop学习博客
  12. Dev ChartControl 显示设置百分比
  13. Python处理Excel数据的方法
  14. ai怎么做盒子效果图_AI教程:打造一个逼真的包装盒
  15. Re-ranking Person Re-identification with k-reciprocal Encoding笔记
  16. vue 路由守卫的使用
  17. CentOS7安装Chrome浏览器
  18. mysql binlog是什么_什么是 binlog?
  19. 读 L. S. Stavrianos 之 《全球通史:从史前到21世纪》
  20. 阻止a标签跳转url的两种方法

热门文章

  1. 如何使用Microsoft Word 2013的内置截图工具
  2. 数码管显示倒计时c语言程序,1~99秒倒计时数码管显示C程序+Proteus仿真
  3. 我的学术诚信与职业道德
  4. 关于政府网站的设计心得
  5. 42 R 主成分分析PCA与因子分析EFA
  6. 数显表和PLC中的数值不一致怎么办?
  7. 贵州大数据筑巢引凤赢先机
  8. 我所经历的“余额宝”的那些故事
  9. java贪心算法_来谈谈贪心算法
  10. dreamweaver 服务器文件夹 本地站点文件夹,Dreamweaver CC