当前位置: 代码迷 >> 综合 >> OceanBase 开源负责人纪君祥聊 社区版 2022 Roadmap
  详细解决方案

OceanBase 开源负责人纪君祥聊 社区版 2022 Roadmap

热度:68   发布时间:2024-01-17 11:31:09.0

昨日, OceanBase 开源社区为大家展开了《深入浅出 OceanBase 》系列第一期直播分享:在本次直播中,OceanBase 开源研发总监纪君祥带来了 OceanBase 社区版 2022 Roadmap 精彩演讲,吸引了数百名观众线上观看,群内互动交流热火朝天。

错过了本次直播?没关系!

看过还觉得意犹未尽?

小编这就为你总结一下全文!

为什么我们要发起《深入浅出 OceanBase 》系列直播?

之前在跟社区一些朋友交流的过程中发现,不少朋友都希望 OceanBase 能够多分享更多有趣、有价值的技术点。

OceanBase 开源社区是真正属于用户的社区

当我们听到大家的反馈后,就在琢磨怎么样站在社区的角度,为大家每月一至两次精彩对话。这便是我们发起《深入浅出 OceanBase 》系列直播的初心,希望大家通过这个活动能更了解 OceanBase。

首先介绍 OceanBase 从过完2022年春节以来的 Monthly Report,旨在将 Oceanbase 最近一些进展和即将发版的特性跟大家展开交流。

活动预告:

1、后续将推出《深入浅出 OceanBase 》系列, 每月2场线上分享, 2场分享中, 2个 topic 偏运维和产品, 2个偏技术解析, 产品系列如《高可用运维》、《数据同步》、《异地多活》等, 技术系列如《 SQL 系列之 优化器改写规则1/2/3/4》等等。

2、3月1日推出 《测性能,拿周边|OceanBase 3.1.2 版邀你来玩》。

3、4月份将推出 《文档捉虫系列》, 届时欢迎大家参与。

如何更及时获取官方信息以及参与社区学习呢,通过扫码即可加入 OceanBase 官方社群。

博客文章推荐

自春节以来,OceanBase 开源社区一共发布了40多篇干货文章,

其中以下三篇文章内容非常值得推荐:

《OceanBase 数据库系统概念》首次发布,系统精准定义 OceanBase !

高性能的连接管理和数据路由组件,OceanBase 生态工具 ODP 详解

OceanBase 存储层代码解读(三)宏块存储格式

更多内容,欢迎浏览 

2022 RoadMap 大纲

OceanBase 社区版发布节奏如下:

每年一个大版本 release,每3个月一次 feature 版本, 每个月一个 bug fix 版本( bp 版本).

  1. 大版本发布即为架构发生升级, 版本升级类似 MySQL 5.7 升级到 MySQL 8.0, 需要做数据迁移操作
  2. feature 版本即为发布了众多 feature 或大 feature , 本地手动冷升级(本地重启)或者通过 OCP 热升级(不停服务)
  3. bp 版本即为纯 bug fix 版本, 版本升级直接替换 binary 即可, 可以使用 ODP 直接 binary 替换或使用 OCP 热升级

内核关键特性:

整体进度, 内核 feature 都已经完成开发, 持续扫描商业版的 patch , 在测试回归中, 整体 JSon 支持 风险存在, 不能保证一定在这个版本中能 release 出来.

  1. ARM 支持: OBServer/OBProxy/OBD 支持 ARM 系统, 但工具还没有完成适配, 进度已经完成了, 银联已经在提前试用。需求方: 银联, 民生银行, 中国联通等超过10人+
  2. JSon 支持: 支持 JSon, 去年9月份开始研发, 当前研发已经完成, 当前还在测试中, 如果通过测试就会按计划发版, 否则往后推一个版本。需求方: 民生银行, 携程, 阳光保险等有需求.
  3. HBase api 支持: 将内部大面积使用的 HBase api 开源出来, 当前进度已经完成.。需求方: 贝壳, 小米, CeresDB 等。性能想较默认的 hbase 2.4.6 的 sync 方式 有不少提高, scan 性能2.42倍, insert 1.7倍

  1. Table api 异步支持: 从去年9月份开始实现, 底层线程池来异步响应用户的请求, 主要提升 table api 的吞吐量. 在 batch api下, 性能提升300% ~ 500%.
  2. 回收站恢复 Tenant & Database & Table & Index: flashback 恢复回收站对象.
  3. 小规格优化 2c8g, 2c8g docker 运行oceanbase
  4. 默认创建 local 索引 : 已经完成
  5. information_schema.TABLES 增加 ENGINE 值: 需求来自58 同城

自研生态工具

OCP 社区版(3.3.0-ce) 4月30日 release

  1. 开放备份恢复功能: 未来无需敲命令进行恢复
  2. 接管 OBD 部署集群功能
  3. 接管 OBProxy 集群功能
  4. 安装简化
  5. 增加检查功能, 接管集群时, 添加主机时, 增加部分检查, 避免安装过程中报错

OMS 社区版(oms3.2.2-ce-bp2) 3月30日 release

社区版 CDC 支持持久化: 移植商业版功能, 需求来自浦发银行, 这个功能当前进度, 已经完成开发, 但将 liboblog 改名为 libobcdc , 涉及大量上下游协同改动, 因此有可能会延后一个版本

  1. 解决超大事物OOM 风险
  2. 提取拉取速度, 降低 限速阀值, 防止历史clog 日志太久没有消费, 而被覆盖掉

OMS 社区版(3.3.0-ce) 5月9日 release

  1. 支持 OceanBase 到 OceanBase 数据迁移和同步
  2. 支持 OceanBase 到kafka & rocketmq 数据迁移和同步
  3. 安装易用性改进

OBDeployer(1.3.0) 3月30日

  1. ARM 支持
  2. OBD 在出错的场景下打屏输出帮助链接地址

开发者中心 ODC

OceanBase 在线体验站 play.oceanbase.com 切到社区版

ob-admin 工具:

提供不打印数据的 clog 解析工具

驱动:

  1. python 驱动已经完成验证
  2. python 3.X pyMySQL
  3. python 2.X MySQL-python
  4. golang Go-SQL-Driver/MySQL
  5. Unix ODBC

sql plan monitor

可视化展示 SQL Plan, 开源流程中, 预估在下个月会开放出来

生态合作

1.CloudCanal 合作 已经完成 

MySQL --> OceanBase 

OceanBase --> MySQL 正在研发, 预估 下个月完成

2.通过 Flink CDC 全量及增量同步 对接 Flink CDC

3.通过 otter 双向实时同步 对接 otter 广州智通人才

4.对接南京基石数据智能运维平台 D-smart 大师问诊软件

3.1.4

内核

  1. data file 按需申请大小
  2. OBServer 内核原生支持 Prometheus 监控数据输出
  3. 扩所容时, unit 进度可查询
  4. Golang 支持 PS
  5. 多模数据库 ttl 过期数据自动删除
  6. data_dir 参数值不准确

OCP (3.4.0-ce)

  1. 白屏化安装所有工具
  2. OceanBase-operator 能够支持修改 OceanBase 配置

OBDeployer

  1. 能否在安装时启用 playground 方式
  2. 一键运行 TPC-C 测试

sql-diagnoser

  1. 诊断工具的敏捷版
  2. 可疑 SQL 诊断
  3. 一键收集和系统诊断相关 metrics
  4. 一键手机诊断日志和元数据

生态合作

  1. 2022/4 通过 Chunjun (原 flinkx )对接 Chunjun
  2. 计划每月完成一家公司对接

Q&A 环节

1、Q:OceanBase 所提供的 HBase API 是做什么的的?为了接入 HBase 的数据吗?

A:OceanBase 提供了 HBase 的 API ,主要是在以下背景下产生:HBase 是一个java 的程序。以前在每年双十一的时候,会遇到流量洪峰,而且容易出现尖峰刺的情况, 在这种情况下非常容易发生 java 的gc, gc 特别严重的话,会 stop the world。

所以阿里也投入了人力来专门优化 HBase 的 java gc。但是不管怎么优化还是有一定的风险,即会因为java gc而抖动。在此背景下,OceanBase 提供了 KV 的这一套能力,也就是说上层的应用可以将请求直接触达到 OceanBase 的存储层,绕过 OceanBase 的 SQL 层可以直接到存储层,直接提供了 KV 的这一套接口。

再者,因为 OceanBase 是用 C 和 C++ 写的,所以不存在有这种 java gc 问题。而且现在整个蚂蚁很多应用都从以前的 HBase 切换到 OceanBase 上了。我们这套 HBase 的性能,其实相对于使用最多的 HBase 2.4.6 来说,我们 scan 性能提升到2.42倍, insert 提升到1.7倍。整个性能非常不错,我们自己用的蛮久, 稳定性有一定的保证。

2、Q:能支持 Redis 协议?

A:我们现在暂时没有计划支持 Redis。因为 Redis 是一个内存,是一个cash。坦白讲,可能我们还是拼不过 Redis 这种 cash 的速度。

3、Q:HBase 能直接读取 OBKV 吗?

A:HBase 的 client 是不能够直接去读 OBKV 的。我们会有一个 HBase 专属的 java client,可以使用,可以读取 OBKV。

4、Q:咱们有没有对 MySQL 存储过程的支持计划?

A:关于对 MySQL 存储过程的支持,我们现在商业版支持,社区版暂不支持。

5、Q:intel 支持 numa 吗?numa 好像是amd和arm的优势?

A:numa 在 OceanBase 上已经用的比较多了。而且阿里云上很多的数据库已经都开始支持了。numa 会利用 CPU 的内存本地人亲和性来提升性能。

6、Q:底层是KV?如果是读放大如何解决,以实现合并不影响线上?

A:底层不是KV的, 我们有大量优化提升读性能的,推荐看一下 。

7、Q:能简单介绍下 OceanBase 的 SQL 限流原理吗?

OceanBase 是通过在 SQL 上绑定 Outline 的方式来实现的, 有一个 MAX_CONCURRENT(NUM) hint ,通过 outline 绑定到 SQL 上实现 SQL 的限流,具体可参考 。比如说你给它设置成一的时候,那在租户级别,这个 SQL 只能开一个线程跑,它的并发度只能是一。比如说这个 SQL 它的 rt 是一百毫秒的话,那它的 qps 最多只能到十。如果你想把这个 SQL 给限死的话,那你直接把并发度都改成零就可以了。

8、 Q:可以大致介绍下双十一大促的弹性方案吗?

简要介绍下,大促期间会使用阿里云的资源,然后利用 OceanBase 的弹性伸缩能力,把一部分副本给它弹出去,做一个横向的扩容。

9、Q:除了合并可以更新统计信息外,还有什么其他方法可以更新统计信息?

A:除了合并以外,从V3.2.1版本开始支持通过 ANALYZE TABLE 命令,收集更新统计信息,具体可参考。

10、Q:降序索引什么时候支持?

A:降序索引目前用的2.2.77版本是没有支持的。

11、Q:动态改主键什么时候支持?

A:因为 OceanBase 是索引组织表,针对目前改主键的情况,我们内部现在还是用 OMS 同步,即把表结构提前建好,然后把数据拷贝过去,然后再做一个在线的 rename 以实现改主键。

12、Q:提前解行锁会不会有大规模级联回滚的风险?

A:这个有可能会出现,比如说在切主的时候,那它这个事务可能会被 kill 掉,就有可能会出现大规模级联回滚。

大家也可以直接看网页  ,本次我分享的所有内容都将直接公布出来,放到 OceanBase github 的 discussions 板块。

OceanBase 直播我做主!

后续直播大家想听什么主题?欢迎大家在帖子下面留言。

最后的最后,您有任何疑问都可以通过以下方式联系到我们~

联系我们

欢迎广大 OceanBase 爱好者、用户和客户随时与我们联系、反馈,方式如下:

社区版官网论坛

社区版项目网站提 Issue