技术开发 频道

MySQL DBA如何从删库跑路到carry全场

  【IT168 评论】小王,中学成绩普普通通,毕业之后在一所名不转经传的本科学校读了计算机专业,并成为了一名MySQL DBA。DBA这份工作却不简单,进阶路上出现了不少拦路虎。

  拦路虎NO1:小王满心欢喜的进入到现在的公司,以为肯定能在技术总监的照拂下快速成长。哪想到,领导技术虽牛,但是却很难缠,每次完成工作都免不了被三番两次的“找茬儿”,而且领导还总喜欢用“我们是家大公司”来怼自己,这让小王感觉DBA这份工作真是不好做!

  拦路虎NO2: 不久前,小王所在的公司迎来跃进式发展,站在风口上飞起来了。小王还没来得及为公司高兴,就发现数据量正以火箭般的速度增长,很快单机数据库就存不下了。

  向下要解决数据暴涨的数据库问题,向上要面对不断“找茬儿”的技术总监,小王郁郁寡欢。本来每天的工作就已经够苦逼了,这下还得把业务层的代码全都改个遍,动中间件,分库分表,小王顶着浓浓的黑眼圈感叹“这是要搞死我啊。”

  为了消灭这些拦路虎,小王绞尽脑汁,抓狂之余甚至想删库跑路。小王急得如热锅上的蚂蚁,不得不去网上遍搜宝典,没成想还真让他给找到了。江湖上流传着一种结合了MySQL和分布式算法的秘籍——RadonDB,原来基于单机版MySQL开发的应用程序几乎不用做任何修改就可以迁移其上!

  迁移之后,让小王头疼不已的分库分表问题就迎刃而解了,RadonDB支持自动分库分表,默认可支持单表最大4PB的容量。在小王的解决方案中整张表有4096个slots,他把整张表划分成32个小表,其中每个小表是128slots。在扩容时,RadonDB优先以小表为单位进行全量迁移,记录下当时迁移的位点,增量追加。迁移过程中小王惊喜的发现,因为都是MySQL表,所以操作很简单,而且除了扩容还可以缩容。

  搞定这一切之后,小王高兴的去向技术总监交差,技术总监看过迁移效果后,惊讶之余继而发问:“嗯,这个分库分表是解决了,但咱们是一家大公司呀,少不了要进行高并发查询和跨物理节点的查询,如何解决查询时的性能问题呢?”

  “呃…性能问题其实也好解决呀,”小王抹了抹额头上渗出的汗,心里庆幸的想,还好之前做足了功课,“RadonDB的设计中有个很大的亮点——计算节点,当SQL节点对SQL请求解析之后确定出复杂SQL,会将请求路由至计算节点。而计算节点存储的是全量数据,并通过binlog对数据进行增量更新,所以,所有复杂的SQL都会在这里进行计算然后将结果返回给客户端,这就解决了复杂查询时的性能问题。而且这个计算节点是插件式的,我们甚至可以用强大的AP数据库来充当。”

  “好好好,这个我了解了,但小王你要知道我们是家大公司呀,一分钟几千万数据浮动的那种,你这个方法在分库分表和扩容方面确实简单,但是在高可用方面可靠吗?你要知道宕机一秒钟,你我就只有跑路的份儿,你呀还是太年轻。”

  “哎呀,领导,你说高可用这么重要的事儿我能忘吗?放心,我早就搞定了!”小王心想技术总监还真是不能糊弄的,“想要做到高可用,无非就要做到以下三个方面:一是选主策略,二是与原Master数据同步,三是新的主节点快速应用数据,对外提供服务。如何实现高可用呢?RadonDB爆出了一个优品装备——xenon。”

  “说到这个xenon,它有两大神器,分别是Raft选主协议和MySQL GTID。Raft 选主协议,顾名思义就是用来选主的,当主副本出现故障不可用时,从副本会自动发起选主请求,这时与主副本数据完全一致的从副本就可以成功上位成为主副本。”

  “那么问题就来了,怎么样才能做到和主副本数据一致呢?这就是要讲到MySQL GTID了,强Semi-Sync-Replication技术可以确保至少有一个从副本与主副本的数据是完全同步的。这种高可用的方式,领导你觉得这么样啊?”

  听小王得意洋洋的讲完,技术总监心中一惊,嘿,没看出来这小子准备还挺充分,结巴道:“你看,我们是一家大公司……考虑问题就是要这么全面!”小王心中一喜,哎呀,可算是过关了。

  写在最后

  虽然这是一个虚拟的小故事,但是RadonDB这款产品确是真实存在的,故事中解决的业务场景也是真实存在的。相比于以往的数据库产品,RadonDB不仅在容量控制方面有独到的方法,自动分片,动态扩容,而且还创新性的引入了计算节点,使得复杂SQL可以透明计算,是数据库发展历程上跨越式的里程碑。

  此外,RadonDB充分发掘了新一代英特尔至强可扩展处理器的能力,特别是其集成的全新英特尔AVX-512带来的更为强悍的运算能力,进一步优化了自身的数据库性能。RadonDB也将采用3D XPoint技术的英特尔傲腾固态盘作为分布式数据库缓存,进一步提升吞吐量和更低的访问延迟,给用户带来非常好的体验。

  2018年5月10日,RadonDB在第九届中国数据库技术大会上正式宣布开源(GitHub地址:https://github.com/radondb/radon)。知数堂创始人吴炳锡在笔者采访中曾表示,RadonDB的开源向我们展示了更多的技术创新性,而这种创新将给DBA的技术生涯带来更多的机会和创新思路的借鉴。

1
相关文章