V4.5.0
Version information
- Release date: November 26, 2025
- Version: V4.5.0
- RPM version: oceanbase-4.5.0.0-100000172025112420
Version overview
OceanBase Database V4.5.0 is an agile iteration version designed for AI scenarios, featuring significant upgrades to its core AI capabilities. This version comprehensively optimizes IVF_FLAT and IVF_PQ indexes from four dimensions: construction, query, DML operations, and usability. It also introduces support for memory-based sparse vector indexes, delivering superior sparse vector retrieval performance. The hybrid search capabilities have been significantly enhanced, supporting multi-vector hybrid searches and allowing for the weighted fusion and re-ranking of query result sets. Additionally, leveraging its built-in embedding capabilities, the new version allows users to create semantic indexes based on text columns, simplifying the process of using vector indexes.
Furthermore, the new version supports the INTERVAL partitioning feature in Oracle-compatible mode, reducing the complexity of partition management. It also improves the performance and stability of the Index Skip Scan feature, which is now enabled by default.
Key features
Kernel enhancements
Index Skip Scan optimization
The new version enhances the performance and stability of the Index Skip Scan feature. Even if the execution plan mistakenly uses Index Skip Scan, the performance will not degrade significantly. Additionally, the Index Skip Scan feature is now enabled by default instead of being disabled by default. After the optimizer collects statistics, it can automatically generate an Index Skip Scan plan if the rules and cost conditions are met.
Support for Index Merge with JSON multi-valued indexes
By integrating JSON multi-valued indexes into the Index Merge framework, the new version allows for the merging of scan results from multiple indexes before accessing the table. This significantly reduces the number of table accesses, thereby improving the performance of filtering JSON columns with JSON multi-valued indexes using the member of, json_overlaps, and json_contains expressions.
Shared storage
The new version adds shared-storage-related parameters, including shared directories, private directories, upload, minor, major, and attach statistics.
Oracle compatibility
INTERVAL partitioning in Oracle-compatible mode
The new version implements the INTERVAL partitioning feature in Oracle-compatible mode. When new data exceeds the range of existing partitions, new partitions are automatically created, reducing the complexity of partition management.
AI feature enhancements
IVF vector index performance optimization
The new version comprehensively upgrades IVF/IVF_PQ indexes from four dimensions: construction, query, DML, and usability. In terms of construction, it optimizes index building time by parallelizing K-means and adapting the domain ID merge framework. For queries, it introduces an iterative filtering algorithm that intelligently selects pre/post filter strategies based on different filtering rates, ensuring result completeness while improving query performance. In DML, it optimizes incremental write efficiency through caching mechanisms. In terms of usability, it adds features such as index rebuild parameter modification, construction progress monitoring, and statement-level nprobes parameter dynamic configuration.
In-memory sparse vector index (experimental feature)
The new version supports in-memory sparse vector indexes. When sufficient resources are available, in-memory sparse vector indexes outperform disk-based ones, better meeting business needs for sparse vector retrieval. Users can create in-memory sparse vector indexes by specifying
lib=vsag, type=sindiwhen creating a sparse vector index. It also supports pruning rules to enhance query performance.Enhanced automatic partition rebuilding
Automatic partition rebuilding for vector indexes reduces memory usage. However, in scenarios with a large number of partitions and large data volumes per partition, the single-threaded model used for automatic partition rebuilding is inefficient. To better utilize cluster resources, the new version supports multi-threaded parallel construction for asynchronous indexes, with the number of threads specified by the
vector_index_optimization_concurrencyparameter.Enhanced hybrid search
The new version enhances the hybrid search feature, supporting hybrid searches with multiple vectors and scalar conditions. It also allows for weighted fusion and re-ranking of query results from multiple vectors.
Full-text index performance optimization
The new version further optimizes performance for single full-text index topK pushdown scenarios using adaptive BMM/BMW pruning algorithms.
AI_Prompt and similarity expressions
The new version introduces the
AI_Promptfunction, which upgrades static text prompts to reusable, parameterizable function templates. This supports prompt reuse and dynamic combination with data, enabling efficient prompt engineering. TheAI_Completeexpression allows calling text generation models to process data tasks using prompts, such as sentiment analysis and summarization. It also supports three expressions for calculating vector similarity:inner_product_similarity,cosine_similarity, andl2_similarity. A value closer to 1 indicates greater similarity between two vectors.Semantic index (experimental feature)
Semantic indexes simplify the process of using vector indexes by leveraging built-in embedding capabilities. This makes vector concepts transparent to users: users can directly write raw data to be stored, which is automatically embedded and indexed within OceanBase Database. During retrieval, users can directly use the raw data they want to query, which is automatically embedded and then queried against the vector index.
Performance improvements
Multi Get performance optimization
The new version optimizes Multi Get performance through the following measures:
Columnar storage scans support columnar projections.
The
filterclause utilizes skip index prefixes for optimization.keep orderscans supportblockscan.Optimizations such as real-time statistics collection at the storage layer.
These optimizations significantly improve table access performance, especially in scenarios with large data volumes. They also notably enhance the performance of wide table projections involving more than 80 columns, and improve scan performance in vectorized
nest loop joinscenarios.
Insert Up performance optimization
Under the premise of good data locality, where batch primary keys are relatively continuous, the new version merges multiple range point queries into a single range query, reducing the number of ranges and further improving table access performance. Additionally, the new version restructures the main process of the
Insert Upoperator, optimizes the conflict detection mechanism, and effectively enhances overall performance.
Compatibility changes
View changes
The following changes are introduced:
| View | Change type | Description |
|---|---|---|
| DBA_TABLES | New | In MySQL-compatible mode, the DBA_TABLES view is added. It displays ordinary tables, indexes, and external tables in the current tenant that are not in the recycle bin, and shows their attribute information, such as whether automatic partition splitting is supported. |
| DBA_OB_KV_TTL_TASKS | Add column | The scan_index column is added to record the indexes scanned by the TTL task. |
| DBA_OB_KV_TTL_TASK_HISTORY | Add column | The scan_index column is added to record the indexes scanned by the TTL task. |
| CDB_OB_KV_TTL_TASKS | Add column | The scan_index column is added to record the indexes scanned by the TTL task. |
| CDB_OB_KV_TTL_TASK_HISTORY | Add column | The scan_index column is added to record the indexes scanned by the TTL task. |
| DBA_OB_USERS | Add column | The PLUGIN column is added to record the name of the plugin used for password hash calculation. |
| CDB_OB_USERS | Add column | The PLUGIN column is added to record the name of the plugin used for password hash calculation. |
| [G]V$OB_SQL_AUDIT | Add column | The TX_TABLE_READ_CNT column and the OUTROW_LOB_CNT column are added to record the number of times the transaction status table is queried and the number of Outrow LOBs read during the query, respectively. |
| [G]V$OB_UNITS | Add column | The REPLICA_TYPE column is added to record the replica type. |
System variable changes
| System variable | Change type | Description |
|---|---|---|
| plsql_can_transform_sql_to_assign | Change default value | The default value is changed from False to True. |
Parameter changes
The following changes are introduced:
| Parameter | Change type | Description |
|---|---|---|
| default_compress_func | Change value range | The value range is expanded to include the zstd_1.5.7 option. |
| kv_transport_compress_func | Change value range | The value range is expanded to include the zstd_1.5.7 option. |
| log_transport_compress_func | Change value range | The value range is expanded to include the zstd_1.5.7 option. |
| log_storage_compress_func | Change value range | The value range is expanded to include the zstd_1.5.7 option. |
| default_micro_block_format_version | Change default value | The default value is changed from 1 to 2, indicating that the new Flat format is enabled by default. |
| default_skip_index_level | New | A tenant-level parameter that specifies the default value of skip_index_level when a tenant creates a table. |
| ddl_high_thread_score | New | A tenant-level parameter that controls the number of DAG threads for executing DDL KV merge operations. The default value is 0, indicating that the database-defined value is used. |
| ob_enable_utl_tcp | New | A cluster-level parameter that controls whether the UTL_TCP system package feature is enabled. |
| vector_index_optimization_concurrency | New | A tenant-level parameter that controls the number of concurrent threads for each vector index background optimization task. |
| model_request_timeout | New | A tenant-level parameter that controls the maximum HTTP timeout for each request to a large model. |
| model_max_retries | New | A tenant-level parameter that controls the number of retries after an error occurs when accessing a large model. |
Syntax changes
| Syntax | Change description |
|---|---|
| Added AI_PROMPT expression | The AI_PROMPT expression organizes the input prompt template and the data to be filled in as a JSON object. Syntax format: AI_PROMPT('<template>',
|
| Added AI_COMPLETE expression | The AI_COMPLETE expression calls a text generation model to complete tasks such as sentiment analysis and summarization based on the prompt. The prompt parameter allows input of the JSON type to adapt to the PROMPT_OBJECT generated by the AI_PROMPT expression. In this version, only the pure string form in the args field is supported. Syntax format: AI_COMPLETE(model_key, prompt [, model_parameters])
|
| Added syntax for creating semantic indexes, including creating an index with a table and creating an index after the table is created |
|
| Use the semantic_distance expression to query a semantic index | order by semantic_distance(column_name, 'query_text') [approximate|approx] limit n Use the query text query_text to perform a vector query on the semantic index of the column specified by column_name and obtain the top n most similar rows. |
| Use the semantic_vector_distance expression to query a hybrid vector index | order by semantic_vector_distance(column_name, 'query_vector') [approximate|approx] limit n Use the query vector query_vector to perform a vector query on the semantic index of the column specified by column_name and obtain the top n most similar rows. |
| Use the semantic_vector_distance expression to query a hybrid vector index | order by semantic_vector_distance(column_name, 'query_vector') limit n Use the query vector query_vector to query the semantic index of the column specified by column_name and obtain the top n closest rows as exact results. |
Recommended versions of components and tools
The following table lists the recommended versions of components and tools for OceanBase Database V4.5.0.
| Component | Version | Description |
|---|---|---|
| ODP |
|
We recommend that you use V4.3.1 (LTS). If you need to use new features that are not supported in V4.3.1 (LTS), use V4.3.5 BP1. |
| oblogservice | V1.1.0 | - |
| OCP | V4.4.0 | - |
| ODC | V4.4.0 | - |
| OBCDC | V4.5.0 | - |
| OMS | V4.3.0 BP3 | - |
| Binlog | V4.3.4 | - |
| OCCI | V1.0.4 | - |
| OBCI | V2.1.1 BP1 | - |
| ECOB | V1.2.1 | - |
| obclient | V2.2.11 | - |
| libobclient | V2.2.11.1 | - |
| OBJDBC | V2.4.16 | - |
| ODBC | V2.0.9.6 | - |
| obloader | V4.3.4.1 | - |
Upgrade notes
Non-shared storage mode
Smooth upgrades are supported from V4.4.0/V4.4.0 BP1/V4.4.1 to V4.5.0.
For environments without vector indexes, upgrades are supported from V4.3.0/V4.3.1/V4.3.2/V4.3.3/V4.3.4/V4.3.5/V4.3.5 BP1/V4.3.5 BP2 to V4.5.0. However, this applies only to POC and test environments, and there is a certain level of upgrade risk. If issues occur during the upgrade, the environment may need to be rebuilt.
For environments that use vector indexes, contact OceanBase technical support for an evaluation before upgrading from V4.3.0/V4.3.1/V4.3.2/V4.3.3/V4.3.4/V4.3.5/V4.3.5 BP1/V4.3.5 BP2 to V4.5.0.
Upgrades from V4.2.x or earlier to V4.5.0 are not supported.
Shared storage mode
Upgrades are supported from V4.4.0 BP1/V4.4.1/V4.4.1 hotfix1~3 to V4.5.0. Please note that upgrading a tenant with a single-replica deployment will result in service downtime.
Upgrades from V4.4.1 hotfix4 and V4.4.1 hotfix5 to V4.5.0 are not recommended.
Upgrades from V4.3.5 BP2 or V4.4.0 to V4.5.0 are not supported.
Before upgrading from V4.4.0 BP1 to V4.5.0, upgrade the corresponding logservice cluster to V1.1.0.
