作者:唐刘

对于 80 后的男生来说,『七龙珠』是一部绕不开的经典漫画,里面的主角孙悟空掌握了一项强大的必杀技 - 元气弹,他通过收集万物的能量,汇聚成一个有巨大破坏力的能量球,然后发射给反派将其打败。每每在漫画里面看到这样的情况,年少的我就激动不已,梦想着有一天也可以自己举起双手,汇聚出元气弹。

当然,现在我们知道举起双手是不可能造出元气弹了,但从另一方面来说,如果我们能很好地利用好大家的力量,统一的往一个方向努力,解决某一个特定的问题,这不就是另一种元气弹的形式吗?在 PingCAP,我们每个季度都会做这样一次活动,叫做 Special Week(后面简称 SW),在 2019 年第四季度,我们 SW 的主题是 - Tools matter,很直白,就是工具很重要。

PingCAP 一直致力于跟社区一起构建 TiDB 的生态,这其中 Tools 扮演了非常重要的角色。大家可能会用 TiDB Data Migration(以下简称 DM)将 MySQL 的数据迁移到 TiDB,或者使用 TiDB Binlog 工具将 TiDB 的数据同步到下游其他的服务。

这次 Special Week 希望集思广益,从其他角度来改进 Tools,降低大家使用 TiDB 的门槛。

为了将 SW 相关的进度公开到社区。我们创建了一个 GitHub project 来放置所有的开发任务,研发的同学自行组队去挑战相关的任务。经过了 5 天的全力开发,我们取得了一些不错的成绩,下面跟大家一起看看我们有了哪些不错的成果。

增量备份

在这次活动中为 TiDB 新推出的 分布式快速备份和恢复工具(简称:BR) 实现了增量备份和恢复功能。效果展示如下:

搞定增量备份和恢复功能,对于完善基于 TiDB Binlog 的灾备集群方案具有重要意义。大家都知道 TiKV 使用 Raft 协议实现数据多副本来保证 TiDB 集群的数据安全,而 TiDB Binlog 某种意义上是 TiDB 集群的另一份冗余数据,如果我们再实现 TiDB Binlog 多副本,复杂且意义不大。但是当 TiDB Binlog 出现数据损坏,对灾备集群等使用场景影响是重大的。增量备份和恢复功能可以快速填补上 TiDB Binlog 数据损坏的时间段数据,大大缓解方案上的这一缺陷,疗效堪称快速续命丸。

DM 高可用

让 TiDB 自研的 DM(从 MySQL 迁移数据到 TiDB 的工具) 支持了高可用的特性,使得用户免于遭受在节假日甚至凌晨发现挂掉一台服务器而紧急 OnCALL 的苦恼,也为 DM 可以用在一些关键场景中做了铺垫。

下图是实现 DM 高可用的架构图:

Tools Chaos 测试

Chaos Mesh 是我们最新开发的,基于 Kubernetes(K8s) 的一套 Chaos Engineering 解决方案,只要你的服务能跑在 K8s 上面,就可以直接集成 Chaos Mesh 进行 chaos 测试。

在这次 SW,我们将 DM、TiDB Binlog、BR 以及 CDC 都成功地跑在了 K8s 上面,然后使用 Chaos Mesh 进行了测试,也发现了一些问题,改善了整个 Tools 的稳定性。

我们在 2019 年 12 月 31 日正式开源 Chaos Mesh,项目地址:https://github.com/pingcap/chaos-mesh,欢迎大家使用。

生态合作

在本次 SW 我们也欣喜地看到,一些企业也有很强烈的意愿跟我们一起来构建工具的生态,这次 SW 我们主要跟外部企业一起进行了三个项目:

PITR ( Point in Time Recovery)

这个项目是跟某互联网公司一起进行的,主要是将 Binlog 的增量备份进行合并,生成一个更轻量级的备份文件,加速同步的速度(项目地址 https://github.com/lvleiice/Better-PITR )。

PITR 的核心功能在之前 PingCAP 举办的 2019 Hackathon 中已经完成,详见《直击备份恢复的痛点:基于 TiDB Binlog 的快速时间点恢复》,在这次 SW 我们将其进一步完善增强,主要包括:

  1. 增加 CI,提升测试覆盖率。

  2. 修复读取历史 DDL 报错问题。

  3. 对压缩前预处理阶段提速,200 条 DDL 测试下,相比之前,提速 68 倍。

后续,我们仍然会继续跟社区一起合作完成该项目,我们也在 Slack 上面建立了相关的 working group,欢迎感兴趣的同学参与。

TiKV Raw 模式备份恢复

除了直接使用 TiDB,有些用户也会直接使用 TiKV,现阶段我们只提供了 TiDB 的备份工具 - BR,并没有单独针对 TiKV。

所以在这次 SW 我们跟一点资讯一起合作,让 BR 支持了 TiKV 的备份和恢复。现在已经完成了 BR 这一段的开发,还剩 TiKV 这边一点工作的收尾,欢迎感兴趣的同学关注 https://github.com/pingcap/br/issues/86。

基于 DM 支持 Syncer

为了方便用户将 MySQL 的数据同步给 TiDB,我们早期开发了 syncer 这个工具,后来为了支持更强大的功能,我们开发了一套新的同步工具 - DM。DM 易用性,稳定性更强,并支持高可用。后期我们会逐步废弃掉 syncer ,不再同时维护 DM 和 syncer 两套代码。但出于历史原因一些用户仍然在使用 syncer,如何方便地从 syncer 迁移到 DM,是我们这次 SW 要解决的问题。

我们跟某知名互联网金融公司合作,基于 DM 的 sync 模块开发另一个 syncer,兼容之前老的 syncer,让用户能无缝迁移。

现在相关的开发进度在 https://github.com/pingcap/dm/pull/433,欢迎大家参与。

写在最后

经过接近一年的探索,Special Week 在 PingCAP 已经逐渐成为一个独特的文化。刚刚结束的 Q4 Sepcial Week 把 PingCAP 与用户和开源社区紧密结合在了一起。我们希望与社区在未来有更多的合作,完成更多有价值的项目。这也是为什么大家可以看到这次的 SW 的大部分讨论,设计,进度都公开到 GitHub 的原因。

我们会整合这次 Sepcial Week 中产生的项目,建立一些社区可以参与的工作组,欢迎大家从 这里 找到自己感兴趣的工作组,与我们一起构建 TiDB 生态工具社区。

原文阅读:https://pingcap.com/blog-cn/special-week-tools-matter/

汇聚能量,元气弹发射 | PingCAP Special Week - Tools matter 有感相关推荐

  1. Vue.js实战——封装长按能量条火箭发射动画组件_17

    一.目标 按照项目需求,需要完成如下几部分的功能: 1.长按屏幕时,显示能量条动画(类似环形进度条): 2.当能量条充满时,发射小火箭: 二.实现效果 三.步骤 按照需求分析,上述目标可以拆解成3个功 ...

  2. 岁月的剪影【一月元气弹】

    一月三十一日 <blank> 大白天,老收到领导的短信,叫了加微信,偶就是不想加... 领导这样远程操控三组长写报告,也是醉了~ 一月三十日 昨晚和"队长".逗比玩了一 ...

  3. 中国成功发射第二颗北斗导航卫星,有感

    首先,听到这个是心情很激动,觉得祖国离强国的距离又近一步. 但又在想何时我想的卫星定位可以象GPS那样广范应用. 我以前也做过几个相关项目,如果可以用自己国家的我一定会放弃GPS,为我国的3S发展出自 ...

  4. 声发射能量和事件参数的Excel VBA处理1/2

    声发射能量和事件参数的Excel VBA处理 1. 声发射数据格式 2. 运行Excel vba代码 3. 用户交互输入起止时间 3.1 输入起始时间 (1)起始天数 (2)起始小时 (3)起始分钟 ...

  5. 元宇宙十大技术及其产业

    今天是五四青年节,祝朋友们永葆青春的心态,积极乐观.开放真实.审慎务实. 上一章<从宇宙大爆炸到元宇宙>,我们分享了元宇宙是什么?为什么出现元宇宙?未来会发展成什么样?并提出了" ...

  6. 关于阵列发射端的波束形成(相控阵)研究与仿真实践

    说明 相控阵是一个很大的话题,相控阵说得直白一点就是通过控制天线阵列中各个天线的相位来使得波束指向我们想要的方向.现阶段相控阵雷达用得更多的还是军事领域,不过随着技术的进步.成本的下降以及小型化,相控 ...

  7. 元宇宙技术普及读本重磅问世 详解十大技术 把脉数字经济 前瞻产业布局

    转自 元宇宙共识圈 王恩东.倪光南.沈昌祥.郑纬民--四位中国工程院院士联袂力荐 倪健中.姚前.李正茂.朱嘉明.肖风.敖然等权威专家一致推荐 汇聚元宇宙技术专家及产业一线佼佼者倾力撰写 元宇宙技术普及 ...

  8. (Field II仿真)合成发射孔径超声成像

    1. 聚焦成像 (focusd imaging, FI) 传统超声成像采用聚焦波束对成像物体进行扫描,称为聚焦成像 (focused imaging, FI). FI连续移动激励有效孔径内全部阵元,每 ...

  9. 强强联合,跨界而来,2022苏州元宇宙大会重启!

    抗"疫"还在持续,但元宇宙不能停. 2021年底,被疫情耽搁的巴比特元宇宙大会,今天再次"整装待发"! 2022年4月16-17日,"2022元宇宙大 ...

最新文章

  1. vivado如何实现增量编译,加快布局布线
  2. Meterpreter
  3. 2014.11 总结
  4. Linux C: 内嵌汇编语法
  5. 集群、负载均衡、分布式
  6. hsv白色h值是多少_ShaderToy系列:HSV
  7. Java快速入门学习笔记9 | Java语言中的方法
  8. 去掉 RHEL AS 3 内存检测达不到256MB的警告
  9. 是夫妻就一起把它戒了吧!
  10. 下一个十年,游戏在可玩性上会有什么样的发展?
  11. spss25 等待服务器响应出现问题,spss打开配置服务器失败
  12. Mac下phpstorm 浏览器出现 502 bad gateway 解决办法
  13. Flutter-如何计算文字宽高
  14. AUTOCAD——创建可编辑属性块
  15. Jenkins创建一键发布即父子项目
  16. (NSMenu,NSMenuItme)如何在菜单栏添加新的菜单
  17. RHCA 8环境说明
  18. ’Hive快速入门课程视频【菜鸟窝出品】
  19. faiss-cpu安装及基础使用
  20. 云平台及OpenStack简介

热门文章

  1. HBase分页查询API
  2. python——自定义函数
  3. iOS dumpdecrypted砸壳(解密AppStore下载的应用程序)
  4. 战略供应商关系应该如何管理?
  5. Spring官方文档之核心技术Core Technologies
  6. java命名规范(规范总结大全)
  7. 堆栈区别java总结_java 堆栈的区分,区别
  8. QT嵌入式QT支持中文显示(zynq)
  9. 用c语言编程图书管理系统,C语言能写图书管理系统吗
  10. python中 map函数 的使用