YSQL
- Add support for
SPLIT INTO
clause forCREATE INDEX
statement. #3047 - Fix aggregate functions pushdown for columns with default values added after table creation. #4376
- Resolve timeout frequently encountered whe batch-loading data in YSQL by using client-specified timeouts for RPC requests instead of hardcoded values. #4045
- Fix incorrect cross-component dependency in DocDB found in builds using
ninja
. #4474 - Fix operation buffering in stored procedures to handle transactions correctly. #4268
- [DocDB] Ensure that fast path (pushed down) single row writes honor higher priority transactions and get aborted or retired instead. #4316
- [DocDB] Split copy table operations into smaller chunks (using byte size instead of count) for CREATE DATABASE statement. #3743
- Correctly push down
IS NULL
condition to DocDB. #4499 - Avoid ASAN failures after a large data set is uploaded by rearranging files and test functionalities. #4488
- Fix memory leaks by using memory context to manage object alloc and free. #4490
- Fix multi-touch cache and improve caching logic for read and write operations. #4379
- Improve index cost estimates by considering index uniqueness, included columns (index scan vs. index only scan), scan direction, and partial indexes. Also, disable merge joins for unsupported cases. #4494 and #4496
- Add support for deferrable foreign key constraints. #3995
- Prevent dropping primary key constraint. #3163
- Push down SELECT (), for example, SELECT COUNT(1) , to DocDB. #4276
- Fix rare core dumps due to concurrency issues in metrics webserver during shutdown. #4092
YCQL
- Rename
cqlsh
toycqlsh
. #3935 - Update Cassandra Java driver version to
3.8.0-yb-4
and adds support forguava
26 or later. The latest release of the driver is available in the Yugabytecassandra-java-driver
repository. #3897 - YB-TServers should not crash when attempting to log in using YCQL authentication without a password. #4459
- Performance degradation in
CassandraSecondaryIndex
workload resolved. #4401 - Add
yb-admin import_snapshot
support for renaming a few tables (not all), but the specified name is equal to the old table name:yb-admin import_snapshot <meta-file> ks old_table_name
. #4280 - For DDL creation with Spring Data Cassandra, change the
Enum
value fromJSON
toJSONB
to allow schema creation to succeed programmatically involving JSON column types and update thecassandra-java-driver
to3.8.0-yb-5
. #4481 - Use the same timestamp for current time to compute multiple runtimes in output of
<tserver-ip>:13000/rpcz
. #4418 - Correctly push down
= NULL
condition to DocDB. #4499 - Reduce YCQL unprepared statement execution time by up to 98% (example: reduced time to insert a 5 MB string from 18 seconds to 0.25 seconds). #4397 and #3586
- Special thanks to @ouvai59 for your contribution!
YEDIS
- For
yugabyted
, do not startredis
server by default. Resolves port conflict during startup. #4057
System improvements
- New
yb-admin
commandget_load_balancer_state
to get the cluster load balancer state. #4509 - Avoid creating intent iterator when no transactions are running. #4500
- Increase default memory limit for
yb-master
for running in low-memory setups (<=4 GB
). #3742 - Improve RocksDB checkpoint directory cleanup if a tserver crashes or is restarted while performing a snapshot operation. #4352
- [DocDB] Use bloom filters for range-partitioned tables. The first primary key column is added to the bloom filter. #4437
- [DocDB] Fix snapshots bootstrap order bu altering the load for transaction-aware snapshots. #4470
- [DocDB] Add
yb-admin master_leader_stepdown
command. #4135 - [DocDB] Reduce impact on CPU and throughput during node failures. #4042
- [DocDB] Add
yb-ts-cli
commands,flush_all_tablets
andflush_tablet <tablet_id>
, to flush tablets. When used with rolling restarts, less time is spent applying WAL records to rocksdb. #2785- Special thanks to mirageyjd for your contribution.
- [DocDB] Fix deadlock during tablet splitting. #4312
- Introduced load balancing throttle on the total number of tablets being remote bootstrapped, across the cluster. #4053 and #4436
- [DocDB] Remove applied intent doc hybrid time during compaction. #4535
- [DocDB] Fixed BoundedRocksDbIterator::SeekToLast works incorrectly for 2nd post-split tablet. #4542
- [DocDB] Abort snapshot if table was deleted. #4610
- [DocDB] Backfill index without waiting indefinitely for pending transactions. #3471
- [Colocation] During load balancing operations, load balance each colocated tablet once. This fix removes unnecessary load balancing for every user table sharing that table and the parent table.
- Fix YB-Master hangs due to transaction status resolution. #4410
- Redirect the master UI to the master leader UI without failing when one master is down. #4442 and #3869
- Avoid race in
change_metadata_operation
. Use atomic<P*> to avoid race between
Finish()
andToString
from updating or accessing request. #3912 - Refactor
RaftGroupMetadata
to avoid keeping unnecessaryTableInfo
objects in memory. #4354 - Fix missing rows in unidirectional replication and fix race conditions with CDC and TransactionManager. #4257
- Change intent iterator creation logic. #4543
- Upgrade all Python scripts used to build and package the code to Python 3. #1442
Yugabyte Platform
- Fix failure when adding a node on a TLS-enabled universe. #4482
- Improve latency tracking by splitting overall operation metrics into individual rows for each API. #3825
- YCQL and YEDIS metrics include
ops
,avg latency
, andP99 latency
. - YSQL metrics include only
ops
andavg latency
.
- YCQL and YEDIS metrics include
- Add metrics for RPC queue sizes of services, including YB-Master, YB-TServer, YCQL, and YEDIS. #4294
- Add option to edit configuration flags without requiring server restart. #4433
- When configuration flags are deleted in the YugabyteDB Admin Console, remove the flags from
server.conf
file. #4341 - When creating GCP instances, only use host project when specifying network.
- When creating a cloud provider configuration, display provider-level (non-k8s) settings for SSH ports and enabling airgapped installations. #3615, #4243, and #4240.
- After removing a node and then adding a node, check for certificate and key files and create the files if needed. #4551
- Update to support Helm 3 deployments. Note: Helm 2 is no longer supported. For migrating existing Helm 2 universes to Helm 3, see Migrate from Helm 2 to Helm 3. #4416
- Change
QLTableRow
representation. #4427 - Fix CDC-related race conditions using
CDCServiceTxnTest.TestGetChangesForPendingTransaction
. #4544 - Revert validation on alerting email field to allow comma-separated emails in the form. #4639
- Add Custom SMTP Configuration section to Health & Alerting tab on customer profile page. #4443
- Fix Kubernetes pod container metrics not displaying in Metrics panel. #4652
- Fix Backups tab not rendering when there are no backups. #4661
Note:
Prior to version 2.0, YSQL was still in beta. As a result, the 2.0 release included a backward-incompatible file format change for YSQL. If you have an existing cluster running releases earlier than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0+. Export from your existing cluster and then import into a new cluster (v2.0 or later) to use existing data.