首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OceanBase 4.1凭什么被称为“面向开发者的里程碑版本”?

过去13年,OceanBase以极强的稳定性、可扩展性和低成本,成为分布式数据库领域的典型实践,并持续加大科研投入,突破技术边界,让分布式技术不断升级的同时越来越好用,研发单机分布式一体化架构,让分布式数据库走向通用。

而经过多伦迭代,如今OceanBase 4.1版本全新上市,更是被誉为“面向开发者的里程碑版本”。那么,这个版本到底有何过人之处,能够成为行业“里程碑”?

内核稳定输出

资源隔离方面,4.1 版本提供了更细粒度的资源隔离控制能力,允许对同一张表的不同数据指定分别的资源组。

故障恢复方面,4.1版本完善了故障恢复能力。以用户实际遇到的多种类的异常问题作为优化目标,打磨每个模块处理异常的细节,让上述提到的各种异常情况发生时,数据库的服务都能在 8 秒内恢复,给业务提供更强的持续可用能力。

存储空间方面,4.1版本的系统会自动追踪宏块的使用情况,并允许多张表的数据可以复用同一个宏块。并且,当系统长时间运行,因为表格的陆续删除,宏块出现大块剩余空间时,还会自动进行碎片整理,释放出更多的宏块空间,进一步提升存储利用效率。在上述典型的表格数据量很小的场景下,新版本可以将存储空间利用率提升 1 至 2 个数量级。

性能持续提升

可并行 Truncate Table。OceanBase 是一个分布式数据库,Schema 变更需要在集群级别进行串行调度。4.1版本对于 Truncate Table 进行了专门优化,允许不同表的 Truncate Table 语句并行执行,可以在上述跑批业务场景中让执行效率提升一个数量级。

优化事务内路由。OBProxy 是 OceanBase 的路由层,其可将请求发送到最适合的 OBServer 节点进行处理,通常是一条语句所要处理的数据所在节点。这种路由能力可以优化 SQL 执行延迟。而OceanBase 4.1版本对于事务状态进行了重新设计,允许事务内的多条语句自由路由,让 OBProxy 可以把语句发送到数据所在节点,让语句执行的更快。这个优化对于 TP 业务分布式事务较多的场景,有非常大的优化效果,能够大幅降低整个事务的整体执行延迟。

兼容更加全面

MySQL 8.0。4.1 版本里新增了针对 MySQL 8.0 的多个兼容性升级:

1. 新增多种 SQL mode 的支持,包括 REAL_AS_FLOAT, POSTGRESQL, NO_DIR_IN_CREATE 等13个。

2. 新增支持十多个函数,包括 BIN_TO_UUID, CURRENT_ROLE, IS_UUID 等。

3. 触发器功能中 CREATE TRIGGER 语句支持 PRECEDES/FOLLOWS 子句定义触发顺序。

4. 公共表达式功能(CTE)支持 WITH ... UPDATE ... 和 WITH ... DELETE ... 用法。

5. 进一步完善 INFORMATION_SCHEMA 的兼容表现。

MySQL Binlog Service。MySQL 拥有非常好的生态,基于 Binlog 逻辑复制能力做出了一些比较成熟的增量解析系统并被广泛使用在数据集成中。在4.1版本中,Binlog Service 可以将 OceanBase 的日志转换成 MySQL Binlog 格式,并且提供了全面兼容 Binlog 协议的能力,当用户将 MySQL 替换为 OceanBase 时,可以继续复用 MySQL 的增量日志解析工具。

特性更高级

基于仲裁的高可用。OceanBase4.1版本中升级了对于两地三中心机房的支持。基于仲裁的高可用部署方案在主城市的两中心依然各放置两副本,在灾备城市放置仲裁服务,仲裁服务自身不存储数据。

集群正常工作时,主城市的四副本依然以 Paxos 一致性协议为基础进行事务日志的高可用同步,仲裁服务会实时维护与主城市四副本之间的活性检测。当主城市任一中心故障时,仲裁服务会介入管理让另一个状态正常的中心恢复数据库的服务。

基于仲裁的高可用方案在大幅度减少对于跨城网络带宽的依赖同时,依然保证了在主城市单个中心故障时服务连续性和数据可靠性,能力与之前的五副本方式一致,是最理想的两地三中心的数据库部署方案。

Database Link支持写事务。4.1版本中,以 XA 事务能力为基础,在 Database Link 上支持了跨 OceanBase 和 Oracle 的写事务能力,也支持 OceanBase 到 OceanBase 的写事务能力。更强的 Database Link 功能的支持可以协助实际业务替换数据库过程中做得更平滑,改动更小。

一、JSON。它是如今非常常用的一种数据格式,学习成本低、表达能力强,被用在各种系统和处理流程中。OceanBase 在 MySQL 兼容模式已经支持了 JSON 类型的基础上,在新版本中,添加了 Oracle 兼容模式中对于 JSON 类型的支持,完善了 OceanBase 的数据多模型能力。除了 JSON 类型的存储与查询,还支持了 Oracle 关于 JSON 新增的大部分函数如JSON_OBJECT、JSON_EQUAL等,方便在 Oracle 兼容模式中对 JSON 类型进行处理。

二、DBMS_LOB 包。Oracle 兼容模式下也具备了上文提到的全新的通用 LOB 能力,解决了大 LOB 操作对内存的依赖。同时,新版本还在 Oracle 兼容模式中支持了 DBMS_LOB 包,向用户提供对 LOB 的增量修改以及部分查询的能力,也进一步放宽了 LOB 大小的限制,能够支持 TB 级别大小的 LOB。

也正是基于OceanBase4.1 版本功能和稳定性的进一步升级,其才会被称为“面向开发者的里程碑版本”。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230413A07Y8500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券