v3.13.0
Summary
This release includes a lot of enhancements, improvements, bug fixes, and vulnerability fixes.
Community edition
Enhancements
- Added dynamic arbitrary filtering for non-JDBC databases. (#1682)
- Added the Insert, Upsert, and Update operations to the transactional API. (#1697)
- Added YugabyteDB adapter as one of JDBC storages (#1710)
- Added Group Commit feature for Coordinator Table (#1728)
- Allowed directly executing CRUD operations with transaction managers. (#1755)
- Added support for arbitrary filtering for partition scan and index scan. (#1763)
- Added a single CRUD operation transaction manager. This transaction manager implementation does not allow beginning a transaction by calling
begin()
/start()
. It only allows directly executing CRUD operations from the transaction manager. (#1793) - Added support for arbitrary filtering for get operations. (#1834)
- Added a new Admin API
admin.getNamespacesNames()
to list the user namespaces. Though, this API won't return a namespace that does not contain a table. From ScalarDB 4.0, we plan to improve the design to suppress this limitation. (#2002)
Improvements
- Removed the hard-coded collation for MySQL and SQL Server in the JDBC adapter. As a result, the collation configured in the underlying database will be used when creating tables. (#1518)
- Added error codes to the error messages of Schema Loader. (#1564)
- Performance improvement of the group commit by using priority queue in the background worker. (#1641)
- Refactored scan with filtering. (#1715)
- Avoided creating an internal unique index as much as possible to reduce resource consumption and improve performance. (#1723)
- Changed the hard-coded password for the Oracle user to a more secure one in the JDBC adapter. (#1765)
- Update base image of container image. This update fixes an OOM issue on a Kubernetes with cgroup v2 environment. In the previous versions, if you use a Kubernetes cluster with cgroup v2, you might face an OOM-killed issue. (#1826)
- Added capability to specify global properties for all storages in multi-storage. (#1486)
- In MySQL, ScalarDB
FLOAT
type is changed fromDOUBLE
toREAL
(single-precision floating-point value) (#2000)
Bug fixes
- Upgraded the base image to fix security issues. CVE-2023-47038 (#1522 #1521)
- Upgraded the PostgresSQL lib to fix security issues. CVE-2024-1597 (#1547)
- Fixed a bug where
NullPointerException
occurs during theEXTRA_READ
validation when scanning records in a transaction, but some of them are deleted by other transactions. (#1624) - Fixed a bug where lazy recovery was not executed for the implicit pre-read of put and delete operations. (#1681)
- Fixed a bug where users could see inconsistent results when scanning records by an index key after putting the related records in Consensus Commit transactions. (#1727)
- Upgraded
grpc_health_probe
to fix security issues. CVE-2024-24790, CVE-2023-45283, and CVE-2023-45288 (#1980) - Fixed snapshot management issues. (#1976)
- Fix a bug of the import-table feature that it could access tables in other namespace that have the same table name when using MySQL storage. (#2001)
Enterprise edition
Enhancements
ScalarDB Cluster
- Added support for the insert mode of the Put operation introduced #1679 in ScalarDB Cluster.
- Added support for insert, upsert, and update APIs introduced in #1697 in ScalarDB Cluster.
- Added support executing a CRUD operations in a one-shot transaction.
- Added support for arbitrary filtering for partition scan and index scan introduced in #1763 to ScalarDB Cluster.
- Added support for transaction managers other than Consensus Commit to ScalarDB Cluster.
- Added support for the single CRUD operation transaction manager introduced in #1793 in ScalarDB Cluster.
- Added support for arbitrary filtering for get operations introduced in #1834 to ScalarDB Cluster.
- Added support for
DistributedTransactionAdmin.getNamespaceNames()
ScalarDB SQL
- Added support for the single CRUD operation transaction manager introduced in #1793 to ScalarDB SQL.
- With this update, users now have several ways to access ScalarDB-managed namespaces in ScalarDB SQL.
Improvements
ScalarDB Cluster
- Added error codes to the error messages of the authentication and authorization module.
- Added error codes to the error messages.
- Added TLS support for the Prometheus exporter. With this change, when enabling TLS (setting
scalar.db.cluster.tls.enabled
totrue
) in ScalarDB cluster nodes, the Prometheus exporter also starts with TLS (HTTPS). - Update base image of container image. This update fixes an OOM issue on a Kubernetes with cgroup v2 environment. In the previous versions, if you use a Kubernetes cluster with cgroup v2, you might face an OOM-killed issue.
ScalarDB GraphQL
- Added error codes to the error messages.
- Update base image of container image. This update fixes an OOM issue on a Kubernetes with cgroup v2 environment. In the previous versions, if you use a Kubernetes cluster with cgroup v2, you might face an OOM-killed issue.
ScalarDB SQL
- Added error codes to the error messages.
- Changed the packages for
ConditionSetBuilder
andAndConditionSet
. - Allowed using the
EXISTS
keyword for theCREATE/DROP COORDINATOR TABLES
statements. - Update base image of container image. This update fixes an OOM issue on a Kubernetes with cgroup v2 environment. In the previous versions, if you use a Kubernetes cluster with cgroup v2, you might face an OOM-killed issue.
- Improved performance of selection queries with filtering by exploiting partition and index scans.
Bug fixes
ScalarDB Cluster
- Upgraded the base image to fix security issues. CVE-2023-47038
- Upgraded the Kubernetes Client Java lib to fix security issues: CVE-2024-25710 and CVE-2024-26308.
- Upgraded
grpc_health_probe
to fix security issues. CVE-2024-24790, CVE-2023-45283, and CVE-2023-45288 - Fixed a bug where incorrect results are returned when executing SELECT queries with the same column names.
ScalarDB GraphQL
- Upgraded the base image to fix security issues. CVE-2023-47038
ScalarDB SQL
- Upgraded the base image to fix security issues. CVE-2023-47038
- Fixes a bug that Spring Data JDBC for ScalarDB doesn't work with Spring Boot 3
- Fixed a bug where incorrect results are returned when executing SELECT queries with the same column names.
- Upgraded
grpc_health_probe
to fix security issues. CVE-2024-24790, CVE-2023-45283, and CVE-2023-45288