• 封仲淹: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,能够让社区的用户真正成为社区的主角,我们期望打造一个学得轻松、用得放心的社区。

    最后感谢大家的聆听,我们想同步一个活动,从明天开始我们正式对外推出一个**《从 0 到 1 实战数据库内核教程》** 的培训,这个活动免费,我们面向的是开发者,期望的目标是帮助开发者和数据库爱好者能够无基础地入门数据库的内核开发,我们会介绍非常多的实用的数据库内核开发的技能,比如数据库开发环境的搭建、数据库模块的介绍、单元测试等等,希望大家能够参与,大家一起享受学习的快乐!今天我的分享到此结束,谢谢大家!

  • 相关阅读:
    Spring自动配置原理
    Django基于类视图实现增删改查
    关于 Invalid bound statement (not found): 错误的解决
    ClickHouse Keeper: Coordination without the drawbacks没有缺点的分布式协作系统
    软件测试——版本管理工具:SVN和Git
    【送面试题】深入理解Netty与NIO:原理与关键组件解析
    Day 53 | 1035. 不相交的线 & 53. 最大子数组和
    JVM篇---第五篇
    BUCK LX_OUT Snubber电路
    关于 ‘cosylocal‘ 进程占满内存的问题
  • 原文地址:https://blog.csdn.net/OceanBaseGFBK/article/details/126461944