自 3 月 15 日居家隔离以来,我已经两个多月没怎么出过门了。跟所有在上海的“打工人”一样,我每天都在期盼上海解封!
老实说,虽然被疫情所困,但除了不能外出,我的生活其实并没有受到太大影响。工作还是照常进行,一日三餐还是能够保障。相对于居住在浦东、徐汇这些地方的朋友而言,我已经非常幸福。而且,因为居家办公,每天节省了大量的通勤时间,这就让我有更多的空余时间去技术社区给自己“充电”。而 OceanBase ,是我最常逛的社区之一——每天工作闲暇时,我都会去 OceanBase 社区签到,找几个有意思的问题回复,顺便看看问题涉及到的官方文档。
更多人知道 OceanBase,可能是去年 6 月 1 日开源的社区版。但我早在 2018 年就已经知道 OceanBase ——我的几个甲方单位因为看到 OceanBase 企业版在天猫双十一的精彩表现,很早就选型了 OceanBase 企业版。
当然,那个时候我对 OceanBase 还只是有所了解,并且,那也还是 OceanBase 企业版。真正认识 OceanBase ——更准确地说,应该是 OceanBase 社区版,是在 2021 年。一次机缘巧合,就让我走进了 OceanBase 的世界。
2021 年的 9 月份,网上冲浪的我,无意中了解到, OceanBase 将在上海长城大厦举办线下 Meetup 活动。官方活动嘉宾基本都是 OceanBase 的技术专家团,包括纪君祥老师、王运来老师、 架构师梅庆、DBA 专家徐力佳。单从活动的人员配置来看, OceanBase 可以说是诚意十足。
因为在上海,又赶上周末,得天时地利之势的我,决定去现场感受一次 OceanBase !
Meetup 活动当天,第一位发言的是纪君祥老师。纪老师非常正式地给大家介绍了 OceanBase 。这样的介绍,对很多还不是很熟悉 OceanBase 的用户来说,非常友好:你可以从介绍中了解 OceanBase 的基本功能,了解 OceanBase 周边工具支持程度,了解 CDC 工具,了解 OceanBase 的版本发布节奏......
但对我来说,王运来老师《 MiniOB——帮你从底层深入了解数据库的实现》、以及徐力佳老师《蚂蚁 NoSQL 业务迁移到 OceanBase 实践》的演讲更有吸引力。王老师深入浅出,分析 OceanBase 的底层逻辑,徐老师巨细无遗,讲解 OceanBase 业务迁移,这些是我想要学习的。
OceanBase 上海站的 Meetup 之旅,我收获颇丰:除了更深入地了解 OceanBase ,认识几位热爱 OceanBase 的朋友,我还了解到, OceanBase 会在 10 月 18 日(2021 年)云栖大会发布 OceanBase 3.1.1 社区版 。作为一名开发工程师,我很想知道,相比较 MySQL、TiDB、Oracle, OceanBase 社区版会有哪些惊喜。
云栖大会上,OceanBase 3.1.1 社区版如约而至。
官方透露,此版本包含五大核心特性:全面提升内核兼容、完善生态工具、更多开放接口、支持物理备份与恢复、强化开源 OS 支持和易用性,持续增强开源产品化应用能力。
值得一提的是,在提升内核兼容这一块,OceanBase3.1.1 开源版适配支持 MySQL 5.7 驱动协议,新增 MySQL 8.0 的通用表表达式,支持租户/用户最大连接数设置,全面加强 MySQL 兼容,对企业选型非常友好。
看着新版本,我迫不及待想体验一把。当然,迫不及待想体验的不只是我,还有我的一群同事:因为单位将要选型, OceanBase 是首选对象,所以我们要提前感受 OceanBase 。当然,单位选型主要考虑企业版。我们体验社区版,主要是想看看社区版跟企业版有哪些区别。
说干就干!利用单位的机器安装完 OceanBase 3.1.1 社区版之后,我们开始测试。测试的结果就是:OceanBase 宣传的高可用和易用性,名副其实;OceanBase 宣传的生态,果然强大。
但 OceanBase 还不是那么完美,我们在测试中发现了不少小问题,例如配置低的个人电脑无法安装、DDL 并发导致同步链路中断等问题。这些问题看似不大,但很影响用户体验。尤其是安装的高门槛,会让很多个人用户“望洋兴叹”。
发现问题,我们第一时间就去联系 OceanBase 社区版技术人员。几经周折,我们最终才在 OceanBase 企业版工作人员的牵线搭桥下,联系上社区负责 CDC 模块的研发老师。
听到我们的反馈,CDC 研发老师非常重视,他们马上一对一对我们进行指导。社区版的老师们既敬业又专业,后面两个问题很快就被彻底解决。但关于安装吃资源的问题,暂时还无法解决。
OceanBase 刚刚起步,有一些小问题在所难免。但是,按照他们解决问题的速度,我们有理由相信,他们一定能把 OceanBase 做大、做强。
继 OceanBase 3.1.1 社区版之后,今年的 1 月 6 日, OceanBase 发布了 3.1.2 版本。短短 7 个月,这已经是 OceanBase 发布的第三个版本!
据 CTO 杨传辉介绍,新版本包括三大核心技术升级:
第一,秒杀性能提升300%。
第二,生态适配全面加速,支持 Hbase 对接能力。
第三,推出全新社区版工具体系(社区版 OCP、社区版 ODC、社区版 OMS),提供白屏化集群管理、租户管控、开发调试、数据同步、导入导出等完整功能,协助社区用户快速上手。
新的版本,新的期待!这一次,没有同事的参与,我决定自己来测试 3.1.2 版本的性能。
我找来单位的 7 台物理机,使用 OBD 直接部署为 2:2:2 架构的 OceanBase 3.1.2 集群。OLTP 测试场景,测试工具使用的是开源版本 BenchmarkSQL5.0。然后就是优化参数,关闭 SELinux,关闭防火墙,chrony 服务检查,安装 chrony 服务,安装 Benchmark SQL,配置安装用户,格式化分区......详细过程可以参考我的这篇文章《OceanBase 社区版 3.1.2 压测性能测试报告》。
测试结果:
1. 2000 仓,200 并发
2. 2000 仓,400 并发
3. 2000 仓,600 并发
4. 2000 仓,800 并发
单从测试结果来看,新版本确实比之前好了不少,官方所言非虚。但并不是说这个版本就很完美,因为在测试中,我还是发现了一些小 bug:
- sys 租户修改系统参数,OBD 重启 OceanBase 集群后,参数不生效;
- 通过 sys 租户修改了server_cpu_quota_max 参数,然后使用 OBD 重启生效。再重启后,又变回 16C;
- 经过测试发现社区版 OceanBase 不支持对二级分区的添加和删除 ,但官方文档显示支持。
实际上,没有完美的数据库,只有不断更新、与时俱进的数据库。Oracle 是这样,MySQL 亦是如此, OceanBase 自然也不能例外。发现问题,解决问题,才能做到更好,才有机会成为行业翘楚。
从开源到 3.1.2, OceanBase 社区版在不断的更新,而我也在不停的成长。
在体验 OceanBase 的过程中,像手动部署 OceanBase 3.1.2集群、迁移 MySQL 数据库到 OceanBase 、使用 ODB 部署一个三副本 OceanBase 集群,我都会记录成文档,因为这样的文档,会有用户需要它;在学习时遇到问题,我会在 OceanBase 社区的问答板块进行求助,因为这里很活跃,一般问题都能很快得到解决......当然,很多时候,我也在 OceanBase 社区帮助别人解决问题,也会去参加 OceanBase 社区直播......
就这样,频繁出现在 OceanBase 社区的我,逐渐有了小小的知名度。
4 月的一天,OceanBase 社区运营人员找到我,她们说:经过对当月社区贡献度的测评,我因为贡献度最高被评为“月度之星”。哈哈,官方的肯定,对我来说,是一种莫大的鼓励。
老婆看我荣获“月度之星”有点眼馋:做技术的真好,有这么好的社区平台能让你们深度学习。只是学习也就算了,你们还能答题拿奖品!有点过分了......
我老婆是一名医护工作者,她们学习的途径要么进修,要么临床。很少有像技术社区这样的医生社区,能让她们一起学习,共同进步。所以,对于技术的社区,她也只能是羡慕。
老婆调侃我:作为“月度之星”,你有什么感受?
感受嘛?还真有!那就是在 OceanBase 社区这么长的时间里,我发现 OceanBase 社区版的官方文档真心不错!从基础概念、到操作上手,文档介绍得非常详细。对我来说,它既是 OBCP 考试的学习资料,也是我学习 OceanBase 的主要途径。我强烈建议新手一定要好好学习,这个文档能帮助“小白”用户解决很多问题。至于其它的感受,那当然是开心啦。
据悉, OceanBase 又要发布新版本了!我已经准备好了。
4 月 18 日, OceanBase 社区发起了文档捉虫活动。活动一发布,我就报了名。
本想大显身手的我,却因为项目赶工,工作非常忙。再加上,这个月我家添了一名新成员:哈哈,我的闺女,出生啦!所以,一边忙着工作,一边忙着带娃,我是忙得不可开交。
在这里,我想吐槽一下,虽然初为人父甚是喜悦,但带娃是真的累,比工作累多了!工作基本上都是在白天,晚上你就可以休息。带娃可不是,带娃是全天候 24 小时待命。娃只要一哭,你就要起床,不管她是饿了、尿了、拉了,还是咋了,只要她哭,你就得起来,不分昼夜。这一阵,我这闺女可把我跟我老婆折腾得够呛!累归累,但只要看到她那粉嫩嫩的小脸,我是非常幸福的!那种幸福是始于新生命的诞生,始于对生命的敬畏,始于你能真真切切感受到血脉的延续。所以,你所有的辛苦都是值得的,你愿意为她付出你所有的一切。
虽然忙碌着,但我还是没有忘记捉虫活动。眼瞅着活动马上就要结束,我知道不能再拖了。终于,5 月 17 日,下班后我就开始捉虫。大概从下午 5:00 开始,一直捉到夜里两点。我是越捉越兴奋,越捉越精神。但迫于第二天要上班,我不得不停止。
5 月 18 日,也就是捉虫活动结束的最后一天,没睡几个小时的我,匆匆忙完手头紧要的工作,就继续捉虫。最后,赶在截止时间点,我提交了最后一个 pr 。这两天的忙碌,我一共提交了 90 多个 pr。
捉虫活动结果公布,我拿到了第二名,获得 3970 的积分!哈哈,这个结果虽然是意料之外,但也是情理之中。因为虽然我是在最后两天才“补”的作业,但我花在捉虫的时间,总共也有 20 个小时,差不多是完整的两个工作日。
不过,我想奉劝一下各位朋友,千万别学我熬夜捉虫。因为熬夜真的累人!
新的捉虫活动又开始了,但这次,我不能再打“突击战”了,我要好好准备,冲击更高的名次!
近几年,在国家大力支持自主研发核心技术政策的支持下,国产数据厂商库百花齐放、百家争鸣,这就给国内企业选型带来了更多的选择。
虽然国产数据库在某些性能方面已经超过了国外的数据库,但数据库想要涌立世界潮头,仍然任重道远。希望所有国产数据的研发者们,不忘初心,砥砺前行。
最后,衷心祝愿国产数据库越来越强大,致敬每一位为国产数据库发展而奋斗的工程师。