RELEASE NOTE

Please refert to https://open.oceanbase.com/blog/10900260 for more Details.

Item Description
Release date 2022-3-30
Release number V3.1.3
Commit number 3d79cacb

About this version

In V3.1.3, OceanBase Database enhanced its ecological capabilities to provide better services for community users.

  • Supports JSON data types and provides OBKV HBASE client, to support semi-structured and NoSQL scenarios.
  • Supports connecting to OceanBase Database via MySQL native drivers including Python, Go and ODBC, supports k8s container orchestration by using ob-operator, and supports ARM platforms.
  • Stranger product capabilities: supports a minimum resource specification of 2C8GB, and improves the reliability of CDC link synchronization.

New features

Support JSON data type

In this version, OceanBase Database supports DDL, index creation, SQL query and data type conversion operations, and supports all the JSON functions of MySQL 5.7 and some of JSON functions of MySQL 8.0.

  • Supports four basic types (string, number, bool and NULL) and two structural types (objects and array).
  • Supports creating a JSON type column when creating a table or add a column.
  • Supports creating indexes on the basis of a JSON type column.
  • Supports referencing JSON objects using -> and ->> operators.
  • Supports using JSON text in SQL statements, including SELECT/INSERT/UPDATE/DELETE.
  • Supports all the JSON functions of MySQL 5.7 and some new JSON functions (for example, JSON_OVERLAPS() and JSON_VALUE() ) of MySQL 8.0.

Provide OBKV HBASE client

Applications can obtain API interfaces that are compatible with HBASE (HBASE 0.94) by using this client, and communicate with OceanBase Database via TABLE API interface protocol. Besides, in this version, OceanBase Database supports WideColumn data mode, optimizes the Filter logic, and supports KEY, RANGE and Prefix partitions.

Compatible with MySQL native drivers

In this version, OceanBase Database supports being connected via the following MySQL native drivers:

  • Supports Python3 pyMySQL and Python2 MySQL-python drivers.
  • Supports golang Go-SQL-Driver/MySQL driver.
  • Supports Unix ODBC driver.

Provide ob-operator and support K8s container orchestration

With ob-operator, OceanBase Database can be deployed on Kubernetes clusters on public cloud or on-premise environments. ob-operator can be deployed by using YAML files or Kustomize. ob-operator provides the following functions.

  • Supports deploying OceanBase clusters on k8s.
  • Supports creating, deleting , scaling in/out clusters and lifecycle management of clusters.
  • Supports creating and deleting Zone.
  • Supports creating, deleting, restarting OBServer instances.
  • Supports viewing cluster, Zone and OBServer status via kubectl commands.
  • Supports managing k8s resources via HTTP API.

Support ARM platforms

OceanBase Database and OBProxy are tested and verified on ARM platforms. In V3.1.3, users can develop, compile and test and deploy applications on ARM platforms.

Support lower specifications

In V3.1.3, OceanBase Database provides 2C8GB Docker images. Users can learn and use OceanBase Database with less resources. Enhance the reliability of CDC data synchronization Formerly, the data captured by CDC from OceanBase Database is stored in memory and then provided to downstream consumers, and this presents very high requirements on server specifications and might cause data synchronization failure on customers' key business. Therefore, OceanBase Database enhances the sychronization capability of CDC link.

  • Supports persistence mode. Before data sychronization, data is first stored temporarilly in local disk and then be transferred to the downstream consumers via the CDC link, and the transaction data stored in local disk is deleted after being consumed, thus reducing the capacity of memory occpied during data synchronization.
  • Supports big transaction. In V3.1.3, OceanBase Database optimizes the usage of memory during big transaction synchromization. This together with the persistence mode can fultill the data synchronization requirements in big transaction scenarios.

Improves usability

  • Resource capacity parameters (storage and memory) can be configured as a decimal, for example, alter system set datafile_size ='11.5G';.
  • Links directing to the related help information is printed when errors occur to OBD.
  • ob_admin will filter out business data while performing Clog parsing.
  • information_schema.TABLES supports ENGINE.
  • Documentations are opened to github where you can commit doc issues and push requests.

Feature changes

  • Change the default index of partition table to local index To better meet business requirements, the default index created on partition table is changed to local index. If you want to create global index, refer to create table ad1(c1 int primary key, c2 int, index(c2) global)partition by key(c1) partitions 2;.
  • Change to default table creation action to non-strict mode By default, OceanBase Database judges that a table is successfully created when the majority of replicas are successfully created. If you want to use the strict mode, set ob_create_table_strict_mode to False.

Bugfixes

  • Fixes the flashback table function. Tables deleted will be stored temporarilly in the recycle bin of OceanBase Database, and can be restored using the flashback table command.
  • Fixes the defect that when the TIMESTAMP precision is modified the time value returned changes. In V3.1.3, when the TIMESTAMP precision is modified, for example modifying the column type from TIMESTAMP(0) to TIMESTAMP(6), the time value returned will not change.
  • Error message will be returned when using the ALTER SYSTEM SET DATAFILE_SIZE command to set the data file size to a smaller value.
  • Fixes the defect that incremental backup will fail when the transaction status table is not null.

版本信息

更全版本信息, 请参考https://open.oceanbase.com/blog/10900260 .

名称 描述
发布时间 2022-3-30
版本号 V3.1.3
提交号 3d79cacb

概要说明

在 V3.1.3 版本,OceanBase数据库进一步增强社区生态能力,更好地服务广大社区用户。

  • 多模应用:新增JSON格式数据类型和OBKV HBASE 客户端,支持半结构化和NoSQL类型业务场景应用。
  • 生态能力增强:支持MySQL原生的Python/Go/ODBC类型驱动连接OceanBase数据库,发布ob-operator支持K8s容器编排,支持ARM平台编译运行。
  • 更优的产品能力:支持更小的资源规格(2C8GB),提升CDC链路同步可靠性。

特性更新

支持 JSON 格式数据类型 支持 DDL、索引创建、SQL 查询、数据类型转换等基本操作,兼容MySQL 5.7 版本的全量以及 8.0 版本的部分 JSON 函数。

  • 支持四种基本类型(字符串、数字、布尔值和 NULL)和两种结构化类型(对象和数组)。
  • 支持在创建表、添加列时创建类型为 JSON 的列。
  • 支持基于 JSON 列的生成列创建索引。
  • 支持通过 ->、->> 操作符引用 JSON 对象。
  • 支持在 SELECT/INSERT/UPDATE/DELETE 等 SQL 语句中使用 JSON 文本。
  • 支持MySQL 5.7 版本的全量 JSON 函数以及 JSON_OVERLAPS()、JSON_VALUE() 等 8.0 版本新增函数。

开源 OBKV HBASE 客户端

应用可以通过该客户端获得HBASE语法兼容(HBASE 0.94版本)的API接口,与OceanBase数据库通过TABLE API 接口协议进行通信。在数据模型上增加宽表模型(WideColumn),优化 Filter 逻辑,支持 KEY 分区、RANGE 分区和前缀分区。

兼容MySQL原生驱动

支持更多MySQL生态原生驱动连接OceanBase数据库:

  • 新增支持Python3 pyMySQL和Python2 MySQL-python驱动。
  • 新增支持golang Go-SQL-Driver/MySQL驱动。
  • 新增支持Unix ODBC驱动。

发布ob-operator,支持K8s容器编排

通过使用 ob-operator,OceanBase 数据库可以以容器的形式运行在公有云或私有化部署的 Kubernetes 集群上。用户通过 YAML或Kustomize 部署 ob-operator,ob-operator 以服务的形式提供如下能力:

  • 在 K8s 环境下独立部署 OceanBase 集群。
  • 支持集群的创建、删除、扩容、缩容和生命周期管理。
  • 支持Zone的创建、删除。
  • 支持OBServer实例的创建、删除、重启、故障转移。
  • 支持使用 kubectl 命令查看集群、Zone和OBServer 的状态。
  • 支持通过 HTTP API 管理 K8s 资源。

新增支持 ARM 平台

完成OceanBase 数据库与OBProxy中间件在ARM架构平台下的适配验证,并发布基于ARM架构的版本,社区用户可以在ARM平台下进行业务开发、编译测试和应用部署。

支持更小规格

发布2C8GB资源规格的Docker镜像,方便社区开发者使用更小的资源学习和使用OceanBase数据库,降低入门成本。

CDC数据同步可靠性增强

CDC 从 OceanBase 数据库拉取的数据以内存态的形式提供给下游消费者,对机器资源配置规格有较高要求,对于用户的关键业务场景(例如大数据量入库场景),可能会造成数据同步失败。因此,我们对CDC链路的数据同步能力进行增强:

  • 支持持久化模式,数据在同步开始前先进行本地临时存储,然后再通过CDC链路同步给下游消费者,待消费完毕后清理本地临时存储的事务数据,减少数据同步过程中对内存的占用。
  • 支持大事务,优化大事务同步时对内存的使用,结合持久化模式,满足大事务场景下的数据同步需求。

产品易用性增强

  • 资源容量(存储、内存)相关配置项支持小数设置,例如:alter system set datafile_size ='11.5G'。
  • OBD 在报错时提供帮助链接地址。
  • ob_admin支持在Clog解析时过滤用户数据。
  • information_schema.TABLES 增加 ENGINE 值。
  • 文档开源,支持通过github提交文档issue和pr。文档包括架构设计原理、性能调优、故障处理、日常维护指导等。

行为变更

  • 分区表默认创建的索引变更为本地索引 在一些客户使用过程中我们发现 ,需要经常对分区表的索引性能进行调优,经过分析总结,发现局部索引更适合多数客户业务场景,因此我们将分区表默认创建的索引调整为本地索引。如果需要创建全局索引,可以参考示例 create table ad1(c1 int primary key, c2 int, index(c2) global)partition by key(c1) partitions 2。
  • 修改创建表的默认行为为非严格模式 OceanBase 数据库建表时只要求多数派副本创建成功即认为建表成功。如果需要使用严格模式创建表,需要将系统变量ob_create_table_strict_mode设置为True。

问题修复:

  • FLASHBACK TABLE 功能修复,删除的表会临时存放在数据库的回收站中,用户可以通过 FLASHBACK TABLE命令恢复表和数据。
  • 修复TIMESTAMP值域变更导致的显示错误问题,例如:列类型由TIMESTAMP(0)修改为TIMESTAMP(6),保证前后查询时间结果显示一致。
  • 修复ALTER SYSTEM SET DATAFILE_SIZE命令执行报错,若将数据文件大小变更缩小直接报错返回。
  • 修复因事务状态表非空导致增量备份失败的缺陷。

项目简介

OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.

🚀 Github 镜像仓库 🚀

源项目地址

https://github.com/oceanbase/oceanbase

发行版本 26

v4.1.0_BP3_HF1

全部发行版

贡献者 125

全部贡献者

开发语言

  • C++ 96.9 %
  • Python 2.0 %
  • Yacc 0.5 %
  • C 0.2 %
  • CMake 0.2 %