v2.0.0 release notes

Released September 17, 2019.

Downloads

Binaries

Docker

  1. docker pull yugabytedb/yugabyte:2.0.0.0-b16

Release highlight

YSQL is now generally available and is ready for production deployments. Details available in Announcing YugabyteDB 2.0 GA: Jepsen Tested, High-Performance Distributed SQL.

File format change

NoteVersion 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.

There are two ways to address the above note.

  • If you don’t care about preserving your existing data, then delete your cluster, and create a newcluster with 2.0.x.x
  • If you want to continue using your existing data, then please save your data,delete the cluster, create a new cluster with 2.0.x.x and then load the previously saved data.

YSQL changes

  • [YSQL] Add CREATE TABLE tablet splits to grammar. #1486
  • [YSQL] Allow ALTER TABLE ALTER COLUMN SET|DROP NOT NULL. #1200
  • [YSQL] Add retry logic to pgbench. #2058
  • [YSQL] Optimize single-row UPDATE and DELETE statements. #1028
  • [YSQL] IN predicate pushdown. #1554
  • [YSQL] Add top-level YSQL configuration gflag settings. #1140
  • [YSQL] Add support for various ALTER TABLE ADD COLUMN variants. #2055
  • [YSQL] Support UDTs and records. #1676
  • [YSQL] Order range columns with respect to primary key description. #1250
  • [YSQL] Support ALTER TABLE ADD COLUMN with default value. #2055
  • [YSQL] Enable ANALYZE, VACUUM in grammar. #2217
  • [YSQL] Non-transactional COPY in YSQL. #1926
  • [YSQL] CREATE AGGREGATE, DROP AGGREGATE, CAST, OPERATOR, OPERATOR CLASS. #1981
  • [YSQL] Create yugabyte user and yugabyte as default user and database. #2277

YCQL changes

  • [YCQL] Fixed TS crash if a built-in function argument is a column. #1944

System improvements

  • Propagate intents apply failure to client. #1974
  • Check shutdown state while scheduling compaction. #2100
  • Add leader check on master TS Write interface. #1995
  • Correctly handle duplicate key in postgres layer. #2012
  • Remove StopWatch from RocksDB Seek. #2136
  • Avoid picking read time for the serializable transactions. #2125
  • CDC: Producer and consumer master handshake to set up 2DC. #1977
  • Optimized Drop Table Locking. #2056
  • Reduce number of sys_catalog writes: skip no change heartbeats. #1966
  • CDC: Consumer changes. #1481
  • CDC: Add master-master replication support. #1824
  • Increase WAL retention time when CDC stream is setup on table. #2050
  • Apply changes received from producer universe. #2153
  • CDC: Delete for DROP DATABASE. #2114
  • Show Load Balancer state in Master UI. #646
  • Add support for error code categories to Status. #2200
  • [2DC] Handle RPC controller errors and CDC consumer shutdown. #2231
  • Don’t apply transactions on tablets without intents. #2070
  • Allow dynamic priorities in PriorityThreadPool. #2004
  • Added rocksdb_universal_compaction_always_include_size_threshold. #2085
  • Do full table name match while finding matching tables in 2DC. #2250
  • Fix cleaning Raft log after transactional writes are stopped. #2221
  • Fix handling of calls expired in queue. #2269
  • Load balancer should not be considered idle when tablet remote bootstrap. #2193
  • [YSQL]: Fix number of tablets created for system tables. #2293
  • Reduce fan-out and use tablet invoker for writing data.
  • SerializableReadWriteConflict needs better success probability.