Skip to content

Releases: oceanbase/oceanbase

v3.1.4_CE_BP1

27 Oct 11:54
Compare
Choose a tag to compare

RELEASE NOTE

Information Description
Version V3.1.4_CE_BP1
OBServer RPM version oceanbase-ce-3.1.4-100000112022102717

About this version

This version fixed one bug.

BUGFIX

Fixed not hit plan cache due to equal constraint (39c3a04)

发布说明

项目 描述
版本号 V3.1.4_CE_BP1
OBServer RPM 版本号 oceanbase-ce-3.1.4-100000112022102717

发版目的

本次发版主要是BUG修复。

BUG 修复

修复等值约束下计划未命中的问题 (39c3a04)

v3.1.4_CE

18 Jul 02:23
Compare
Choose a tag to compare

Version information

Items Description
Release date 2022-7-18
Release number V3.1.4
Commit number b4bfa01
OBServer RPM version oceanbase-ce-3.1.4-10000092022071511

About this version

To provide better services to community users, OceanBase Community Edition V3.1.4 optimizes the database to make it more user-friendly and stable based on the feedback on applications of the community project.

  • Database improvements: OceanBase Community Edition V3.1.4 supports dynamic allocation of data files as needed. It also supports statistics collection and monitoring in the form of histograms.
  • Stability improvements: Multimodel OBKV supports cleanup of expired historical data, which increases the capacity of processing large transactions in a single table.
  • Improved ease of use: OceanBase Community Edition V3.1.4 supports the deletion of a single cache plan and optimizes the display of logs and error codes. ob-operator supports the deployment of OBProxy. The latest testing framework is open sourced.

Updated features

Dynamic allocation of data files as needed

OceanBase Database is a distributed disk-resident database. It organizes and manages data in a logical architecture of macroblocks and microblocks. In terms of physical storage, OceanBase Database uses a ssblock file to store data on each OBServer. At present, the disk space is fully pre-allocated and occupied by the ssblock file on each OBServer. This allocation mode ensures the availability of disk resources during the operation of OceanBase Database. It avoids data persistence failures due to insufficient disk space, which reduces the system runtime risk.
This new version of OceanBase Database supports dynamic allocation of data files as needed. You need to configure only the datafile_next parameter that specifies the step size of automatic disk usage increase and the datafile_maxsize parameter that specifies the maximum disk space that can be automatically allocated.
OceanBase Database regulates disk space by using scheduled tasks based on the following rules:

  • OceanBase Database calculates the disk usage by using the background statistics of scheduled tasks, and automatically increases the disk space when the disk usage reaches 95% of the initial value of the ssblock disk space. The percentage threshold can be modified.
  • When the allocated disk space is insufficient, the system automatically increases the disk space based on the configuration.
  • You cannot reclaim the disc space occupied by the data files on OBServer nodes. To reduce and release the currently occupied disk space, you can scale in the cluster and remove servers from the cluster.

Collection and monitoring of statistics in the form of histograms

OceanBase Community Edition V3.1.4 supports the collection and monitoring of statistics in the form of histograms. You can use OceanBase Database in combination with the histogram monitoring metrics of Prometheus. Specifically, you can define and generate a new statistics table that records statistical data of the specified percentiles, such as the 95th and 99th percentiles, in OceanBase Database. Then, the open source component OBAgent exports the statistics to and displays the statistics in Prometheus. This makes OceanBase Database easier to use. When this feature is enabled, the write performance can be somewhat affected.
Histogram statistics of OceanBase Database supports the following features:

  • The QUERY_RESPONSE_TIME view, which is defined in INFORMATION_SCHEMA.
  • The query_response_time_stats variable, which is the system variable that enables or disables the statistics feature.
  • The query_response_time_range_base variable, which is the system variable that specifies the statistics collection interval.
  • The query_response_time_flush variable, which is the system variable that forces the refresh and re-retrieval of statistics.
  • The open source component OBAgent, which reads the QUERY_RESPONSE_TIME view for Prometheus to generate histograms.

Cleanup of expired historical data

OBKV is supported to clean up the expired historical data.
OceanBase Database maintains expired data on OBServers and supports the recycle of the expired data based on the timestamp and version respectively specified by the TIMESTAMP and MAXVERSION parameters. You can specify the expiration time and the maximum number of versions of table data in the comment for the column family table upon table creation. OceanBase Database runs periodic background tasks to launch partition-level transaction scanning and clean up the expired data at the Partition Service layer.
Key updates:

  • The tenant-level system tables __all_kv_ttl_task** and ** __all_kv_ttl_task_history are provided to record the status and the historical operation records of time-to-live (TTL) tasks. Garbage collection (GC) is performed on the __all_kv_ttl_task_history table to maintain the number of records in the table, which is similar to the GC strategy for other history tables of historical records.
  • The DBA_OB_KV_TTL_TASKS and DBA_OB_KV_TTL_TASK_HISTORY views are provided for you to view the current and historical TTL tasks in the tenant.
  • The virtual __all_virtual_kv_ttl_task** and **__all_virtual_kv_ttl_task_history tables and the corresponding CDB_OB_KV_TTL_TASKS and CDB_OB_KV_TTL_TASK_HISTORY views are provided for you to view the current and historical TTL tasks of all tenants in the SYS tenant.
  • The kv_ttl_duty_duration parameter is provided to specify the background execution period for periodic TTL tasks. If a TTL task is unfinished when the execution period expires, this task and tasks following it are suspended and then resumed in the same execution period on the next day. You can set the execution period for background TTL tasks based on the characteristics of your application system.
  • The enable_kv_ttl parameter is provided to specify whether to start the background TTL tasks. The kv_ttl_history_recycle_interval parameter specifies the period of time to retain the history of TTL tasks.
  • Memory usage and throttling is supported. The progress of background TTL tasks can be dynamically adjusted based on the memory usage of MemStore.
  • Transaction usage and throttling is supported. The number of table records that can be queried and deleted in each background TTL task is limited. This way, transactions can be committed in batches to avoid the generation of large transactions. In addition, if lock contention occurs to a transaction, the transaction can be rolled back.

Invalidate the execution plan of a single SQL statement

When an irrational SQL execution plan is found, the DBA can invalidate the plan based on the SQL ID. This avoids the invalidation of the entire plan cache, which can affect the system stability. Usage notes:

  • The SYS tenant can invalidate a specific or all SQL execution plans of a user tenant by executing the following statement: ALTER SYSTEM FLUSH PLAN CACHE [ [SQL_identifier] [db_list] tenant_list ][global];.
  • A MySQL tenant can invalidate a specific or all SQL execution plans of the tenant by executing the following statement: ALTER SYSTEM FLUSH PLAN CACHE [ [ SQL_identifier ] [db_list] ] [global];.

Improved ease of use

  • ob-operator supports the deployment of OBProxy, which makes it easier to operate on multiple nodes in the cluster and improves the routing accuracy.
  • To be compatible with MySQL error codes, OceanBase Database of earlier versions converted internal error codes to external error codes. As a result, the error codes displayed on the client are inconsistent with those recorded in the log, making it difficult for users to troubleshoot the errors. To address this issue, in OceanBase Community Edition V3.1.4, internal and external error codes are both recorded in the logs to help you locate the errors.
  • If the execution of the update [table_name] set [column_name] statement fails due to the Data too long for column error, the error message specifies the column that causes the error.
  • The latest OBClient and the testing framework are open sourced, making it easier for community developers to participate in code development and testing.

Other changes

  • The lower_case_table_names variable cannot be modified.
    The lower_case_table_names variable is a global read-only variable. You cannot modify it by using the set global lower_case_table_names; statement or the alter tenant [tenant_name] set variables lower_case_table_names; statement.
  • When automatic scaling is enabled, the total_size field of the __all_virtual_disk_stat table indicates the maximum disk space that is available for data storage.

Fixed issues

  • The content of the datadir variable is not displayed because it is a read-only system variable. In OceanBase Community Edition V3.1.4, the content of the cluster variable data_dir is displayed.
  • The internal limits on large transactions and on the size of the log_id of transaction groups are removed. The _max_trx_size parameter is provided to prevent the generation of large transactions, which can cause adverse impact on the database.
  • The restriction that table names cannot exceed 64 characters in length is removed.
  • The execution of a query with the /*+ LEADING */ comment will fail with the Invalid argument error.
  • The 4016 error is returned if you use the create table t select ~1; syntax to create a table.
  • In earlier versions, you can only create an SQL comment on a single line in your SQL statement. In OceanBase Community Edition V3.1.4, your SQL comment can span multiple lines.
  • The virtual table definitions corresponding to the show full columns command are modified to improve the compatibility with MySQL databases.

版本信息

| 信息 | 描述 |
| ---...

Read more

v3.1.3_CE_BP1

15 Apr 08:07
Compare
Choose a tag to compare

RELEASE NOTE

Information Description
Version V3.1.3_CE_BP1
OBServer RPM version oceanbase-ce-3.1.3-10100032022041510

About this version

This version fixed some bugs.

BUGFIX

  • Fix observer restart failed in some extreme environment because fetch slog again failed.( #a09d313);
  • Decrease the memory limit of MINI MODE docker image.( #7a49bef);

发布说明

项目 描述
版本号 V3.1.3_CE_BP1
OBServer RPM 版本号 oceanbase-ce-3.1.3-10100032022041510

发版目的

本次发版主要是BUG修复。

BUG 修复

  • 修复极端场景下,ob重启回放slog失败,导致启动失败的问题( #a09d313);
  • 调低MINI MODE的内存限制( #7a49bef);

v3.1.3_CE

30 Mar 14:17
Compare
Choose a tag to compare

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 3d79cac
OBServer RPM version oceanbase-ce-3.1.3-10000292022032916

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
提交号 3d79cac
OBServer RPM 版本号 oceanbase-ce-3.1.3-10000292022032916

概要说明

在 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命令执行报错,若将数据文件大小变更缩小直接报错返回。
  • 修复因事务状态表非空导致增量备份失败的缺陷。

v3.1.2_CE

31 Dec 08:22
Compare
Choose a tag to compare

RELEASE NOTE

Version information

Item Description
Release date 2021-12-30
Release number V3.1.2
Commit number d4ace12
OBServer RPM version oceanbase-ce-3.1.2-10000392021123010

About this version

In V3.1.2, we provided free GUI developer tool (ODC), maintenance and monitoring tool (OCP), data migration tool (OMS), OBDUMPER, and OBLOADER for OceanBase users. OceanBase supported online cross-version upgrade. You can specify the target upgrade version by using OBD. OBD will automatically find the best upgrade solution and do the upgrade for you. The upgrade process does not affect your business. We optimized the update of hot row data and improved the performance by 300%. We optimized the delimination mechanism of SQL PLAN for partition tables. We optimized the underlying communication code. We added multiple SQL MODE functions and system functions.

New features

  • Developer center (ODC): OceanBase Developer Center Community Version is a development platform for OceanBase database. ODC supports database objects visual management, intelligent syntax, session management, recycle bin management, data import or export, and resource and permission management. Key features of ODC are:

    • Multi-window development mode: Provided SQL window, anonymous block window, and command line window development modes. You can choose your development mode based on your habits. The SQL window and anonymous block window supports advanced features such as intelligent auto-completion, syntax highlighting, and formatting, etc.
    • Rich result set management: Supported the interactive operation of result set tabulation. Supported exporting all or part of the query result set in SQL window.
    • Flexible import and export: Supported SQL, CSV, and other format data files. You can import or export a single table, multi-table, or all data in a database at one time. Supported importing or exporting the defined objects and tables separately or together.
    • Collaboration management: Supported built-in control platform. You can edit the roles and permissions for user groups, and manage connection resources to improve your collaboration efficiency.
  • Maintenance and monitoring tool (OCP): OceanBase Cloud Platform (OCP) is a cluster management tool for OceanBase Database. With OCP, you can manage and operate your hosts, networks, software packages, and the full lifecycle for your clusters and tenants. With OCP, you can also decrease your IT O&M cost. Key features of OCP are:

    • Cluster management: Supported cluster installation, operation, and maintenance, performance monitoring, configuration, upgrade, deletion, adding or removing hosts.
    • Tenant management: Supported creating tenant, tenant topology, performance monitoring, session management, and parameter management.
    • Monitoring and alerts: Supported monitoring clusters, tenants, and hosts. You can use the built-in alerts or customize your alerts. You can use templates to configure HTTP or customize script channels for various message channels.
    • System management: Supported viewing tasks and managing running tasks. You can customize parameters based on your business.
    • Security: Supported creating, altering, and deleting database users and roles, granting and revoking permissions for roles. You can manage OCP users' settings, passwords, and alarm subscriptions through User Center.
  • OceanBase Migration Service (OMS): You can use the OceanBase Data Migration Tool (OMS) Community Edition to migrate data from heterogeneous databases to OceanBase databases. OMS supports online data migration and real-time synchronization of incremental data. All changes to OceanBase database are synchronized in real-time to the source database before migration. You can use the management console to create data migration projects, customize task configuration and monitor the OMS transfer components. Key features of OMS are:

    • Database objects migration: Supported exporting, switching, and creating tables, indexes, constraints.
    • Full data migration.
    • Incremental data migration: Supported real-time incremental data synchronization from the source database to the target database through log parsing.
    • Full data verification: Supported full data verification between source data and target data. Provided scripts to correct the inconsistent data.
    • Reverse incremental migration: When the business switches the application to the (source) target data, the incremental data in the target database is synchronized back to the source database in real-time.
    • Supported MySQL versions: 5.6, 5.7.
    • Supported customized alarm settings.
    • O&M monitoring: Supported monitoring on hosts and components.
  • OBLOADER/OBDUMPER: You can use OBLOADER or OBDUMPER to import or export data. To improve concurrent performance for OBLOADER or OBDUMPER, you can specify the concurrency number, the paging query records number, and the batch number based on your kernel load capacity. OBLOADER and OBDUMPE support exporting SQL by partition, specified conditions, single table, multi-table, full database, and customized queries. OBLOADER and OBDUMPE support data pre-processing, field mapping import. OBLOADER and OBDUMPE are compatible with SQL, CSV, CUT, etc.

  • Supported online rotating upgrade across versions: You can upgrade your OceanBase database with the obd cluster upgrade command. OBD automatically identifies the upgrade path between matching versions and does a rotating upgrade for each Zone. For more information, see OBD document.

  • Optimized data hotspot row: To update hotspot data, OceanBase used lock for write and released row-level locks before filling logs. This increased the concurrent update performance from 3000TPS to 9000TPS and expanded the upper limit for hotspot data processing.

  • Optimized the elimination mechanism for partition table SQL PLAN: In distributed scenario plan evaluation, there is no accurate feedback on the number of rows in the remote node partition. And there is a risk of plan degradation. OceanBase uses the final SQL execution time feedback to negatively optimize the execution plan. When the average execution time of the sampled query exceeds twice the first execution time, the PLAN is targeted to be eliminated and a new SQL PLAN is generated to solve the bad performance caused by the degradation of the SQL PLAN.

  • Optimized the communication clock stability: OceanBase uses CPU clock (SYS_clock_gettime) to get the timeout time for its underlying communication framework. However, the upper SQL layer uses OS clock (get_timeofday) to record the timeout time. The difference between these two times may cause the upper business layer to reset the original error code for the bottom layer. With the timeout difference tolerance design, OceanBase reproduces the system error and improves the error locating efficiency.

  • Compatibility with MySQL: Supported some new system functions:

    • VALIDATE_PASSWORD_STRENGTH(): This function returns an integer to indicate how strong the password is. The return value ranges from 0 (weak) to 100 (strong). For example, SELECT VALIDATE_PASSWORD_STRENGTH('Password@123');
    • UUID_SHORT(): Returns a “short” universal identifier as a 64-bit unsigned integer. For example, SELECTUUID_SHORT();
    • TO_BASE64() and FROM_BASE64(): TO_BASE64() returns the argument converted to a base-64 string. For example, SELECT TO_BASE64('12345'). FROM_BASE64() decodes base64 encoded string and return result. For example, SELECT FROM_BASE64('MTIZNDU=');.
    • DAY(): Returns the day of the month (0-31). For example, SELECT DAY('2021-12-12');.
    • ANY_VALUE(): Suppress ONLY_FULL_GROUP_BY value rejection.
  • Open sourced OBKV TABLE JAVA Client: Provided direct access to the underlying OceanBase database stored table data through the TABLE API interface protocol. You can call this API as a JAR package in development. TABLE API supports authentication, add, delete, check, and append operations. For more information, see GitHub repo

  • Open sourced OBKV HBASE API: Based on the basic interface protocol provided by the TABLE API, we added the wide table model (WideColumn) for the data model, optimized the filter logic, supported KEY partitioning, RANGE partitioning, prefix partitioning, and TTL. Compatibility with HBase API client is coming soon.

  • Supported UOS platform operating system: OceanBase and obproxy are fully compatible with the mainstream X86 platform operating system. For more information, see OceanBase GitHub repo.

  • Enhanced administrator tool ob_admin: supported parsing and explicitly exporting block_file files, archive files, backup meta information, and data. The input command is ob_admin dumpsst/archive_tool/dump_backup. For more information, see ob_admin document.

  • Enhanced OceanBase Community Edition documentation. Documentation includes architecture design principles, performance tuning, troubleshooting, daily maintenance guidance,etc.

Bugfixes

  • Fixed __all_virtual_memory_info returs incomplete tenant information. This is caused by MEMOEY APPEND.
  • Fixed global index creation failure caused by killing observer. OceanBase triggers retry for this scenario to make sure a successful index creation.
  • Fixed the error triggered by writing long column values.
  • Fixed compiled error on CentOS 8.3 and 7.9 platform. For more information, see Issue 714 and Issue 715.

版本信息

名称 描述
发布时间 2021-12-30
版本号 V3.1.2
提交号 d4ace12 ...
Read more

v3.1.1_CE_BP1

21 Oct 12:10
Compare
Choose a tag to compare

RELEASE NOTE

Information Description
Version V3.1.1_CE_BP1
OBServer RPM version oceanbase-ce-3.1.1-4

About this version

This version fixed some bugs.

BUGFIX

  • Fixed start service failure when slog uses more than 80% disk space(#8c615943);
  • Fixed process hangs issue when de-duplicating unique indexes by using rowkey comparison(#6dd10291);

发布说明

项目 描述
版本号 V3.1.1_CE_BP1
OBServer RPM 版本号 oceanbase-ce-3.1.1-4

发版目的

本次发版主要是BUG修复。

BUG 修复

  • 修复slog所在的磁盘使用超过80%可能无法启动的问题( #8c615943);
  • 修复多个唯一索引去重使用rowkey比较时可能会线程hung的问题( #6dd10291);

v3.1.1_CE

12 Oct 15:32
Compare
Choose a tag to compare

RELEASE NOTE

Information Description
Version V3.1.1_CE
OBServer RPM version oceanbase-ce-3.1.1-1

About this version

In V3.1.1, we have strengthened OceanBase in these fields: kernel compatibility, tools, interfaces, backup and recovery, open-source OS, usability. We will continue to enhance the open-source productization capabilities. Core enhancements and improvements are as follows.

  1. MySQL compatibility: Supported MySQL5.7 driver protocol, Common Table Expression (CTE), several compatible functions. And supported migrating data from MySQL OceanBase Database directly.
  2. High availability: Supported for physical backup and recovery, cluster-level backup, and tenant-level recovery. You can back up production data at high speed and flexibly select recovery methods according to scenarios and needs.
  3. Usability: Released administrator tool ob_admin and error code parsing tool ob_error to provide more convenient and flexible problem analysis and processing capabilities. OBD supported deployment based on system resources and multiple Benchmark testing frameworks.
  4. Interface: Released TABLE API interface, supported direct KV access, high-performance storage access. Released REDO log interface CDC, you can connect your data with third-party data easily to do data conversion, extraction, and framework synchronization.
  5. Tools: Supported Prometheus, production system operation, and maintenance monitoring. Supported Dbeaver, developer client tools, DataX, Canal, Dataworks data development governance framework, MySQL, and OceanBase data migration. Released small-size Docker. Supported almost all major Linux distributions and installation and deployment for 8+ distributions of OS and 12+ versions.

New features

  • Supported physical backup and recovery. OceanBase Database supports physical backup for clusters. Physical backup has sstable and memtable. OceanBase Database supports recovery for tenants. To recover data, you must create a new tenant.
  • Supported MySQL 5.7 driver protocol.
  • Supported Common Table Expressions (CTE). A CTE is a named temporary result set that exists within the scope of a single statement and that can be referred to later within that statement, possibly multiple times. OceanBase Database syntax is compatible with MySQL 8.0. OceanBase Database supports recursive CTE and non-recursive CTE. For information, see PR 314.
  • Supported system function CRC32(). You can calculate the cyclic redundancy check value of a given string. For example, SELECT CRC32("abc");. For information, see PR 152.
  • Supported system function CONVERT_TZ(). This function converts a datetime value dt from the time zone given by from_tz to the time zone given by to_tz and returns the resulting value. For example,SELECT CONVERT_TZ('2021-01-01 12:00:00','+00:00','+08:00');. For information, see PR 276.
  • Supported INET_ATON(), INET_NTOA(), INET6_ATON(), INET6_NTOA(), IS_IPV4(), IS_IPV6(), IS_IPV4_MAPPED(), and IS_IPV6_MAPPED(). For information, see PR 198.
  • Supported the maximum connection setting for tenants/users. Use the system variable MAX_CONNECTIONS to set the maximum connection for tenants. Use the system variable MAX_USER_CONNECTIONS to set the maximum connection for users. When you create a user, use MAX_USER_CONNECTIONS to set the maximum concurrent connection for a specified user. MAX_CONNECTIONS_PER_HOUR specifies the maximum connection per hour for a user.

Tools

  • Released Change Data Capture (CDC). CDC is an open-source interface for OceanBase Database. It gives external access to the transaction logs. As a part of the data link, CDC parses, extracts, and assembles the transaction logs. It gives data for downstream data replication. For example, together with Canal, CDC supports incremental data migration.
  • Released open-source interface TABLE API. OceanBase database supports access using the NoSQL interface. TABLE API interface is an operational interface for table model and KV model data. It defines a common set of interaction protocols between the client and the database server. The row operation interface supports execute() for single-row operations and batch_execute() for multi-row batch operations. TABLE API supports retrieve/get, insert_or_update/put, delete, insert, update, replace, increment, and append operations.
  • Supported data replication tools Canal and DataX. You can replicate data from MySQL to OceanBase Database. You can use DataX to do full data migration to OceanBase Database.
  • OBD supported auto test. We integrated mysql_test, TPCH, and Sysbench test frames to OBD. For more information, see OBD test commands.
  • OBD supported auto OceanBase Database configuration based on your system resource. Use obd cluster autodeploy to auto deploy OceanBase Database with your maximum available resource. Use obd cluster tenant create/drop to create or drop a tenant. For more information, see OBD cluster tenant create.
  • Supports deploying OceanBase Database by using Docker. For more information, see OceanBase Docker Hub.
  • Supported DBeaver client. For more information, see PR 13596.
  • Supported Prometheus to monitor clusters for the community version. For example, you can monitor your resource (CPU, memory, IO, and net), your system pressure (SQL latency, live session, and cache hit ratio), and cluster usage limits (NTP).
  • Supported multiple x86 operation systems. For more information, see Compatibility list.
  • Released error code tool ob_error. By using ob_error, you can locate the help information based on the error code returned by OceanBase Database. For more information, see ob_error.
  • Released admin tool ob_admin. ob_admin supports parsing transaction logs and transforming transaction ID. The output format is ob_admin clog_tool/usec_tools <args>. For more information, seeclog_tool.

Compatibility changes

Parameter name Original default value Modification type New default value Description
minor_freeze_times 5 Modification 100 Avoid triggering frequent merges
freeze_trigger_percentage 70 Modification 30 Reduce the risk of excessive cluster memory consumption. Decreasing this value dumps earlier to release memory, but dumping becomes more frequent.
enable_merge_by_turn TRUE Modification FALSE By default, we recommend that you merge multiple zones at the same time. Merging by turn needs different zones to avoid response time increase during merges.
trace_log_slow_query_watermark 100ms Modification 1s The original default value 100ms is not reasonable. The performance decreases in high pressure.
clog_sync_time_warn_threshold 100ms Modification 1s The original default value 100ms is not reasonable. The performance decreases in high pressure because too many log files are produced.
enable_one_phase_commit TRUE Modification FALSE Deprecated in the new version.
enable_pg FALSE Deletion -- Deprecated in the new version.
_enable_split_partition FALSE Deletion -- Deprecated in the new version.

Bug fixes

  • Fixed the problem of using the aggregation function and the same alias. When you use an aggregation function for a string, and you set the result alias the same as the function name, the aggregation function throws an error. For more information, see Issue 173.
  • Fixed the problem of timediff precision. When your data has more than 2 digits, the calculation result is NULL. For more information, see Issue 298.

发布说明

项目 描述
版本号 V3.1.1_CE
OBServer RPM 版本号 oceanbase-ce-3.1.1-1

版本新特性

本次迭代版本(v3.1.1),OceanBase 全面提升内核兼容、工具生态、接口开放、备份恢复、开源 OS 支持和易用性能力,持续增强开源产品化应用能力。您可以获得以下关键特性:

  • 支持 MySQL 5.7 驱动协议,支持 5.7 新增的会话变量。可以推高 OceanBase 的 MySQL 兼容版本,避免企业内部安全审计问题。
  • 新增 MySQL 8.0 的通用表表达式(Common Table Expressions),丰富了 SQL 的能力,满足复杂业务查询需求实现。
  • 新增校验函数(CRC32()),完善 MySQL 数据迁移到 OceanBase 的数据校验环节。
  • 新增物理备份和恢复功能,支持近实时的数据备份和恢复到历史任意时间点功能,提升社区版的容灾能力。
  • 新增 TABLE API 接口,支持 KV 接口读写数据,提升高性能存储访问能力。
  • 新增 REDO 日志接口 CDC 能力,方便用户抽取 OceanBase 增量数据和跟第三方数据同步产品对接,解决了数据实时流出 OceanBase 难题。
  • 支持对接 Prometheus ,提升性能监控和诊断能力。
  • 新增管理员工具 ob_admin 和 ERROR CODE 解释工具 ob_error,提升问题排查分析和故障应急处理能力。
  • OBD 新增命令参数,支持自动配置相关参数;新增租户管理命令;新增常用数据库性能测试框架,方便初次使用 OceanBase 。

##...

Read more

v3.1.0_CE_BP2

10 Aug 13:57
Compare
Choose a tag to compare

RELEASE NOTE

Fixed:

  • Fixed the COM_STMT_SEND_LONGDATA error and crash when Golang calls ps.
  • Fixed an issue of accessing arrays outside the bounds of numeric objects.

Feature enhancement:

  • Improved location refresh mechanism to reduce the response time to failures.
  • Set _ob_enable_prepared_statement to false by default.
  • Optimized the frequency of writing checkpoint logs for cold partitions.
  • Supported PI() function in MySQL tenant.
  • Supported transaction_read_only parameter configuration in MySQL tenant.
  • Improved the performance for the 'union all' operator.

发布说明

问题修复:

  • 修复Golang 驱动在使用ps调用时遇到的COM_STMT_SEND_LONGDATA错误和程序崩溃问题。
  • 修复访问数字对象的边界外的数组问题。

特性更新:

  • 改善location 刷新机制,降低由于故障导致的交易响应时间变长。
  • 设置 _ob_enable_prepared_statement 默认值为false。
  • 优化冷分区写checkpoint日志的频率。
  • mysql 租户支持PI()函数。
  • mysql 租户支持 transaction_read_only 参数配置。
  • union all算子性能提升。

v3.1.0_CE_BP1

28 Jun 02:11
Compare
Choose a tag to compare

Fix:

  • Fixed OBserver init io error(#84).
  • Fixed plan cache memory leak.
  • Fixed compilation and spelling error.

Feature enhancement:

  • Supported Debian and SUSE based.