What's new in the v2.4 release series

Included here are the release notes for all releases in the v2.4 release series. Content will be added as new notable features and changes are available in the patch releases of the v2.4 release series.

Use v2.4.4.0 or later

YugabyteDB version 2.4.4.0 contains an important fix for a bug in a downstream dependency (the gperftools package). This tcmalloc memory allocation bug could lead to process crashes. If you're using a version higher than 2.4.0.0, please upgrade as soon as possible.

Refer to issue 8531 for details.

This bug does not affect version 2.4.0.0.

v2.4.8.0 - November 23, 2021

Build: 2.4.8.0-b16

Downloads

Docker

docker pull yugabytedb/yugabyte:2.4.8.0-b16

Improvements

Database

  • [8251] Add Transaction Cleanup to CREATE INDEX
  • [8580] [9489] [YSQL] Inherit default PGSQL proxy bind address from RPC bind address

Yugabyte Platform

  • [PLAT-26] [PLAT-1673] [9612] Add logs purge threshold option to zip_purge_yb_logs.sh
  • [PLAT-1662] Root cert rotation support through UI for both self-signed and custom certs

Bug Fixes

Database

  • [1252] Do not link with system libpq
  • [5920] Fix bootstrapping with preallocated log segment
  • [10315] [DocDB] Add null check to MasterServiceImpl::GetTabletLocations

Yugabyte Platform

  • [PLAT-1724] Full move fails midway if system tablet takes more than 2 mins to bootstrap
  • [PLAT-2315] Fix backup failures after root cert rotation
  • [UI] NFS config failed in 2.4

v2.4.7.0 - September 14, 2021

Build: 2.4.7.0-b7

Downloads

Docker

docker pull yugabytedb/yugabyte:2.4.7.0-b7

Improvements

Database

  • [5026] [9001] [YCQL] Run operations within a transaction block in serial
  • [7719] [DocDB] Introduce aggregation function for metrics
  • [9583] [YSQL] log failed DocDB requests on client side

Yugabyte Platform

N/A

Bug Fixes

Database

  • [8114] [YSQL] [Backup] Partial index syntax error in the ysql_dump output
  • [9032] [YCQL] Honour token() conditions for all partition keys from IN clause

Yugabyte Platform

  • [1525] [Platform] New Universe creation gets public IP assigned even with flag = false

v2.4.6.0 - August 10, 2021

Downloads

Docker

docker pull yugabytedb/yugabyte:2.4.6.0-b10

Improvements

Database

  • [6696] Small master perf tweaks
  • [8002] docdb: Increase thresholds for master long lock warnings

Yugabyte Platform

  • [8789] Add support for certificate chaining in platform/yb-client.
  • [9103] Platform: Update "preflight_checks.sh" from ping to tcp check.

Bug Fixes

Database

  • [8294] Fix missing conflict when creating row using multiple inserts
  • [8592] Check capability before sending graceful cleanup
  • [9118] [YCQL] Fixing ALTER TABLE which resets table properties like is_transactional_.

Yugabyte Platform

  • [7627] Platform: Revert [7475] Use more recent centos-7 base image for GCP universe VMs.
  • [8426] Platform: Alert spam for message "Clock Skew Alert Resolved"

v2.4.5.0 - June 21, 2021

Downloads

Docker

docker pull yugabytedb/yugabyte:2.4.5.0-b20

Improvements

Database

N/A

Yugabyte Platform

  • [7706] Allow editing of backup config credentials. (#8535)

Bug fixes

Database

  • [4437] [8731] [DocDB] disabled bloom filters for master tablet and fixed DocDbAwareV2FilterPolicy compatibility for range-partitioned co-located tables
  • [6096] [YSQL] Fix crash during bootstrap when replaying WAL of deleted colocated table
  • [6482] Fix timeout handling when getting safe time in a RF1 cluster
  • [7641] [8834] [YCQL] Remove incorrect CHECK condition added in D10931 (in 2.4.2.0 release)
  • [8204] [Ybase] GetLoadMoveCompletionPercent returns an incorrect 100% if tservers haven't heartbeated their tablet reports
  • [8390] Fix NPE Handling for indexed_table_id
  • [8591] [DocDB] Add protection against missing UserFrontiers in older SST files during intents cleanup

Yugabyte Platform

  • [6945] Add limit to customer task API. (#8700)
  • [7859] Fix '< 1 min' uptime shown intermittently
  • [8503] Fix Add instance modal form to allow for adding instances in isolated region case.
  • [8345] Remove hard coded cert filepath, and add Python module to use the system temporary directory
  • [8611] Enable edit backup configuration for the active tab only. (#8674)
  • [8620] Reset the values on cancel. (#8627)
  • [8809] Edit Configuration button was only working intermittently. (#8975)
  • [8921] Allow ReadOnly and BackupAdmin roles to change their password.

v2.4.4.0 - May 20, 2021

Downloads

Docker

docker pull yugabytedb/yugabyte:2.4.4.0-b7

Improvements

Database

  • [7651] YSQL: Always listen on UNIX domain socket
  • [7873] [DocDB] - Initialize block cache for master/sys_catalog
  • [8037] [DocDB] - Refactor memory management for tablets into a separate class

Yugabyte Platform

  • [8302] Platform: Scrape platform prometheus metrics in replicated

Bug fixes

Database

  • [8388] ysql: prevent temp indexes from using lsm
  • [8496] Downgrade gperftools to 2.7

Yugabyte Platform

N/A

v2.4.3.0 - May 12, 2021

Downloads

Docker

docker pull yugabytedb/yugabyte:2.4.3.0-b6

Improvements

Database

  • [8052] Add ability to configure cipher list

Yugabyte Platform

  • [1342] Fixing the error message when the get host info call to gcp fails

  • [8165] Yugabyte Platform (YugaWare) creates zombie ssh process

Bug fixes

  • [8176] GCP universes don't have correct nproc system settings.

Database

  • [8150] [8196] Fix preceding op id in case of empty ops sent to the follower

  • [8348] Correctly handling a failure to create a priority thread pool worker thread

Yugabyte Platform

  • [6758] Unable to reuse On-premise instance incase previouse universe failed / deleted (#8263)

v2.4.2.0 - May 3, 2021

Downloads

Docker

docker pull yugabytedb/yugabyte:2.4.2.0-b45

Improvements

Database

  • [5647] docdb: LB should not move tablets right after splitting
  • [6241] YSQL: Make row key share lock less restrictive
  • [6305] Adaptive Heartbeat Reporting
  • [6445] docdb: Master should rebuild YCQL system.partitions on a background thread
  • [7079] [7153] YSQL: Improve configuration and defaults for client to server encryption
  • [7355] ysql: check backfill bad connection status
  • [7455] [YCQL] Update index from transaction with cross-key statements.
  • [7641] YCQL: Fix checks in index update path that determine full row removal.
  • [7705] ysql: prioritize internal HBA config
  • [7813] [YSQL] YSQL dump should always include HASH/ASC/DESC modifier for indexes/pkey.

Yugabyte Platform

  • [6668] Support platform backup/restore on Kubernetes

Bug fixes

Database

  • [5383] Fix conflict resolution while adding read intents
  • [6747] [6902] [7109] [7284] YCQL system.partition bug fixes
  • [6960] docdb - Register ScopedRWOperation when accessing doc_db data in StillHasParentDataAfterSplit
  • [7105] Explicitly clear the global PgMemctx map in YBCDestroyPgGate
  • [7145] Fix wrong propagated safe time
  • [7397] Tablet splitting: Crash during generating TSHeartbeat report after split
  • [7835] Don't crash when trying to append ValueType::kTombstone to a key

Yugabyte Platform

  • [1342] [Platform] Fixing the error message when the get host info call to cloud providers fails
  • [6698] [7262] Platform: Cascade delete alert and alert_definition
  • [7054] [Platform] Add conditional checks for hiding specific platform elements in non-platform mode.
  • [7268] [Platform] Use the correct SSH user for on-prem node preflight checks
  • [7385] [Platform] Missing package for s3cmd dependency for airgapped GCP VMs
  • [7390] [Platform] Preflight checks should handle sudo passwords when given
  • [7402] [Platform] parsing of df output is fragile and may fail in case of "safe" error in df
  • [7408] [Platform] Insufficient user feedback in platform for Task Retry
  • [7416] [Platform] Changed default port of On-Prem provider to 22 (#7599)
  • [7475] [Platform] Use more recent CentOS-7 base image for GCP universe VMs
  • [7597] [Platform] Add python modules to PYTHONPATH in non-replicated installations
  • [7656] [Platform] Use the correct SSH user + port for onprem workflow.
  • [7698] [Platform] Custom SMTP Configuration API returns unmasked SMTP password
  • [7703] [Platform] Can't send email for custom SMTP settings without authentication (empty username)
  • [7704] [Platform] Backup to S3 fails using Platform instance's IAM role
  • [7769] Prevent adding on-prem node instance with duplicate IP
  • [7771] [Platform] A lot of exceptions in logs "Error querying for alerts..."
  • [7780] [Platform] Make backup deletion independent of schedule
  • [7810] [Platform] Update SMTP configuration for health check emails
  • [7909] [Platform] Fix issue with signature could not be verified for google-cloud-sdk for GCP VMs
  • [7918] [Platform] Add US-West2 GCP metadata to Platform
  • [7988] [Platform] Backup deletion script shouldn't cause retries

v2.4.1.1 - March 30, 2021

Downloads

Docker

docker pull yugabytedb/yugabyte:2.4.1.1-b4

Bug Fixes

Database

  • [7145] Fix wrong propagated safe time

Yugabyte Platform

  • [7385] Platform: Missing package for s3cmd dependency for airgapped GCP VMs

v2.4.1 - Feb 10, 2021

Downloads

Docker

docker pull yugabytedb/yugabyte:2.4.1.0-b25

Improvements

Yugabyte Platform

  • When creating/restoring backups, use the local UNIX socket to connect to YSQL instead of the hostname if authentication is enabled [5571]
  • On universe creation, platform checks that clocks are synchronized [6017]
  • Health Check generates alerts if it isn't running [6581]
  • Manual provisioning now runs the same preflight checks as regular provisioning [6819]
  • Retrying a failed task now provides visual feedback [6820]
  • Removed the "Transactions" plot line from YSQL Ops and Latency graphs [6839]
  • You can now specify a minimum TLS version for Platform [6893], [7140]
  • Health checks now default to TLS 1.2 [7196]

Database

  • The YB-TServer metrics output (for example, on localhost) now shows the total affected rows for each operation. [4600]
  • YSQL: Backup for colocated databases [4874]
  • Optimizations to the YSQL layer to apply empty deletes only when required [5686]
    • Backup: Fix restore of colocated table with table_oid already set [6678]
  • Metrics thread now start after the first replication stream is created [5251]
  • The YB-TServer metrics output (for example, on localhost) now shows transaction BEGIN, COMMIT, and ROLLBACK statements. [6486]
  • Restore now preserves the exact partitioning of the source tablets [6628]
  • Enabled a sanity check to ensure that the tablet lookup result matches the partition key [7016]

Bug Fixes

Yugabyte Platform

  • Release instance was not an option for a node if an install failed because of SSH access [5942]
  • Backup-related tasks (schedules, restores, deletes) failed when the storage configuration was deleted [6680]
  • VPC cross-linking failed during creation of an AWS provider [6748]
  • Fixes to YSQL backups with node-to-node TLS encryption enabled [6965]
    • Add certs flags to ysql_dump when backing up a node-to-node TLS-enabled universe
  • Corrected an error when backing up multiple YSQL namespaces in a universe that is encrypted at rest [7114]
  • Fixed a syntax error in replicated.yml [7180]
  • Fixed an issue preventing health checks from using an appropriate TLS version [7196]

Database

  • YSQL: Fix calculation for transaction counts in YSQL metrics. [4599]
  • ybase: a blacklisted TS' initial load was not replicated during master failover [6397]
  • The CREATE INDEX statement generated by ysql_dump now uses SPLIT INTO syntax [6537]
  • YCQL: Fixed a bug with an index update on a list after an overwrite [6735]
  • Fixed a bug in YSQL for online index backfill capabilities, to ensure deletes to an index are persisted during backfill [6811]
  • YCQL: Fixed various issues for literals of collection datatypes [6829], [6879]
  • The permissions map is now rebuilt after all ALTER ROLE operations [7008]
  • Fixes to Async Replication 2DC capabilities, including a bug fix for a race condition on consumer with smaller batch sizes [7040]

v2.4.0 - Jan 22, 2021

Downloads

Docker

docker pull yugabytedb/yugabyte:2.4.0.0-b60

New Features

Yugabyte Platform

  • Data encryption in-transit enhancements:

    • Support for bringing your own CA certificates for an on-premise cloud provider (5729)
    • Support for rotating custom CA certificates (5727)
    • Displaying the certificate name in the YB Platform Universe editor
    • Moving of the Certificates page to Cloud Config > Security > Encryption in Transit
  • Moving of TLS In-Transit Certificates to Cloud > Security Config

  • Support for Rolling restart of a universe (6323)

  • Support for VMware Tanzu as a new cloud provider (6633)

  • Alerts for backup tasks (5556)

Database

  • Introducing support for audit logging in YCQL and YSQL API (1331,5887,6199)
  • Ability to log slow running queries in YSQL (4817)
  • Introducing support for LDAP integration in YSQL API (6088)

Improvements

Yugabyte Platform

  • Support for Transactional tables and Cross Cluster Async Replication topology (5779)

  • Support for very large transactions and stability improvements (1923)

  • Displaying an entire query in the detailed view of the live queries tab (6412)

  • Not returning Hashes and Tokens in API responses (6388)

  • Authentication of proxy requests against a valid platform session (6544)

  • Disabling of the unused API endpoint run_query (6383)

  • Improved error handling for user-created concurrent backup tasks (5888)

  • Performance improvements for live queries (6289)

  • Pre-flight checks for Create Universe, Edit Universe, and Add Node operations for an on-premise provider (6016)

  • Disabling of the unused API endpoint run_in_shell (6384)

  • Disabling of the unused API endpoint create_db_credentials (6385)

  • Input validation for Kubernetes configuration path (6389)

  • Input validation for the access_keys API endpoint (6386)

  • Input path validation for backup target paths (6382)

  • Timeout support for busybox (6652)

  • Enabling of CORS policy by default (6390)

  • Deleting backups for TLS-enabled universes (5980)

Database

  • DDL consistency (4710,3979,4360)

  • DDL performance improvements (5177,3503)

  • ALTER versions for ORM support (4424)

  • Online index backfill GA (2301,4899,5031)

  • Table partitioning (1126,5387)

  • SQL support improvements:

    • Support for the FROM clause in UPDATE (738)
    • Support for the USING clause in DELETE (738)
    • SQL/JSON path language [PG12] (5408)
  • Performance improvements:

    • Sequence cache min-value flag (6041,5869)
    • Foreign-key batching (2951)
  • YSQL usability improvements:

    • COPY FROM rows-per-txn option (2855,6380)
    • COPY / ysql_dump OOM (5205,5453,5603)
    • Large DML OOM (5374)
    • Updating pkey values (659)
    • Restarting write-txns on conflict (4291)
  • YSQL statement execution statistics (5478)

  • Improved raft leader stepdown operations, by waiting for the target follower to catch up. This reduces the unavailability window during cluster operations. (5570)

  • Improved performance during cluster overload:

    • Improved throttling for user-level YCQL RPC (4973)
    • Lower YCQL live RPC memory usage (5057)
    • Improved throttling for internal master level RPCs (5434)
  • Improved performance for YCQL and many connections:

    • Cache for generic YCQL system queries (5043)
    • Cache for auth information for YCQL (6010)
    • Speedup system.partitions queries (6394)
  • Improved DNS handling:

    • Process-wide cache for DNS queries (5201)
    • Avoid duplicate DNS requests during YCQL system.partitions queries (5225)
  • Improved master-level load balancer (LB) operations:

    • Throttle tablet moves per table (4053)
    • New global optimization for tablet balancing -- this also allows the LB to work with colocation (3079)
    • New global optimization for leader balancing (5021)
    • Delay LB on master leader failover (5221)
    • Register temporary TS on master failover to prevent invalid LB operations (4691)
    • Configurable option to disallow TLS v1.0 and v1.1 protocols (6865)
  • Skip loading deleted table metadata into master memory (5122)

Bug Fixes

Yugabyte Platform

  • Edit Universe did not display the TLS certificate used
  • Multi-zone K8s universe creation failed (5882)
  • Tasks page reported an incorrect status of a failed backup (6210)
  • K8s universe upgrade did not wait for each pod to update before moving to the next (6360)
  • Changing node count by AZ was doing a full move (5335)
  • Enabling Encryption-at-Rest without KMS configuration caused create Universe to fail silently (6228)
  • Missing SST size in the Nodes page of a universe with read replicas (6275)
  • Incorrect link in the Live queries dashboard node name (6458)
  • Failure to create a TLS-enabled universe with a custom home directory setting with on-premise provider (6602)
  • Database node health liveliness check was blocked indefinitely (6301)

Database

  • Critical fixes for transaction cleanup applicable to aborted transactions (observed frequently as servers reaching soft memory limit)

  • Main raft fixes:

    • Incorrect tracking of flushed op id in case of aborted operations (4150)
    • Various fixes and potential crashes on tablet bootstrap (5003,3759,4983,5215,5224)
    • Avoid running out of threads due to FailureDetector (5752)
  • Metrics reporting could be inconsistent due to regular and intent rocksdb using the same statistics object (5640)

  • Various issues with the rocksdb snapshot mechanism used for backup/restore (6170,4756,5337)

  • Fixes in the YCQL API:

    • Fix parser typo when scanning binary values (6827)
    • Omit where clause if there is no range column (6826)
    • Fix JSONB operator execution when applying to NULL objects (6766)
    • Fix range deletes to start and end at specified primary key bounds (6649)
  • Fixes in the YSQL API:

    • Fix crash for large DDL transaction (6430)
    • Fixed SIGSERV in YBPreloadRelCache (6317)
    • Fix backup-restore issues when source table was altered before (6009,6245,5958)
    • Fix backup-restore failure due to unexpected NULLABLE column attribute. (6886)
  • Retry on SSL_ERROR_WANT_WRITE (6266)

Known Issues

Yugabyte Platform

  • Azure IaaS orchestration (in beta status):

    • No pricing information (5624)
    • No support for regions with zero availability zones (AZs) (5628)

Database

  • Automatic Tablet Splitting:

    • While a tablet split is occurring, in-flight operations for both YCQL and YSQL APIs would currently receive errors. These would currently have to be retried at the application level currently. In the future, these will be transparently handled underneath the hood. The immediate impact for this would be that certain tools like TPCC or sysbench would fail while tablet splitting is happening.

Notes

New release versioning

Starting with v2.2, Yugabyte release versions follow a new release versioning convention. The preview release series, denoted by MAJOR.ODD, incrementally introduces new features and changes and is intended for development and testing only. Revision releases, denoted by MAJOR.ODD.REVISION versioning, can include new features and changes that might break backwards compatibility.

Upgrading from 1.3

Prior to v2.0, YSQL was still in beta. Upon release of v2.0, a backward-incompatible file format change was made for YSQL. For existing clusters running pre-2.0 release with YSQL enabled, you cannot upgrade to v2.0 or later. Instead, export your data from existing clusters and then import the data into a new cluster (v2.0 or later).