v1.2 Series release notes

What follows are the release notes for all releases in the v1.2 release series.

v1.2.12

Released July 5, 2019.

Downloads

Binaries

Docker

docker pull yugabytedb/yugabyte:1.2.12.0-b7

File Format Change

Note

This version includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster with YSQL schema, then you will not be able to connect to the YSQL database after upgrading to this version.

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 new cluster with 1.2.12.
  • If you want to continue using your existing data, then please save your data (in the form of SQL statements), delete the cluster, create a new cluster with 1.2.12 and then load the previously saved data.

YSQL Changes

  • [YSQL] Fix scan operator when range key is not fully-specified.#1576
  • [YSQL] Fix ORDER BY range column of a secondary index.#1591
  • [YSQL] Add YSQL RPCs to tserver utilz page.#1446

System Improvements

  • Resolve ABA problem in LockFreeStackResolve ABA problem in LockFreeStack.#1561
  • Fix recursive locking in Batcher.#1584
  • Use boost::atomic for 16-bytes structures.#1189
  • Fix integer overflow during Raft log read path.#1606
  • Fix concurrent access to primary table info in RaftGroupMetadata.#1631
  • A new priority-aware thread pool implementation for compactions and flushes.#1314
  • Create mem trackers that reflects TC Malloc stats.#1633
  • Make sure you don't read an invalid replicate index from the footer.#1625

v1.2.11

Released June 25, 2019.

Downloads

Binaries

Docker

docker pull yugabytedb/yugabyte:1.2.11.0-b26

File Format Change

Note

This version includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster with YSQL schema, then you will not be able to connect to the YSQL database after upgrading to this version.

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 new cluster with 1.2.11.
  • If you want to continue using your existing data, then please save your data (in the form of SQL statements), delete the cluster, create a new cluster with 1.2.11 and then load the previously saved data.

YSQL Changes

  • [YSQL] Lower prefetch limit to 1024 from 4098.#1206
  • [YSQL] REPEATABLE READ should be mapped to snapshot isolation, not to serializable
  • [YSQL] Error message on tserver startup: could not open directory 'pg_snapshots'.#1489
  • [YSQL] Fixed logging setup.#1230
  • [YSQL] Force use C locale.#986
  • [YSQL] Distinguish tables with same keyspace+name but different schema in master UI.#1525
  • [YSQL] Fix line editing in ysqlsh (psql) on Linux.#764
  • [YSQL] Show table UUIDs in tablet server web UI.#1525
  • [YSQL] Feature Support - FUNCTION and PROCEDURE.1155
  • [YSQL] Allow WITH clauses in CREATE TABLE.#870
  • [YSQL] Improve performance when executing LIMIT clause.#1204

YCQL Changes

  • [YCQL] Bulk loader improvements.#1543

System Improvements

  • Universe Key Integration for Encryption at Rest.#1364
  • Store tserver metrics in system YCQL table.#1021
  • Fix rocksdb checkpoint.#1491
  • CDCService GetChanges RPC.#1168
  • Update cql_nodelist_refresh_interval_secs to default to 300 sec#1471
  • Add more commands to yugabyte-db: status, connect, version, destroy
  • Intents DB should not request flush of Regular DB when it is already flushing.#1499
  • Add versioning to yb-master JSON API.#1372
  • Master concurrency improvements and benchmark for GetTableLocations.#1540
  • Preparation diff. Use single writer skiplist in DocDB.#1240
  • Take stack traces in parallel.#1509
  • Jepsen-related changes to remote_release.py,#938
  • Fix remote bootstrap log anchoring.#1485
  • Preparation: Auto memory management for Compaction object.#1314
  • Check if load balancer is active instead of checking whether distribution of tablets across tservers is nearly uniform.#1336
  • Fix EnumerateIntents and add a test to capture conflicts at hash key level in serializable isolation.#1465
  • Print enhanced tcmalloc stats to /memz.#1585
  • Add clearer error message if YB data dir can't be created.#295

v1.2.10

Released June 3, 2019.

Downloads

Binaries

Docker

docker pull yugabytedb/yugabyte:1.2.10.0-b13

File Format Change

Note

This version includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster with YSQL schema, then you will not be able to connect to the YSQL database after upgrading to this version.

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 new cluster with 1.2.10.
  • If you want to continue using your existing data, then please save your data (in the form of SQL statements), delete the cluster, create a new cluster with 1.2.10 and then load the previously saved data.

YSQL Changes

  • [YSQL] Add support for ALTER SEQUENCE.#1002
  • [YSQL] Remove unused hashed_doc_key from PgsqlWriteOperation
  • [YSQL] Implement /rpcz handler for YSQL.#1245
  • [YSQL] Make DocDB key encoding accessible in PGGATE. #1388
  • [YSQL] Omit cotable id in ybctid and ybbasectid [format change].#1426
  • [YSQL] Add support for ALTER TABLE .. ADD CONSTRAINT .. UNIQUE.#1394
  • [YSQL] #717 DROP DATABASE Support.#717
  • [YSQL] #1412: Fix included index columns.#1412
  • [YSQL] Basic support for FOREIGN KEY constraints
  • [YSQL] Hash and range keys support.#1134

System Improvements

  • Fix handling of higher term during preelection.#1418
  • Fixed purging of output files during concurrent SST flush.#1433
  • Only include active tablet-peers in tablets-by-az table.#1428
  • Log passed time when retryable operations expires and use coarse time for timeout calculation.#1315
  • Fix mem tracker GC and improve reporting.#1435
  • Reduce Logging of Pending Delete Message.#1421
  • Fix token returned by system.local.#1467

v1.2.9

Released May 21, 2019.

Downloads

Binaries

Docker

docker pull yugabytedb/yugabyte:1.2.9.0-b14

File format change

Note

This version includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster with YSQL schema, then you will not be able to connect to the YSQL database after upgrading to this version.

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 new cluster with 1.2.9.
  • If you want to continue using your existing data, then please save your data (in the form of SQL statements), delete the cluster, create a new cluster with 1.2.9 and then load the previously saved data.

YSQL changes

  • Add support for identity column. #1267
  • Support INSERT INTO ... ON CONFLICT clause, #1109
  • Set default prefetch limit to 4096, #1206
  • Disable logical replication, #1323
  • Add support for "COMMENT ON" statements, #1332
  • Fix indexes on temporary tables, #1349
  • Store object ids as unsigned integer in DocDB, #1392
  • Disallow INTERVAL data type in a primary key or secondary index column, #1397
  • Support CREATE and DROP DOMAIN, #1310

YCQL changes

  • JSON UPSERT: Avoid decoding as int to check for array offset, #1039
  • Set default upper limit for CQL prepared statement cache size, #1406

Bug fixes

  • Pass upperbound to intent aware iterator, #1233
  • Fix Snappy detection outside of RocksDB, #1300
  • Added saving Raft group replica superblock after migration, #1403

System improvements

  • Implement RPC heartbeats, #950
  • Add master readiness check, #1076
  • Expose tablet servers page as a JSON
  • Add gflag to turn on per-row consistent paging queries in transactional tables, #1311
  • Stop applying writes when RocksDB requires a delay, #1300
  • Make fast WAL recovery the default, #1370
  • Reduce logging of RpcServerBase::get_current_user() and get_hostname(), #1380
  • Add table of tablet-peer counts by AZ to YB master UI, #1328

v1.2.8

Released May 8, 2019.

Downloads

Binaries

Docker

docker pull yugabytedb/yugabyte:1.2.8.0-b1

File Format Change

Note

This version includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster with YSQL schema, then you will not be able to connect to the YSQL database after upgrading to this version.

There are two ways to address the above note.

  • If you don't care about preserving your existing data, then delete your existing cluster, and create a new cluster with 1.2.8.
  • If you want to continue using your existing data, then please save your data (in the form of SQL statements), delete the cluster, create a new cluster with 1.2.8 and then load the previously saved data.

YSQL Changes

  • Support UNIQUE constraint. #1022
  • ON CONFLICT support. #1109
  • Scan path cleanup
  • Create information_schema during initdb.#1251
  • Storing YSQL Metrics and setting up webserver for YSQL. #1137
  • Fix compilation on Ubuntu 18.04. #1277
  • PostgreSQL is built in non-parallel mode. #1235
  • Postgres process failed to start on Ubuntu. #1292
  • Cascade truncate indexes. #1175
  • Rename psql to ysqlsh. #1257
  • Add support for identity column. #1267
  • Allow insert multiple NULL values in UNIQUE INDEX column. #1058

YCQL Changes

  • Add EXPLAIN to YCQL for SELECT, INSERT, UPDATE, DELETE stmts. #861
  • Fix YCQL paging handling in distributed transactions. #1281
  • Support JSON operator on INSERT. #668

Bug Fixes

  • Do not modify variable pre_allocated_size if fallocate() fails. #1211

System Improvements

  • Unify yb-master and yb-tserver under one manager process
  • CDC service proto definition. #1164
  • Add port conflict error check to yugabyte-db
  • Run initdb automatically from the master leader
  • Timed out call should not take space in service queue. #1213
  • Handle case when timeout is not specified in UpdateConsensus. #1265
  • Speed Up Create Table. #911
  • Avoid destroying Messenger and Reactor inside Reactor thread.#1279
  • Fix Leader not yet replicated NoOp error. #1236
  • Add libcds to thirdparty. #1220
  • Separate Raft group and tablet abstractions - first step. #681
  • Process callbacks for outbound calls in a thread pool.#1280
  • Simplified yb-ctl output. #1360

v1.2.6

Released April 26, 2019.

Downloads

Binaries

Docker

docker pull yugabytedb/yugabyte:1.2.6.0-b3

YSQL Changes

  • Support Serializable isolation level for multi-key transactions. #1135
  • Remove Unnecessary YSQL Index update preparation. #1232
  • Remove dependency on YB_PG_FALLBACK_SYSTEM_USER_NAME, set default port and username for psql. #1018
  • Show table's OID when failing to load a table's metadata. #1222
  • Disable unsupported options for CREATE DATABASE. #716

YCQL / YEDIS Changes

  • [YCQL] Support Insert on Update for JSON entry. #1039

Bug Fixes

  • A User must have ALTER permission on a table to drop an index from the table. #701

System Improvements

  • Exponential backoff during pre-election. #1224
  • Enhance tserver readiness check.
  • Don't stop writes during tablet bootstrap. #1212
  • Introduce EncryptedFileFactory for producing Encrypted files.

v1.2.5

Released April 18, 2019.

Downloads

Binaries

Docker

docker pull yugabytedb/yugabyte:1.2.5.0-b13

YSQL changes

  • Enabled support for DROP CONSTRAINT IF EXISTS. #1124
  • Disabled creating user tables on template0/template1 databases. #1106
  • Use localhost as default when no host is specified while starting psql. #1114
  • Added ability to log warnings and continue operation for unsupported SQL options instead of erroring out. #1132
  • Improved grammar error message for unsupported options by including relevant GitHub issue link. #1176

YCQL / YEDIS changes

  • Added casting for Decimal data type. #963
  • Added support for SETNX command. #1183

Bug fixes

  • Fixed a bug where updating a column that was previously null would ignore the update. #1173
  • Fixed a bug where older Postgres process was not being killed when tserver is restarted. #1089
  • Fixed timeout in YCQL when selecting from a table with offset/limit if offset+limit > number of rows. #1099
  • Fixed a bug where index entries were not being deleted when corresponding row was deleted from table.#1193
  • Fixed a memory corruption issue while closing raft peer. #1150
  • Fixed a bug in YCQL where creating secondary index would fail if INCLUDE clause included primary key columns from indexed table. #1073

System improvements

  • Speed up initdb time by 2x by fixing primary key scan for tables with oids. #1207
  • Speed up local bootstrap by removing rewrite of WAL entries on bootstrap. #982
  • Improve SSL failure reporting by interpreting SSL_read 0 result as failure. #1210
  • Preallocate objects IDs in smaller chunks for YSQL. #1214
  • Disable transactional property for sequences table. #1029
  • Improve compaction speed by avoiding decode of full doc subkey. #1178
  • Added support for showing number of live tablets in Master UI's tablet server page. #1106
  • Reduced memory consumption of UpdateConsensus. #1148
  • Avoid race condition warning in ParseTree::clear_reparsed(). #1146
  • Moved yb-ctl to yugabyte-installation repository.

v1.2.4

Released April 8, 2019.

Downloads

Binaries

Docker

docker pull yugabytedb/yugabyte:1.2.4.0-b5

File Format Change

Note

This version includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster with YSQL schema, then you will not be able to connect to the YSQL database after upgrading to this version.

There are two ways to address the above note.

  • If you don't care about preserving your existing data, then you can delete your older cluster, upgrade to v1.2.4 and create a new cluster.
  • If you want to continue using your existing data, then please save your older data (in the form of SQL statements), delete the older cluster, upgrade to v1.2.4, create a new cluster and then load the previously saved data.

YSQL Changes

  • Added support for primary keys. It is now possible to create a table with a primary key. #955
  • Added support for temporary tables. #805
  • Added support for CYCLE option in CREATE SEQUENCE statement. #993
  • Enabled SET TRANSACTION READ WRITE statement. #1081
  • Support RelationType in TableInfo to distinguish between system tables, user tables and user indexes. #906

Bug Fixes

  • Fixed a crash in tserver that is observed while inserting null value into an indexed column. #945
  • Fixed a bug where indexes on system catalog tables were not being updated during DDL. #1083
  • Fixed detection of single row transactions on tables that have primary keys.
  • Fixed MiniMaster startup race condition in test infrastructure. #1040

System Improvements

  • Reduce per-connection overhead for cache preloading. #1090 #1091
  • Faster release of sending buffers to reduce memory consumption when leader sends large updates to followers who are lagging behind. #1079
  • Parallelize DNS resolution while filling system.peers and system.local tables #1000
  • Script for post-processing test results and generating JSON-based result files.
  • Improve stability of QLTransactionTest.IntentsCleanupAfterRestart. #1102