封仲淹:OceanBase社区版4.0未来畅想
8 月 10 日,2022 OceanBase 年度发布会在京沪深三地同时召开, OceanBase 资深开源生态技术总监封仲淹在会上分享了 《OceanBase 社区版 4.0 未来畅想》 的主题演讲, 向大家分享了 OceanBase 社区版 4.0 的全新规划与畅想。
大家好,我在 OceanBase 负责开源相关的工作,今天很高兴能够在这里跟大家分享 OceanBase 社区版 4.0 的未来畅想。分享之前稍微介绍一个小插曲,最近一到两个月, 有很多社区的小伙伴经常在社区提问,某某功能是否会在4.1版本中出现或者未来哪个版本里出现,4.1 什么时候 release 等等问题。
今天很荣幸借这个机会跟大家正式同步一下: 我们 OceanBase 社区版的 4.1 将会在今年年底跟大家见面!
我今天的分享分为四部分,第一,关于生态;第二,关于我们想建设一个什么样的社区;第三,关于 3.1.4 的特性;第四,未来 4.1 会是什么样。过去一年, 很多社区的小伙伴问我们社区发展了什么? 我想用这样的一句话进行总结 “开源开放, 生态共赢”。
开源开放,生态共赢
过去一年,我们跟生态工具不断对接,促进生态的共同发展。去年6月1号刚开始开源的时候我们仅仅提供一个 300 万行的内核加一个离线的同步工具,非常感谢第一批用户的支持,在他们使用第一版 OceanBase 的过程中, 我们发现了很多问题,比如实时数据同步,比如监控,所以我们赶紧在 3.1 的版本中对接了 K8S 和 Prometheus,从而让实时监控和安装部署更加顺畅。
但是随着用户不断增多,我们发现用户需要完整的生态链,于是在 3.1.2 的版本中, 我们将我们在商业版中已经发展了很多年的 OMS、OCP、ODC 开放出来, 从而让用户有一个完整的体验。 3.1.2 版本是开源中非常重大的版本,因为它让用户使用 OceanBase 变得更加轻松。 在 3.1.3、3.1.4 的版本中我们持续跟生态工具进行打通和对接,例如和白鳝老师的智能诊断平台和运维管理平台 D-SMART 做了一个对接,上个月我们还和 Navicat 做了一个联合声明, 宣布 OceanBase 社区版对 Navicat 的支持。
社区经常有人问我们想打造什么样的社区?答案是, 我们想打造一个 及时响应 的社区。 这页 PPT 中展示了所有社区核心的数据,我们可以关注这个曲线,这个曲线是过去一个月钉钉日消息量的曲线图,平均每天的日消息量在 300 条左右,另外一个数据是问答社区的数据,问答社区的数据是 14000 多条消息。从去年开源到现在平均每个月超过 1 千条的问答消息。 从这些指标上衡量:目前我们社区活跃度是非常健康的状态。
一年以来,在技术布道上,一共进行了 35 场技术布道,平均每个月 2.5 场。另外一件有意思的事情是去年我们举办了第一届 OceanBase 数据库大赛,这是一个面向开发者的大赛,有清华、北大、人大、南洋理工、哥伦比亚等 247 家著名大学的将近 2000 学生或数据库爱好者来参加比赛。我们计划在本月 12 号开始正式启动今年的 OceanBase 数据库大赛。 社区不断和客户进行沟通,我们期待和客户成为朋友。
1-3-1
所问即所答, 及时响应
“1-3-1”这个数字表示我们期望用户任何的咨询提问都能够在钉钉群、工作日志中的一个小时之内得到响应,在我们问答论坛上 3 个小时就能得到回复,在 Github 上一天就能得到响应, 我们想做所问即所答、及时响应的社区。
我们持续和用户沟通,倾听用户声音,在这里也要感谢社区小伙伴们,像阿福、马顺华、严少安,还有不能一一列举的社区之星。
刚开始上线一个开源项目非常艰难,很荣幸的是有超过 200 多家用户信任我们。迄今为止,我们有超过 100 多位社区贡献者,感谢他们的支持和奉献。 特别想单独感谢一下信任我们的客户,有金融企业的银联、阳光保险、浦银安盛,还有互联网的 360、快手、gitee,还有电商的京东、致欧家具,还有生活服务的 58, 企业服务的新脉远望等等。
社区版有三个非常典型的场景。 第一个典型场景是降本增效, 在携程的场景当中我们的数据被大幅压缩,很多低负载的应用合并到一个集群中,并且充分复用异地多活和多可用,让整个成本能很好地下降。
另外一个典型的场景是 HBase 的升级, 在贝壳的场景中我们的存储成本下降了一半,我们在二级索引的场景中性能得到了 6 倍的提升,充分复用 OceanBase 的高可用能力,从而让整个系统运行得更加平稳。
第三个典型场景是 HTAP 的混合负载, 在中国电信的场景当中我们复杂查询的性能相对之前的系统有 5 倍的性能提升,而且我们压缩的数据量是原来的 1/3,我们保证了 OLTP 和 OLAP 的混合负载。
社区版 3.1.4 解读
上个月我们发布了 3.1.4,今天在这里对这个版本比较重要的功能做一个详细的介绍。过去的一年可以用这样一句话形容 OceanBase 开源的版本迭代,就是 “快速奔跑的一体化 HTAP 数据库”。
在我们 3.1.0 当中,内核完全开放;在 3.1.1、3.1.2、3.1.3 的版本当中我们充分拥抱开源生态,开放我们的能力,尤其是像 OCP、OMS、ODC;在 3.1.4 和 3.1.5 中我们大幅提高了易用性,改善了内核的稳定性。
稍微介绍一点特别的特性——诊断能力。 在社区版的 3.1.4 之前,如果用户使用不当的 SQL、或者数据库配置不当、或者应用使用不当, 流量非常大时,会导致 OceanBase 出现一些异常,这个时候主要依赖于经验丰富的 DBA 做故障诊断,查看日志和查看监控指标,非常繁琐、痛苦。 在 3.1.4 的版本当中,我们的 OCP 开放了故障诊断能力,能够自动识别慢 SQL 和可疑 SQL,当出现慢 SQL 和可疑 SQL 的时候系统会报警,DBA 收到报警以后会对慢 SQL 限流,从而让整个系统平稳运行, 保证系统的稳定性。 甚至有的时候如果 DBA 发现整个系统的某些 SQL 的执行计划并不优,给系统带来了一些风险的时候,可以使用 outline 对系统进行修改,使用更高效的执行计划。这也是刚才分享的网商银行一位 DBA 就能运维超过几千台集群的根本能力。
在 3.1.4 社区版之前,还有一个痛点叫做备份和恢复。 如果我们想做一个备份或恢复,我们需要输入一个非常长的指令,这个指令里有大量的参数,这些参数一不小心输入有问题可能会导致一些莫名其妙的错误,坦白讲非常痛苦。3.1.4 针对这个痛点,我们提供了 OCP 直接图形化的支持物理备份和恢复,从而让整个支持非常简单轻松。
另外一个比较大的痛点是异地多活和远程灾备。 在社区版过去的版本中如果想做异地多活或者远程同步,我们需要配置一个非常复杂的开源工具来支持集群之间的同步,3.1.4 版本中 OMS 社区版开放了 OceanBase 到 OceanBase 版本之间的实时同步,我们提供了异步同步,从而能够支持异地多活和远程灾备。
4.X 的未来畅想
经过前面大量的铺垫介绍过去的状态,我们开始了激动人心的 4.X 未来畅想。今天上午阳振坤老师做了很多 4.0 的解读,我再对未来社区版的 4.X 做一个详细的介绍。
4.0 当中最大的一个特性就是: 我们开放的能力与商业版完全齐平,在 MySQL 系列上,能更好地满足业务的诉求,能支持更多业务场景;在核心能力上有性价比、有小规格、有单机的提升,有 HTAP 的能力提升。
关于高可用,有三个特别大的特性,第一是 RTO 提升为 8 秒;第二是 IOPS 隔离;第三是主备库。 IOPS 隔离是一个非常好的特性,在很多用户的场景当中他们可以将很多低负载的应用合并在一起,从而让整个集群的利用率得到大幅提升,对降低成本非常有帮助。另外在兼容性上 4.0 会支持 MySQL 8.0;在多功能上有非常多不错的特性,比如跨库查询,我们会支持 DBLink,在 DDL 上支持以前在 3.X 中经常想要的功能,比如主键变更、类型转换等。
还有一个诉求非常多的是分区管理, 后续会详细介绍。在多模上我们有非常大的提升,我们支持 Gis。在展区我们有一个很炫酷的树莓派,它的规格是4核8G的架构,在这样低的配置上,OceanBase 4.0 依然可以平稳运行, 也就是说在开发环境中我们过去从 8 核 64G 下降到 4 核 8G。未来我们会做进一步优化, 在单机环境下我们的 OceanBase 会在 OLTP 的场景下超过 MySQL。 这是 TPC-H 100G 的成绩,4.0 版本相对 3.X 版本有近 5 倍的性能提升,它是整体提升而不是过去经常看到的某个 SQL 量的提升,是整体上所有的 SQL 的提升。
性能提升背后的利器是什么? 主要原因是:4.0 版本我们还将开放行列混存、开放向量化计算引擎,整个优化器会得到大幅提升。 过去一年中我们经常会接到一个诉求——分区的自动管理,分区的设计是很考验 DBA 功力的,如果分区设计得好整个性能会非常好,但是如果分区设计得并不好,整个性能会有断崖式下降。我们从 4.1 开始,将支持分区的自动管理,随着数据量的不断增长我们分区可以自动分裂,数据量如果缩小我们可以将多个分区合并到一起,大大地释放出 DBA 的压力,让 DBA 在分区管理上变得更加轻松,且能够更好地使用 OceanBase。
我们在上个月上线的新的在线体验中心有一个非常好的功能,它增加了帮助中心,我举一个简单的例子,假设我想做一个 create table 的操作,点一下"插入到工作区",就会在工作区创造一个 create table 的模板,整个流程非常简单顺滑,DBA 不用记复杂的指令,应用性非常方便,可以让 DBA 在体验中完成学习。上个月社区的官网和问答论坛做了一次重构、升级。 我们整个社区的官网分为四大板块,学习、活动、内容、问答,四个板块更好地支撑社区的用户参与互动并且体验 OceanBase,能够让社区的用户真正成为社区的主角,我们期望打造一个学得轻松、用得放心的社区。
今天我的分享到此结束,谢谢大家!