昨日, 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 版本).
- 大版本发布即为架构发生升级, 版本升级类似 MySQL 5.7 升级到 MySQL 8.0, 需要做数据迁移操作
- feature 版本即为发布了众多 feature 或大 feature , 本地手动冷升级(本地重启)或者通过 OCP 热升级(不停服务)
- bp 版本即为纯 bug fix 版本, 版本升级直接替换 binary 即可, 可以使用 ODP 直接 binary 替换或使用 OCP 热升级
内核关键特性:
整体进度, 内核 feature 都已经完成开发, 持续扫描商业版的 patch , 在测试回归中, 整体 JSon 支持 风险存在, 不能保证一定在这个版本中能 release 出来.
- ARM 支持: OBServer/OBProxy/OBD 支持 ARM 系统, 但工具还没有完成适配, 进度已经完成了, 银联已经在提前试用。需求方: 银联, 民生银行, 中国联通等超过10人+
- JSon 支持: 支持 JSon, 去年9月份开始研发, 当前研发已经完成, 当前还在测试中, 如果通过测试就会按计划发版, 否则往后推一个版本。需求方: 民生银行, 携程, 阳光保险等有需求.
- HBase api 支持: 将内部大面积使用的 HBase api 开源出来, 当前进度已经完成.。需求方: 贝壳, 小米, CeresDB 等。性能想较默认的 hbase 2.4.6 的 sync 方式 有不少提高, scan 性能2.42倍, insert 1.7倍
- Table api 异步支持: 从去年9月份开始实现, 底层线程池来异步响应用户的请求, 主要提升 table api 的吞吐量. 在 batch api下, 性能提升300% ~ 500%.
- 回收站恢复 Tenant & Database & Table & Index: flashback 恢复回收站对象.
- 小规格优化 2c8g, 2c8g docker 运行oceanbase
- 默认创建 local 索引 : 已经完成
- information_schema.TABLES 增加 ENGINE 值: 需求来自58 同城
自研生态工具
OCP 社区版(3.3.0-ce) 4月30日 release
- 开放备份恢复功能: 未来无需敲命令进行恢复
- 接管 OBD 部署集群功能
- 接管 OBProxy 集群功能
- 安装简化
- 增加检查功能, 接管集群时, 添加主机时, 增加部分检查, 避免安装过程中报错
OMS 社区版(oms3.2.2-ce-bp2) 3月30日 release
社区版 CDC 支持持久化: 移植商业版功能, 需求来自浦发银行, 这个功能当前进度, 已经完成开发, 但将 liboblog 改名为 libobcdc , 涉及大量上下游协同改动, 因此有可能会延后一个版本
- 解决超大事物OOM 风险
- 提取拉取速度, 降低 限速阀值, 防止历史clog 日志太久没有消费, 而被覆盖掉
OMS 社区版(3.3.0-ce) 5月9日 release
- 支持 OceanBase 到 OceanBase 数据迁移和同步
- 支持 OceanBase 到kafka & rocketmq 数据迁移和同步
- 安装易用性改进
OBDeployer(1.3.0) 3月30日
- ARM 支持
- OBD 在出错的场景下打屏输出帮助链接地址
开发者中心 ODC
OceanBase 在线体验站 play.oceanbase.com 切到社区版
ob-admin 工具:
提供不打印数据的 clog 解析工具
驱动:
- python 驱动已经完成验证
- python 3.X pyMySQL
- python 2.X MySQL-python
- golang Go-SQL-Driver/MySQL
- 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
内核
- data file 按需申请大小
- OBServer 内核原生支持 Prometheus 监控数据输出
- 扩所容时, unit 进度可查询
- Golang 支持 PS
- 多模数据库 ttl 过期数据自动删除
- data_dir 参数值不准确
OCP (3.4.0-ce)
- 白屏化安装所有工具
- OceanBase-operator 能够支持修改 OceanBase 配置
OBDeployer
- 能否在安装时启用 playground 方式
- 一键运行 TPC-C 测试
sql-diagnoser
- 诊断工具的敏捷版
- 可疑 SQL 诊断
- 一键收集和系统诊断相关 metrics
- 一键手机诊断日志和元数据
生态合作
- 2022/4 通过 Chunjun (原 flinkx )对接 Chunjun
- 计划每月完成一家公司对接
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