Join us on YugabyteDB Community Slack
Star us on
Get Started
Slack
GitHub
Get Started
v2.11 (latest) v2.12 (stable) v2.8 (earlier version) v2.6 (earlier version) v2.4 (earlier version) v2.2 (earlier version) v2.1 (earlier version) v2.0 (earlier version) v1.3 (earlier version)
  • 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
    • Explore
      • SQL features
        • Schemas and Tables
        • Data Types
        • Data Manipulation
        • Queries and Joins
        • Expressions and Operators
        • Stored Procedures
        • Triggers
        • Advanced features
          • Cursors
          • Table Partitioning
          • Views
          • Savepoints
          • Collations
          • Extensions
        • Going beyond SQL
          • Follower reads
          • Tablespaces
      • Fault tolerance
      • Horizontal scalability
        • Sharding Data
        • Scaling Transactions
      • Transactions
        • Distributed Transactions
        • Isolation Levels
        • Explicit Locking
      • Indexes and Constraints
        • Overview
        • Unique Indexes
        • Partial Indexes
        • Expression Indexes
        • Generalized Inverted Indexes
        • Primary Key
        • Foreign Key
        • 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
      • Security
      • Observability
        • Prometheus Integration
        • Grafana Dashboard
    • 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 User Authentication
        • Configure ysql_hba_conf_csv
      • 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 (RLS)
        • 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
      • Back up and restore
        • Back up data
        • Restore data
        • Point-in-time recovery
        • Snapshot and restore data
      • 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
      • 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
  • YUGABYTE PLATFORM
    • Overview
      • Install
      • Configure
    • Install Yugabyte Platform
      • Prerequisites
      • Prepare the environment
      • Install software
      • Prepare nodes (on-prem)
      • Uninstall software
    • Configure Yugabyte Platform
      • Create admin user
      • Configure the cloud provider
      • Configure the 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
      • Add a node
      • Eliminate an unresponsive node
      • Enable high availability
      • Edit configuration flags
      • Edit a universe
      • Delete a universe
      • Configure instance tags
      • Upgrade YugabyteDB software
      • Migrate to Helm 3
    • Back up universes
      • Configure backup storage
      • Back up universe data
      • Restore universe data
      • Schedule data backups
    • Security
      • Security checklist
      • Customize ports
      • LDAP authentication
      • Authorization platform
      • Create a KMS configuration
      • Enable encryption at rest
      • Enable encryption in transit (TLS)
      • Network security
    • Alerts and monitoring
      • Alerts
      • Live Queries dashboard
      • Slow Queries dashboard
    • Troubleshoot
      • Install and upgrade issues
      • Universe issues
    • Administer Yugabyte Platform
      • Back Up Yugabyte Platform
      • Authenticate with LDAP
    • Upgrade Yugabyte Platform
      • Upgrade using Replicated
  • YUGABYTE CLOUD
    • Overview
    • Quick start
      • Create a free cluster
      • Connect to the cluster
      • Create a database
      • 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
        • Set up a VPC network
        • VPCs
        • Peering Connections
    • Secure clusters
      • IP allow lists
      • Database authorization
      • Add database users
      • Encryption in transit
      • Audit cloud 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
      • Backup and restore
      • Scale and configure clusters
      • Create extensions
    • Administer Yugabyte Cloud
      • Manage cloud users
      • 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
    • Yugabyte Cloud FAQ
    • What's new
  • INTEGRATIONS
    • Apache Kafka
    • Apache Spark
    • JanusGraph
    • KairosDB
    • Presto
    • Metabase
    • WSO2 Identity Server
    • YSQL Loader
    • Yugabyte JDBC Driver
    • Prisma
    • Hasura
      • Application Development
      • Benchmarking
    • Spring Framework
      • Spring Data YugabyteDB
      • Spring Data Cassandra
    • Flyway
    • GORM
    • Liquibase
    • Sequelize
    • SQLAlchemy
    • Entity Framework
    • Django REST framework
  • 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 GROUP
            • ALTER POLICY
            • ALTER ROLE
            • ALTER SEQUENCE
            • ALTER TABLE
            • ALTER USER
            • ANALYZE
            • BEGIN
            • CALL
            • COMMENT
            • COMMIT
            • COPY
            • CREATE AGGREGATE
            • CREATE CAST
            • CREATE DATABASE
            • CREATE DOMAIN
            • CREATE EXTENSION
            • 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 TABLE
            • CREATE TABLE AS
            • CREATE TRIGGER
            • CREATE TYPE
            • CREATE USER
            • CREATE VIEW
            • DEALLOCATE
            • DELETE
            • DO
            • DROP AGGREGATE
            • DROP CAST
            • DROP DATABASE
            • DROP DOMAIN
            • DROP EXTENSION
            • 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 TABLE
            • DROP TRIGGER
            • DROP TYPE
            • DROP USER
            • END
            • EXECUTE
            • EXPLAIN
            • GRANT
            • 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()
          • 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()
        • Extensions
        • 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
      • Client drivers for YSQL
      • Client drivers for YCQL
    • Connectors
      • Kafka Connect YugabyteDB
    • Third party tools
      • Arctype
      • DBeaver
      • DbSchema
      • pgAdmin
      • SQL Workbench/J
      • TablePlus
      • Visual Studio Code
    • Sample datasets
      • Chinook
      • Northwind
      • PgExercises
      • SportsDB
      • Retail Analytics
  • RELEASES
    • Releases overview
    • Release versioning
    • What's new
      • v2.11 (latest)
      • v2.12 (stable)
    • Earlier releases
      • v2.9 series
      • v2.8 series
      • v2.7 series
      • v2.6 series
      • v2.5 series
      • v2.4 series
      • v2.3.3
      • v2.3.2
      • v2.3.1
      • v2.3.0
      • v2.2 series
      • v2.1.8
      • v2.1.6
      • v2.1.5
      • v2.1.4
      • v2.1.3
      • v2.1.2
      • v2.1.1
      • v2.1.0
      • v2.0.11
      • v2.0.10
      • v2.0.9
      • v2.0.8
      • v2.0.7
      • v2.0.6
      • v2.0.5
      • v2.0.3
      • v2.0.1
      • v2.0.0
      • v1.3.1
      • v1.3.0
      • v1.2.12
      • v1.2.11
      • v1.2.10
      • v1.2.9
      • v1.2.8
      • v1.2.6
      • v1.2.5
      • v1.2.4
  • 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
    • Yugabyte Platform 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
> Earlier releases >

v2.3.0 release notes

Report a doc issue Suggest new content
  • Downloads
    • Binaries
    • Docker
  • Features and changes
    • YSQL
    • YCQL
    • Core database
    • Yugabyte Platform

Released: September 8, 2020 (2.3.0.0-b176).

New to YugabyteDB? Follow Quick start to get started and running in less than five minutes.

Looking for earlier releases? Release notes for earlier releases are available in Earlier releases.

Downloads

Binaries

     

Docker

docker pull yugabytedb/yugabyte:2.3.0.0-b176

Features and changes

YSQL

  • Fix OOM when running large COPY TO statements by creating new memory context for the loop over retrieved rows and resetting it after processing each row. #5205
  • Support transactional batch size for COPY FROM command with OOM fix. Batch sizes can be passed in with ROWS_PER_TRANSACTION in the COPY OPTION syntax. For an example, see Import a large table using smaller transactions #2855 #5453
  • For index backfill flags, use better default values. Set index_backfill_rpc_timeout_ms default from 60000 to 30000 and change backfill_index_timeout_grace_margin_ms default from 50 to 500. #5494
  • Remove spurious error message "0A000: Alter table is not yet supported" from CREATE OR REPLACE VIEW. #5071
  • Prevent consistency violations when a partitioned table has foreign key constraints due to erroneous classification as a single-row transaction. #5387
  • Fix restore from a distributed backup fails for tables using SPLIT INTO without a primary key. #4993
  • Fix wrong result by avoiding pushdown of UPDATE statement with the RETURNING clause. #5366
  • Improve error message when UPDATE changes partition so its clear what went wrong, fixed yb_pg_foreign_key pg_regress test for semantic merge conflict when updating primary keys and row-level partitioning. #659 #5179 #5310
  • Allow UPDATE statement to change primary key columns. #659
  • Support row-level partitioning. #5179
  • Block usage of TABLEGROUP with the SPLIT clause. For CREATE TABLE, usage is blocked in the grammar. For CREATE INDEX, if NO TABLEGROUP was provided, then presplitting for the index is allowed; otherwise, an error is issued. #5352
  • Buffered operations may share single RPC with read operation. Reducing the number of RPC calls speeds up CREATE TABLE statement. For example, the total number of RPC calls is dropped from 66 to 58 for a simple table like CREATE TABLE t(k INT PRIMARY KEY). #5177
  • Add new ysqlsh describe metacommands for tablegroups: \dgr[+] [grpname] to describe tablegroups, \dgrt[+] [grpname] lists all tables/indexes within the specified tablegroup (or within all tablegroups if grpname is not specified), and \d <table_name> is modified to include tablegroup information in the footer, if any. #5088
  • Add ALTER TABLEGROUP statements to support ALTER TABLEGROUP tablegroup_name RENAME TO ... and ALTER TABLEGROUP tablegroup_name OWNER TO .... Also changes pg_tablegroup entry corresponding to tablegroup_name to properly reflect new grpname and grpowner (if the user has proper permissions or ownership to issue the ALTER TABLEGROUP statement. #5249
  • Add support for indexes to opt out of tablegroups (NO TABLEGROUPS) or select their own tablegroup (TABLEGROUP group_name). #5293
  • For ysql_dump, enable serializable-deferrable mode by default. Add new --no-serializable-deferrable flag to disable the default mode. #5128
  • Support ALTER COLUMN type for variants that don't require on-disk changes. Specifically only allowing ALTER COLUMN type for varch(n) and varbit(n). For example, changing column type from varchar(50) to varchar(255). #4424
  • Enable USING clause in DELETE statement and FROM clause in UPDATE statement. #738 #5262
  • Support GRANT/REVOKE/ALTER DEFAULT PRIVILEGES for tablegroups. #5087 #5160
  • Implement tablegroup query layer changes. #4525
  • Replace "Foreign Scan" with "Seq Scan" for EXPLAIN statement. #2076
  • Fix initdb when index backfill is enabled. #5027
  • Properly handle empty delete with backfill by sending appropriate messages to the client, including setting it skipped and rows_affected_count to 0. #5015
  • DROP INDEX statement invalidates table cache entry for the index table, but should invalidate the table cache entry for the indexed table. #4974
  • yb-admin create_database_snapshot command should not require ysql. prefix for database name. #4991
  • For non-prepared statements, optimize pg_statistic system table lookups and update debugging utilities. #5051
  • Correctly show beta feature warnings by default. #5322

YCQL

  • For WHERE clause in the CREATE INDEX statement, return a Not supported error. #5363
  • Fix TSAN issue in partition-aware policy for C++ driver 2.9.0-yb-8 (yugabyte/cassandra-cpp-driver). #1837
  • Support YCQL backup for indexes based on JSON-attribute. #5198
  • Correctly set release_version for system.peers queries. #5407
  • Reject TRUNCATE operations when ycql_require_drop_privs_for_truncate flag is enabled. When enabled, DROP TABLE permission is required to truncate a table. Default is false. #5443
  • Fix missing return statement in error case of the SetPagingState method in statement_params.cc. #5441
  • Enable backfilling of transactional tables by default. #4708
  • Fix ycqlsh should return a failure when known that the create (unique) index has failed. #5161

Core database

  • Fix core dump related to DNS resolution from cache for Kubernetes universes. #5561
  • Fix yb-master fails to restart after errors on first run. #5276
  • Show better error message when using yugabyted and yb-master fails to start. #5304
  • Disable ignoring deleted tablets on load by default. #5122
  • [CDC] Improve CDC idle throttling logic to reduce high CPU utilization in clusters without workloads running. #5472
  • For the server_broadcast_addresses flag, provide default port if not specified. #2540
  • [CDC] Fix CDC TSAN destructor warning. #4258
  • Add an API endpoint to download root certificate file. #4957
  • Do not load deleted tables and tablets into memory on startup. #5122
  • Set the follower lag for leaders to 0 by resetting timestamp to the maximum value when a peer becomes a leader and when the peer loses leadership. #5502
  • Flow keyspace information from yb-master to yb-tserver. #3020
  • Implement meta cache lookups throttling to reduce unnecessary thrashing. #5434
  • Fix rpcz/statements links in yb-tserver Web UI when pgsql_proxy_bind_address and cql_proxy_bind_address are 0.0.0.0. #4963
  • DumpReplayStateToStrings should handle too many WAL entries scenario. Also, log lines only display fields critical for debugging and do not show customer-sensitive information. #5345
  • Find the difference between the replica map and consensus state more quickly using a map lookup. #5435
  • Improve failover to a new master leader in the case of a network partition or a dead tserver by registering tablet servers present in Raft quorums if they don't register themselves. Also, mark replicas that are in BOOTSTRAPPING/NOT_STARTED state with its true consensus information instead of marking it as a NON_PARTICIPANT. #4691
  • Add YB-Master UI changes to support tablegroups and colocation. #5086
    • Adds a column to the user and index tables to display the YSQL OID information about the colocation parent table (if any).
    • For tablegroups, it displays the OID of the table's tablegroup (same as the OID present in pg_tablegroup as well as the reltablegroup column of pg_class for that relation).
    • For colocated databases, it displays the OID of the database.
    • Also, creates a table to display information about the parent tables. Wrap the names and uuid of the parent tables. Display YSQL OIDs as explained above.
  • Fix MetaCache::TAbleData::stale is not getting reset back to false. #5245
  • Do not crash yb-tserver when the op_id of the last WAL file is less than the committed op_id. #1560
  • Add CREATE TABLEGROUP and DROP TABLEGROUP flow. #4525
  • Add yb-admin list_snapshots SHOW_DELETED flag to show deleted snapshots that are still retained in memory. #5332
  • Move read path functions to a separate file. #4944
  • Wait for yb_client_admin_operation_timeout_sec for table creation in yb-admin import_snapshot task. #5295
  • Create a cache for system-wide queries. #5043
  • Annotate access to enable_collect_cdc_metrics flag and prevent TSAN warnings. #5303
  • Raise yb-master and yb-tserver process ulimits to hard limits when appropriate. #4943
  • Add a pre-flush step, triggered by yb-master, to snapshot operations to minimize the amount of data being flushed in sync. #4718
  • Use Strand to remove intents and avoid wasting threads. #5265
  • Add metric severity level [PORT] and sever-side level-based filtering for metrics and prometheus-metrics. #4686
  • Decrease logging frequency for no local transaction status tablet from on every warning to once per second. #5035
  • Fix MonoTime subtraction implementation to return result of the operation instead of lhs. #5020
  • When dropping tables, delete snapshot directories for deleted tables. #4756
  • Set up a global leader balance threshold while allowing progress across tables. Add load_balancer_max_concurrent_moves_per_table and load_balancer_max_concurrent_moves to improve performance of leader moves. And properly update state for leader stepdowns to prevent check failures. #5021 #5181
  • Reduce default value of load_balancer_max_concurrent_moves from 10 to 2. #5461
  • Improve bootstrap logic for resolving transaction statuses. #5215
  • Avoid duplicate DNS lookup requests while handling system.partitions table requests. #5225
  • Handle write operation failures during tablet bootstrap. #5224
  • Ensure strict_capacity_limit is set when SetCapacity is called to prevent ASAN failures. #5222
  • Drop index upon failed backfill. For YCQL, generate error to CREATE INDEX call if index backfill fails before the call is completed. #5144 #5161
  • Allow overflow of single-touch cache if multi-touch cache is not consuming space. #4495
  • Don't flush RocksDB before restoration. #5184
  • Fix yugabyted fails to start UI due to class binding failure. #5069
  • On yb-tserver restart, prioritize bootstrapping transaction status tablets. #4926
  • For yb-admin commands, clarify syntax for namespace. #5482
  • Improve for-loops to avoid unnecessary copies and remove range-loop-analysis warnings. #5458
  • Apply large transaction in a separate thread if the transaction will not fit into the limit of key-value pairs. The running transaction is removed from memory after all its intents are applied and removed. #1923
  • Fix SEGV in Master UI when registering YB-TServer from Raft. #5501
  • Heartbeats process only new consensus information unless master_ignore_stale_cstate flag is disabled. #5301
  • Remove KernelStackWatchdog and use LongOperationTracker to waste less resources per thread. #5226
  • Change the default value of metric_node_name flag from DEFAULT_NODE_NAME to hostname:port. #4859

Yugabyte Platform

  • For S3 backups, install s3cmd required for encrypted backup and restore flows. #5593
  • When creating on-premises provider, remove YB_HOME_DIR if not set. #5592
  • Update to use templatized values for setting TLS flags in Helm Charts. #5424
  • For YCQL client connectivity, allow downloading root certificate and key from Certificates menu. #4957
  • Bypass CSRF checks when registering and logging in due to bug with CSRF token not being set. #5533
  • Set node certificate field to subject of CA instead of issuer of CA. #5377
  • Add option in universe creation form to control whether node_exporter is installed on provisioned nodes (including creating prometheus user + group). #5421
  • Add Microsoft Azure provider UI and related changes to Create Universe form. #5378
  • Create default network resources for multi-region deployments in Microsoft Azure if they don't exist and store for use during universe creation. #5388
  • For Microsoft Azure, use preexisting network resources. #5389
  • Set Assign Public IP correctly using the UI. #5463
  • Fix AreLeadersOnPreferredOnly times out when setting preferred zones in Edit Universe. #5406
  • Fix yb_backup.py script to remove sudo requirement and correctly change user. #5440
  • Add CSRF tokens to forms. #5419
  • Allow configuration of OIDC scope (for SSO use) as well as email attribute field. #5465
  • If Username and Password are left empty in the Custom SMTP Configuration, remove smtpUsername and smtpPassword from the payload. #5439
  • Add the UTC label to indicate cron expression must be relative to UTC. Also, add help text indicating when next scheduled job will run. #4709
  • Move the source of truth for communication ports to the universe level. #5353
  • Use appropriate range for time period (over entire step window rather than last minute) when querying Prometheus for metrics. #4203
  • Support backing up encrypted at rest universes. #3118
  • Only display "Rolling Upgrade Delay" if upgrade type is "Rolling". #5362
  • Add guarding against never-ending loop when running the yb_backup.py script and yb-server doesn't have any data directories. #5358
  • Fix metric panel displaying incorrect time interval when reloading after changing graph filter. #5294
  • Fix logging on health check script failure. #5340
  • Rename the label for enabling server-side encryption in S3 backups to Encrypt Backup for both backups and scheduled backup modals. #5273
  • Add a VM backup script that includes Prometheus backups. #5120
  • Add BackupAdmin role to authorize users to create backup and restore tasks on universes, but not given other administration privileges. #4694
  • Modify the yb_backup.py script to add "round-robin" behavior to thread allocations to better spread loads across nodes in parallel during snapshot upload or download. #4987
  • Fix the invalid yb_backup.py script behavior if --keyspace flag is not specified. #5199
  • Add subtasks to check number of pods deployed during upgrades. #5174
  • Make use of parallelism argument for yb_backup.py script. Explicitly pass the number of threads to concurrently run backup script through UI. The form defaults to the backup script default value of 8 threads if no value is provided. #5283
  • The Remove Node action should be available if the Add Node action fails. #5123
  • Add ability for user to specify the S3 backup target host that their bucket is located on. #3684
  • Check if on-premise node instance has a universe that is using it and make a link to the Universe Overview page. #4758
  • Fix Cannot read property 'displayName' of undefined error. #5267
  • Use Host Names setting is not displaying correctly in Provider Configuration page. #5252
  • Disable glob before running the cleanup of old log files. #5169
  • Schedule job for setUniverseKey should handle errors on per-customer basis. #3142
  • After Yugabyte Platform (YugaWare) restart, any in-progress tasks should be cancelled and marked as failed. #5045
  • Redirect from login back to index if session is already validated. Logout should redirect to login endpoint. #5019
  • Fix updating of Universes list after creating new universe. #4784
  • Fix restore payload when renaming table to include keyspace. And check for keyspace if tableName is defined and return invalid request code when keyspace is missing. #5178
  • Add the ability to override communication port default values during universe creation. #5354
Ask our community
  • Slack
  • Github
  • Forum
  • StackOverflow
Yugabyte
Contact Us
Copyright © 2017-2022 Yugabyte, Inc. All rights reserved.