Join us on YugabyteDB Community Slack
Star us on
Get Started
Slack
GitHub
Get Started
v2.13 (preview) v2.12 (stable) v2.8 (earlier version) v2.6 (earlier version) v2.4 (earlier version) Unsupported versions
  • YUGABYTEDB CORE
    • Quick start
      • 1. Install YugabyteDB
      • 2. Create a local cluster
      • 3. Explore distributed SQL
      • 4. Build an application
        • Java
        • Node.js
        • Go
        • Python
        • Ruby
        • C#
        • PHP
        • C++
        • C
        • Scala
        • Rust
    • Explore
      • SQL features
        • SQL Feature Support
        • PostgreSQL Compatibility
        • Foreign Data Wrappers
        • Schemas and Tables
        • Data Types
        • Data Manipulation
        • Queries and Joins
        • Expressions and Operators
        • Stored Procedures
        • Triggers
        • Advanced features
          • Cursors
          • Table Partitioning
          • Views
          • Savepoints
          • Collations
        • Going beyond SQL
          • Follower reads
          • Tablespaces
        • PostgreSQL extensions
      • Fault tolerance
      • Horizontal scalability
        • Scaling Transactions
        • Sharding Data
      • Transactions
        • Distributed Transactions
        • Isolation Levels
        • Explicit Locking
      • Indexes and Constraints
        • Primary keys
        • Foreign keys
        • Secondary indexes
        • Unique indexes
        • Partial indexes
        • Expression indexes
        • Covering indexes
        • GIN indexes
        • Other constraints
      • JSON support
      • Multi-region deployments
        • Sync replication (3+ regions)
        • Async Replication (2+ regions)
        • Row-Level Geo-Partitioning
        • Read replicas
      • Query tuning
        • Introduction
        • Get query statistics using pg_stat_statements
        • Viewing live queries with pg_stat_activity
        • Analyzing queries with EXPLAIN
        • Optimizing YSQL queries using pg_hint_plan
      • Cluster management
        • Point-in-time recovery
      • Change data capture (CDC)
        • Debezium connector
        • Java CDC console
      • Security
      • Observability
        • Prometheus Integration
        • Grafana Dashboard
    • Drivers and ORMs
      • Java
        • JDBC drivers
        • Hibernate ORM
        • Supported versions
      • Go
        • Go drivers
        • Go ORMs
        • Supported versions
      • C#
        • C# drivers
        • C# ORMs
        • Supported versions
      • NodeJS
        • NodeJS drivers
        • NodeJS ORMs
        • Supported Versions
      • Python
        • Python drivers
        • Python ORMs
        • Supported versions
      • Rust
        • Diesel ORM
    • Develop
      • Learn app development
        • 1. SQL vs NoSQL
        • 2. Data modeling
        • 3. Data types
        • 4. ACID transactions
        • 5. Aggregations
        • 6. Batch operations
        • 7. Date and time
        • 8. Strings and text
        • 9. TTL for data expiration
      • Real-world examples
        • E-Commerce app
        • IoT fleet management
      • Explore sample apps
      • Best practices
      • Cloud-native development
        • Codespaces
        • Gitpod
    • Migrate
      • Migration process overview
      • Migrate from PostgreSQL
        • Convert a PostgreSQL schema
        • Migrate a PostgreSQL application
        • Export PostgreSQL data
        • Prepare a cluster
        • Import PostgreSQL data
        • Verify Migration
    • Deploy
      • Deployment checklist
      • Manual deployment
        • 1. System configuration
        • 2. Install software
        • 3. Start YB-Masters
        • 4. Start YB-TServers
        • 5. Verify deployment
      • Kubernetes
        • Single-zone
          • Open Source
          • Amazon EKS
          • Google Kubernetes Engine
          • Azure Kubernetes Service
        • Multi-zone
          • Amazon EKS
          • Google Kubernetes Engine
        • Multi-cluster
          • Google Kubernetes Engine
        • Best practices
        • Connect Clients
      • Docker
      • Public clouds
        • Amazon Web Services
        • Google Cloud Platform
        • Microsoft Azure
      • Multi-DC deployments
        • Three+ data center (3DC)
        • Asynchronous Replication
        • Read replica clusters
    • Benchmark
      • TPC-C
      • sysbench
      • YCSB
      • Key-value workload
      • Large datasets
      • Scalability
        • Scaling queries
      • Resilience
        • Jepsen testing
      • Performance Troubleshooting
    • Secure
      • Security checklist
      • Enable authentication
        • Enable users
        • Configure client authentication
      • Authentication methods
        • Password authentication
        • LDAP authentication
        • Host-based authentication
        • Trust authentication
      • Role-based access control
        • Overview
        • Manage users and roles
        • Grant privileges
        • Row-level security
        • Column-level security
      • Encryption in transit
        • Create server certificates
        • Enable server-to-server encryption
        • Enable client-to-server encryption
        • Connect to clusters
        • TLS and authentication
      • Encryption at rest
      • Column-level encryption
      • Audit logging
        • Configure audit logging
        • Session-Level Audit Logging
        • Object-Level Audit Logging
      • Vulnerability disclosure policy
    • Manage
      • Backup and restore
        • Export and import data
        • Distributed snapshots
        • Point-in-time recovery
      • Migrate data
        • Bulk import
        • Bulk export
      • Change cluster configuration
      • Diagnostics reporting
      • Upgrade a deployment
      • Grow cluster
    • Troubleshoot
      • Troubleshooting
      • Cluster level issues
        • YCQL connection issues
        • YEDIS connection Issues
        • Recover tserver/master
        • Replace a failed YB-TServer
        • Replace a failed YB-Master
        • Manual remote bootstrap when a majority of peers fail
        • Recover YB-TServer from crash loop
      • Node level issues
        • Check servers
        • Inspect logs
        • System statistics
        • Disk failure
        • Common error messages
    • Contribute
      • Core database
        • Contribution checklist
        • Build the source
        • Configure a CLion project
        • Run the tests
        • Coding style
      • Documentation
        • Docs checklist
        • Docs layout
        • Build the docs
          • Editor setup
        • Edit the docs
          • Docs page structure
          • Syntax diagrams
        • Style guide
  • YUGABYTEDB ANYWHERE
    • Overview
      • Install
      • Configure
    • Install
      • Prerequisites
      • Prepare the environment
      • Install software
      • Prepare nodes
      • Uninstall software
    • Configure
      • Create admin user
      • Configure cloud providers
      • Configure backup target
      • Configure alerts
    • Create deployments
      • Multi-zone universe
      • Multi-region universe
      • Multi-cloud universe
      • Read replica cluster
      • Asynchronous replication
    • Manage deployments
      • Start and stop processes
      • Eliminate an unresponsive node
      • Recover a node
      • Enable high availability
      • Edit configuration flags
      • Edit a universe
      • Delete a universe
      • Configure instance tags
      • Upgrade YugabyteDB
      • Migrate to Helm 3
    • Back up universes
      • Configure backup storage
      • Back up universe data
      • Restore universe data
      • Schedule data backups
    • Security
      • Security checklist
      • Configure ports
      • LDAP authentication
      • Authorization
      • Create a KMS configuration
      • Enable encryption at rest
      • Enable encryption in transit
      • Network security
    • Alerts and monitoring
      • Alerts
      • Live Queries dashboard
      • Slow Queries dashboard
    • Troubleshoot
      • Install and upgrade issues
      • Universe issues
    • Administer
      • Back up YugabyteDB Anywhere
      • Authenticate with LDAP
    • Upgrade
      • Upgrade Kubernetes installation
      • Upgrade using Replicated
  • YUGABYTEDB MANAGED
    • Overview
    • Quick start
      • Create a free cluster
      • Connect to the cluster
      • Explore distributed SQL
      • Build an application
        • Before you begin
        • Java
        • Go
        • Python
        • Node.js
        • C
        • C++
        • C#
        • Ruby
        • Rust
        • PHP
    • Deploy clusters
      • Planning a cluster
      • Create a free cluster
      • Create a standard cluster
      • VPC network
        • Overview
        • VPCs
        • Peering connections
        • Create a VPC Network
    • Secure clusters
      • IP allow lists
      • Database authorization
      • Add database users
      • Encryption in transit
      • Audit account activity
    • Connect to clusters
      • Cloud Shell
      • Client shell
      • Connect applications
    • Alerts and monitoring
      • Alerts
      • Performance metrics
      • Live queries
      • Slow YSQL queries
      • Cluster activity
    • Manage clusters
      • Scale and configure clusters
      • Backup and restore
      • Maintenance windows
      • Create extensions
    • Administration and billing
      • Manage account access
      • Manage billing
      • Cluster costs
    • Example applications
      • Connect a Spring application
      • Connect a YCQL Java application
      • Hasura Cloud
      • Deploy a GraphQL application
    • Security architecture
      • Security architecture
      • Shared responsibility model
    • Troubleshoot
    • YugabyteDB Managed FAQ
    • What's new
  • INTEGRATIONS
    • Apache Kafka
    • Apache Spark
    • Debezium
    • Django REST framework
    • Entity Framework
    • Flyway
    • GORM
    • Hasura
      • Application Development
      • Benchmarking
    • JanusGraph
    • KairosDB
    • Liquibase
    • Metabase
    • Presto
    • Prisma
    • Sequelize
    • Spring Framework
      • Spring Data YugabyteDB
      • Spring Data JPA
      • Spring Data Cassandra
    • SQLAlchemy
    • WSO2 Identity Server
    • YSQL Loader
    • YugabyteDB JDBC driver
  • REFERENCE
    • Architecture
      • Design goals
      • Key concepts
        • Universe
        • YB-TServer Service
        • YB-Master Service
      • Core functions
        • Universe creation
        • Table creation
        • Write IO path
        • Read IO path
        • High availability
      • Layered architecture
      • Query layer
        • Overview
      • DocDB transactions layer
        • Transactions overview
        • Transaction isolation levels
        • Explicit locking
        • Read Committed
        • Single-row transactions
        • Distributed transactions
        • Transactional IO path
      • DocDB sharding layer
        • Hash & range sharding
        • Tablet splitting
        • Colocated tables
      • DocDB replication layer
        • Replication
        • xCluster replication
        • Read replicas
        • Change data capture (CDC)
      • DocDB storage layer
        • Persistence
        • Performance
    • APIs
      • YSQL
        • The SQL language
          • SQL statements
            • ABORT
            • ALTER DATABASE
            • ALTER DEFAULT PRIVILEGES
            • ALTER DOMAIN
            • ALTER FOREIGN DATA WRAPPER
            • ALTER FOREIGN TABLE
            • ALTER GROUP
            • ALTER POLICY
            • ALTER ROLE
            • ALTER SEQUENCE
            • ALTER SERVER
            • ALTER TABLE
            • ALTER USER
            • ANALYZE
            • BEGIN
            • CALL
            • COMMENT
            • COMMIT
            • COPY
            • CREATE AGGREGATE
            • CREATE CAST
            • CREATE DATABASE
            • CREATE DOMAIN
            • CREATE EXTENSION
            • CREATE FOREIGN DATA WRAPPER
            • CREATE FOREIGN TABLE
            • CREATE FUNCTION
            • CREATE GROUP
            • CREATE INDEX
            • CREATE MATERIALIZED VIEW
            • CREATE OPERATOR
            • CREATE OPERATOR CLASS
            • CREATE POLICY
            • CREATE PROCEDURE
            • CREATE ROLE
            • CREATE RULE
            • CREATE SCHEMA
            • CREATE SEQUENCE
            • CREATE SERVER
            • CREATE TABLE
            • CREATE TABLE AS
            • CREATE TRIGGER
            • CREATE TYPE
            • CREATE USER
            • CREATE USER MAPPING
            • CREATE VIEW
            • DEALLOCATE
            • DELETE
            • DO
            • DROP AGGREGATE
            • DROP CAST
            • DROP DATABASE
            • DROP DOMAIN
            • DROP EXTENSION
            • DROP FOREIGN DATA WRAPPER
            • DROP FOREIGN TABLE
            • DROP FUNCTION
            • DROP GROUP
            • DROP MATERIALIZED VIEW
            • DROP OPERATOR
            • DROP OPERATOR CLASS
            • DROP OWNED
            • DROP POLICY
            • DROP PROCEDURE
            • DROP ROLE
            • DROP RULE
            • DROP SEQUENCE
            • DROP SERVER
            • DROP TABLE
            • DROP TRIGGER
            • DROP TYPE
            • DROP USER
            • END
            • EXECUTE
            • EXPLAIN
            • GRANT
            • IMPORT FOREIGN SCHEMA
            • INSERT
            • LOCK
            • PREPARE
            • REASSIGN OWNED
            • REFRESH MATERIALIZED VIEW
            • RELEASE SAVEPOINT
            • RESET
            • REVOKE
            • ROLLBACK
            • ROLLBACK TO SAVEPOINT
            • SAVEPOINT
            • SELECT
            • SET
            • SET CONSTRAINTS
            • SET ROLE
            • SET SESSION AUTHORIZATION
            • SET TRANSACTION
            • SHOW
            • SHOW TRANSACTION
            • TRUNCATE
            • UPDATE
            • VALUES
          • WITH clause
            • WITH clause—SQL syntax and semantics
            • recursive CTE
            • case study—traversing an employee hierarchy
            • traversing general graphs
              • graph representation
              • common code
              • undirected cyclic graph
              • directed cyclic graph
              • directed acyclic graph
              • rooted tree
              • Unique containing paths
              • Stress testing find_paths()
            • case study—Bacon Numbers from IMDb
              • Bacon numbers for synthetic data
              • Bacon numbers for IMDb data
        • Data types
          • Array
            • array[] constructor
            • Literals
              • Text typecasting and literals
              • Array of primitive values
              • Row
              • Array of rows
            • FOREACH loop (PL/pgSQL)
            • array of DOMAINs
            • Functions and operators
              • ANY and ALL
              • Array comparison
              • Array slice operator
              • Array concatenation
              • Array properties
              • array_agg(), unnest(), generate_subscripts()
              • array_fill()
              • array_position(), array_positions()
              • array_remove()
              • array_replace() / set value
              • array_to_string()
              • string_to_array()
          • Binary
          • Boolean
          • Character
          • Date and time
            • Conceptual background
            • Timezones and UTC offsets
              • Catalog views
              • Extended_timezone_names
                • Unrestricted full projection
                • Real timezones with DST
                • Real timezones no DST
                • Synthetic timezones no DST
              • Offset/timezone-sensitive operations
                • Timestamptz to/from timestamp conversion
                • Pure 'day' interval arithmetic
              • Four ways to specify offset
                • Name-resolution rules
                  • 1 case-insensitive resolution
                  • 2 ~names.abbrev never searched
                  • 3 'set timezone' string not resolved in ~abbrevs.abbrev
                  • 4 ~abbrevs.abbrev before ~names.name
                  • Helper functions
              • Syntax contexts for offset
              • Recommended practice
            • Typecasting between date-time and text-values
            • Semantics of the date-time data types
              • Date data type
              • Time data type
              • Plain timestamp and timestamptz
              • Interval data type
                • Interval representation
                  • Ad hoc examples
                  • Representation model
                • Interval value limits
                • Declaring intervals
                • Justify() and extract(epoch...)
                • Interval arithmetic
                  • Interval-interval comparison
                  • Interval-interval addition and subtraction
                  • Interval-number multiplication
                  • Moment-moment overloads of "-"
                  • Moment-interval overloads of "+" and "-"
                • Custom interval domains
                • Interval utility functions
            • Typecasting between date-time datatypes
            • Operators
              • Test comparison overloads
              • Test addition overloads
              • Test subtraction overloads
              • Test multiplication overloads
              • Test division overloads
            • General-purpose functions
              • Creating date-time values
              • Manipulating date-time values
              • Current date-time moment
              • Delaying execution
              • Miscellaneous
                • Function age()
                • Function extract() | date_part()
                • Implementations that model the overlaps operator
            • Formatting functions
            • Case study—SQL stopwatch
            • Download & install the date-time utilities
            • ToC
          • JSON
            • JSON literals
            • Primitive and compound data types
            • Code example conventions
            • Indexes and check constraints
            • Functions & operators
              • ::jsonb, ::json, ::text (typecast)
              • ->, ->>, #>, #>> (JSON subvalues)
              • - and #- (remove)
              • || (concatenation)
              • = (equality)
              • @> and <@ (containment)
              • ? and ?| and ?& (key or value existence)
              • array_to_json()
              • jsonb_agg()
              • jsonb_array_elements()
              • jsonb_array_elements_text()
              • jsonb_array_length()
              • jsonb_build_object()
              • jsonb_build_array()
              • jsonb_each()
              • jsonb_each_text()
              • jsonb_extract_path()
              • jsonb_extract_path_text() and json_extract_path_text()
              • jsonb_object()
              • jsonb_object_agg()
              • jsonb_object_keys()
              • jsonb_populate_record()
              • jsonb_populate_recordset()
              • jsonb_pretty()
              • jsonb_set() and jsonb_insert()
              • jsonb_strip_nulls()
              • jsonb_to_record()
              • jsonb_to_recordset()
              • jsonb_typeof()
              • row_to_json()
              • to_jsonb()
          • Money
          • Numeric
          • Range
          • Serial
          • UUID
        • Functions and operators
          • Aggregate functions
            • Informal functionality overview
            • Invocation syntax and semantics
            • grouping sets, rollup, cube
            • Per function signature and purpose
              • avg(), count(), max(), min(), sum()
              • array_agg(), string_agg(), jsonb_agg(), jsonb_object_agg()
              • bit_and(), bit_or(), bool_and(), bool_or()
              • variance(), var_pop(), var_samp(), stddev(), stddev_pop(), stddev_samp()
              • linear regression
                • covar_pop(), covar_samp(), corr()
                • regr_%()
              • mode(), percentile_disc(), percentile_cont()
              • rank(), dense_rank(), percent_rank(), cume_dist()
            • case study—percentile_cont() and the "68–95–99.7" rule
            • case study—linear regression on COVID data
              • Download the COVIDcast data
              • Ingest the COVIDcast data
                • Inspect the COVIDcast data
                • Copy the .csv files to staging tables
                • Check staged data conforms to the rules
                • Join the staged data into a single table
                • SQL scripts
                  • Create cr_staging_tables()
                  • Create cr_copy_from_scripts()
                  • Create assert_assumptions_ok()
                  • Create xform_to_covidcast_fb_survey_results()
                  • ingest-the-data.sql
              • Analyze the COVIDcast data
                • symptoms vs mask-wearing by day
                • Data for scatter-plot for 21-Oct-2020
                • Scatter-plot for 21-Oct-2020
                • SQL scripts
                  • analysis-queries.sql
                  • synthetic-data.sql
          • currval()
          • lastval()
          • nextval()
          • setval()
          • Window functions
            • Informal functionality overview
            • Invocation syntax and semantics
            • Per function signature and purpose
              • row_number(), rank() and dense_rank()
              • percent_rank(), cume_dist() and ntile()
              • first_value(), nth_value(), last_value()
              • lag(), lead()
              • Tables for the code examples
                • table t1
                • table t2
                • table t3
                • table t4
            • case study—analyzing a normal distribution
              • Bucket allocation scheme
              • do_clean_start.sql
              • cr_show_t4.sql
              • cr_dp_views.sql
              • cr_int_views.sql
              • cr_pr_cd_equality_report.sql
              • cr_bucket_using_width_bucket.sql
              • cr_bucket_dedicated_code.sql
              • do_assert_bucket_ok
              • cr_histogram.sql
              • cr_do_ntile.sql
              • cr_do_percent_rank.sql
              • cr_do_cume_dist.sql
              • do_populate_results.sql
              • do_report_results.sql
              • do_compare_dp_results.sql
              • do_demo.sql
              • Reports
                • Histogram report
                • dp-results
                • compare-dp-results
                • int-results
          • yb_hash_code()
        • Keywords
        • Reserved names
      • YCQL
        • ALTER KEYSPACE
        • ALTER ROLE
        • ALTER TABLE
        • CREATE INDEX
        • CREATE KEYSPACE
        • CREATE ROLE
        • CREATE TABLE
        • CREATE TYPE
        • DROP INDEX
        • DROP KEYSPACE
        • DROP ROLE
        • DROP TABLE
        • DROP TYPE
        • GRANT PERMISSION
        • GRANT ROLE
        • REVOKE PERMISSION
        • REVOKE ROLE
        • USE
        • INSERT
        • SELECT
        • EXPLAIN
        • UPDATE
        • DELETE
        • TRANSACTION
        • TRUNCATE
        • Simple expressions
        • Subscripted expressions
        • Function call
        • Operators
        • BLOB
        • BOOLEAN
        • Collection
        • FROZEN
        • INET
        • Integer and counter
        • Non-integer
        • TEXT
        • DATE, TIME, and TIMESTAMP
        • UUID and TIMEUUID
        • JSONB
        • Date and time
        • BATCH
    • CLIs
      • yb-ctl
      • yb-docker-ctl
      • ysqlsh
      • ycqlsh
      • yb-admin
      • yb-ts-cli
      • ysql_dump
      • ysql_dumpall
    • Configuration
      • yb-tserver
      • yb-master
      • yugabyted
      • Default ports
    • Drivers and ORMs
      • JDBC Drivers
      • C# Drivers
      • Go Drivers
      • Python Drivers
      • Client drivers for YSQL
      • Client drivers for YCQL
    • Connectors
      • Kafka Connect YugabyteDB
    • Third party tools
      • pgAdmin
      • Apache Superset
      • Arctype
      • DBeaver
      • TablePlus
      • DbSchema
      • SQL Workbench/J
      • Cassandra Workbench
    • Sample datasets
      • Chinook
      • Northwind
      • PgExercises
      • SportsDB
      • Retail Analytics
  • RELEASES
    • Releases overview
      • v2.13 series (preview)
      • v2.12 series (stable)
      • v2.11 series
      • v2.9 series
      • v2.8 series
      • v2.7 series
      • v2.6 series
      • v2.5 series
      • v2.4 series
      • v2.3 series
      • v2.2 series
      • v2.1 series
      • v2.0 series
      • v1.3 series
      • v1.2 series
    • Release versioning
  • FAQ
    • Comparisons
      • Amazon Aurora
      • Google Cloud Spanner
      • CockroachDB
      • TiDB
      • Vitess
      • MongoDB
      • FoundationDB
      • Amazon DynamoDB
      • Azure Cosmos DB
      • Apache Cassandra
      • PostgreSQL
      • Redis in-memory store
      • Apache HBase
    • General FAQ
    • Operations FAQ
    • API compatibility FAQ
    • YugabyteDB Anywhere FAQ
  • MISC
    • YEDIS
      • Quick start
      • Develop
        • Build an application
        • C#
        • C++
        • Go
        • Java
        • NodeJS
        • Python
      • API reference
        • APPEND
        • AUTH
        • CONFIG
        • CREATEDB
        • DELETEDB
        • LISTDB
        • SELECT
        • DEL
        • ECHO
        • EXISTS
        • EXPIRE
        • EXPIREAT
        • FLUSHALL
        • FLUSHDB
        • GET
        • GETRANGE
        • GETSET
        • HDEL
        • HEXISTS
        • HGET
        • HGETALL
        • HINCRBY
        • HKEYS
        • HLEN
        • HMGET
        • HMSET
        • HSET
        • HSTRLEN
        • HVALS
        • INCR
        • INCRBY
        • KEYS
        • MONITOR
        • PEXPIRE
        • PEXPIREAT
        • PTTL
        • ROLE
        • SADD
        • SCARD
        • RENAME
        • SET
        • SETEX
        • PSETEX
        • SETRANGE
        • SISMEMBER
        • SMEMBERS
        • SREM
        • STRLEN
        • ZRANGE
        • TSADD
        • TSCARD
        • TSGET
        • TSLASTN
        • TSRANGEBYTIME
        • TSREM
        • TSREVRANGEBYTIME
        • TTL
        • ZADD
        • ZCARD
        • ZRANGEBYSCORE
        • ZREM
        • ZREVRANGE
        • ZSCORE
        • PUBSUB
        • PUBLISH
        • SUBSCRIBE
        • UNSUBSCRIBE
        • PSUBSCRIBE
        • PUNSUBSCRIBE
    • Legal
      • Third party software
> Releases overview >

What's new in the v2.4 release series

Report a doc issue Suggest new content Contributor guide
  • v2.4.8.0 - November 23, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug Fixes
  • v2.4.7.0 - September 14, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug Fixes
  • v2.4.6.0 - August 10, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug Fixes
  • v2.4.5.0 - June 21, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug fixes
  • v2.4.4.0 - May 20, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug fixes
  • v2.4.3.0 - May 12, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug fixes
  • v2.4.2.0 - May 3, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug fixes
  • v2.4.1.1 - March 30, 2021
    • Downloads
    • Docker
    • Bug Fixes
  • v2.4.1 - Feb 10, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug Fixes
  • v2.4.0 - Jan 22, 2021
    • Downloads
    • Docker
    • New Features
    • Improvements
    • Bug Fixes
    • Known Issues
  • Notes

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. For more information, see Releases overview.

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).
  • v2.4.8.0 - November 23, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug Fixes
  • v2.4.7.0 - September 14, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug Fixes
  • v2.4.6.0 - August 10, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug Fixes
  • v2.4.5.0 - June 21, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug fixes
  • v2.4.4.0 - May 20, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug fixes
  • v2.4.3.0 - May 12, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug fixes
  • v2.4.2.0 - May 3, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug fixes
  • v2.4.1.1 - March 30, 2021
    • Downloads
    • Docker
    • Bug Fixes
  • v2.4.1 - Feb 10, 2021
    • Downloads
    • Docker
    • Improvements
    • Bug Fixes
  • v2.4.0 - Jan 22, 2021
    • Downloads
    • Docker
    • New Features
    • Improvements
    • Bug Fixes
    • Known Issues
  • Notes
Ask our community
  • Slack
  • Github
  • Forum
  • StackOverflow
Yugabyte
Contact Us
Copyright © 2017-2022 Yugabyte, Inc. All rights reserved.