我们每个月都会和大家展开一次社区进展的汇报沟通会,希望通过更多的互动交流让OceanBase 开源社区更加透明,实现信息共享,也希望能营造更加轻松的氛围,让大家可以在此畅所欲言、答疑解惑。如果您对我们的社区有任何建议,欢迎在 GitHub 上提 Issues 或 PR ,也欢迎大家称为 Contributor,参与到社区建设中来。
本月Newsletter分为以下几个部分:
1. OceanBase 社区版产品规划及研究成果
2. OceanBase 社区7月内容概览
3. OceanBase 社区7月精彩活动
4. OceanBase 社区用户问题精选
OceanBase 社区版产品规划及进展
本月社区“大事件”:3.1.4 正式发版,OceanBase数据库针对社区项目应用反馈,优化提升内核易用性与稳定性,服务广大社区用户。
OceanBase3.1.4 主要亮点:
- 内核能力提升:支持数据文件动态按需分配,支持直方图类型统计信息采集与监控。
- 稳定性提升:扩展单表大事务能力到2TB,多模OBKV支持历史数据过期清理。
- 易用性提升:支持删除单条缓存计划,优化日志与错误码展示等,ob-operator支持部署OBProxy,开源最新测试套框架。
Roadmap
OceanBase 社区版发布节奏如下:
每2年一个大版本 release,每3个月一次 feature 版本, 每个月一个 bug fix 版本( bp 版本)。
- 大版本发布即为架构发生升级, 版本升级类似 MySQL 5.7 升级到 MySQL 8.0, 需要做数据迁移才能完成升级。
- feature 版本即为发布了众多 feature 或大 feature , 本地手动冷升级(本地重启)或者通过 OCP 热升级(不停服务)。
- bp 版本即为纯 bug fix 版本, 版本升级直接替换 binary 即可, 可以使用 ODP 升级或使用 OCP 热升级。
产品进展
- 六棱镜 数据文件按需申请 done, 3.1.4 release
- 京东 DML执行失败时, 快速定位失败的列 done, 3.1.4 release
- 基石数据 监控数据增加直方图类型, 更便捷输出至Prometheus 3.1.4 release
- 贵州双龙 data_dir参数值不准确 3.1.4 release
- 快手 用户看到的错误码和日志中的一致 3.1.4 release
- 快手 删除一条 SQL 请求的 plan_cache 3.1.4 release
- 贝壳 多模数据库(Table、HBase API)需要支持自动过期数据清理 3.1.4 release;support load data local 详细设计中, 计划3.1.5 release;各租户历史日志备份记录保存到表 详细设计中,计划3.1.5 release;支持django 连接OceanBase 详细设计中, 计划3.1.5 release;clog按照存储大小绝对值限制使用 coding,计划3.1.5 release;增加单表的列上限(512->4096) coding,计划3.1.5 release;支持MySQL help command coding,计划3.1.5 release
- obclient支持更多mysql-test case 的语句 编码即将完成,3.1.5reelase
- 携程 审计日志gv$sql_audit 数据持久化 编码中
- 携程&58 obproxy的proxyro账号的密码按照集群来设置 编码中
- 钉钉用户 建议添加list分区根据范围查询可以使用到分区裁剪的功能 done,但改动较大,直接做在4.x 版本中,需要等待4.1 release
- 红象云腾 support latin1 character set done,但重新设计整个字符集框架,会支持更多的字符集格式,需要在4.1 后才能release
- 用友 打开PS, 更好支持golang done,但改动遍布很多模块,为了稳定性,只能至延期4.0 发布
- 自动化测试系统 ob-operator支持部署OBProxy done,released in 3.1.4
- 携程&58 独立configure-server done,released in 3.1.4
- 优化OMS 社区版安装部署 coding,released in OCP 3.3.0-bp1
- Support migration from TiDB to OceanBase done,will be release in OMS 3.3.1
OceanBase 社区7月内容概览
本月推荐
向量化引擎对HTAP的价值与技术思考
影响 Benchmark 性能的 OceanBase 常见操作和场景
高性能数据访问中间件 OBProxy(三):问题排查和服务运维
内容专栏
- 专题:SQL 改写系列,已完成 7 篇
- 专题:OBProxy 系列,已完成3篇
- 专题:OceanBase 源码解读,已完成 15 篇
- 专题:用户实践案例,已完成10篇
- 专题:OceanBase 存储层代码解读,已完成3篇
- 专题:社区故事,已完成 4 篇
更多内容可在社区专栏了解。
OceanBase 社区7月精彩活动
1. OceanBase CTO 聊天室的活动,北京的小伙伴们成功面基!
2. OceanBase 源码解读:一号表与副本位置信息管理
3. 《携程MySQL 转OceanBase 实践》《OceanBase 读写分离探索与优化》
8月活动预告
1. 2022 OceanBase 年度发布活会
2.《从0到1打造数据库实战教程》
了解更多活动请戳此链接。
OceanBase 社区用户问题精选
问题1:Oceanbase 的 multi-paxos 的实现方式, 相比 multi-raft 有哪些优势?
问题解析
multi-paxos 和 multi-raft 不应该被直接相比。二者的 multi 不是一个东西。multi-paxos 的 multi 是指一次 proposal 可以提交多个值。multi-raft 的 multi 是指有很多个 raft 组。
multi-paxos 最大的优势在于提交的数据可以乱序、可以有空洞。而 raft 要求提交的数据必须严格递增,不允许有空洞。这点在性能上 paxos 会有比较大的优势,特别是网络延迟稍微大的时候,比如跨城机房。
问题2:OMS 全量同步原理是直接 select 拉取表中的数据吗?上游有新的更新,开启增量后,是怎么衔接的?是通过回调拉取时间吗?OMS 应该不是常规的 CDC 处理逻辑,开启增量前先开启增量拉取模块,全量完成后再回放增量拉取?
问题解析
全量同步原理,可以简单理解为查询后批量插入,当然有优化处理,要分片,等等。对于如何衔接这一问题,会先增量落盘,再开启全量迁移,整个过程中,全量与增量有重叠部分,基于 at least once 设计,重复执行会幂等,一定是最终一致的。不选择增量迁移,就相当于一次全量迁移,这种情况是没办法最终一致的(假设上游没有停止写,因为全量拿到的数据是快照,无增量相当于无补偿行为,如果上游停写,就另说)。增量拉取与全量迁移数据是重叠的。
问题3:ODC 升级问题:升级执行数据迁移失败,从 3.1.x- 版本升级到 3.2.0+ 版本,内置 admin 账号名称冲突
问题解析
为避免账号冲突,ODC 启动时会进行预检查,如果存在内置账号名称冲突则需要将之前版本冲突的账号重命名。ODC 会生成一个 rename.properties 文件对系统中的同名 admin 用户进行更名操作。将新的账户名填在冲突名称之后,再重启应用即可解决该问题。
解决方案(以用户名 admin 冲突为例) :
- 在安装目录下的 ../odc/static/tmp/rename.properties 中编辑 rename.properties,格式为 admin=用户重命名
- 用户名修改完成后保存,再次尝试启动 ODC
更多用户问题及答疑请参阅GitHub。