What's New in beta-20170420

Apr 20, 2017

Get future release notes emailed to you:


Backwards-Incompatible Changes

  • Security-related command-line arguments have been changed. Instead of using multiple flags, certificates and keys are now loaded from a single --certs-dir flag, which defaults to ~/.cockroach-certs but can be set to a custom location. The individual flags still work in this release but will be removed in the next one. Also note that the --insecure flag is now required for insecure mode. #14703
  • The --alsologtostderr argument has been renamed to --logtostderr, and now takes an optional argument to specify a threshold. #14841
  • The ^ operator now means pow() instead of bitwise xor (bitwise xor uses the # operator; this is consistent with PostgreSQL). Any tables with this operator in a DEFAULT or CHECK expression will need to be updated. #14882

Upgrade Notes

  • This release cannot run at the same time as releases prior to beta-20170413. If you are running an older version, you must either upgrade to that version first or take down all servers in the cluster before starting any server with this version. This release includes new functionality to make future upgrades smoother. #14959

Build Changes

  • CockroachDB's build system has been rewritten to improve portability. It can no longer be installed with go get alone; use of the Makefile is now required. GNU Make, CMake, and XZ Utils must also be installed to build from source. As a result, CockroachDB can now be built on a larger variety of systems. #14840

SQL Language Changes

  • Type errors in CHECK constraints are now detected earlier. #14984
  • Aggregation functions now work correctly above the windowing level. #14729
  • The default precision for inexact decimal operations is now 20 digits (up from 16). #15001
  • Bounds are now checked when converting FLOAT or DECIMAL values to INTEGER. #14967
  • The pg_catalog data for int2vector is now consistent with PostgreSQL. #14989

Command-Line Interface Changes

  • The cockroach cert commands have been updated to reflect the new --certs-dir convention. #14703
  • New flags --log-file-max-size (default 10 MiB) and --log-dir-max-size (default 100 MiB) can be used to control log rotation and deletion. The --log-file-verbosity flag (default INFO) can be used to control the verbosity of the log file. #14841
  • Critical errors are now written to stderr regardless of the logging configuration. #14926 #15025 #15040
  • The server will now reload its certificates and keys on a SIGHUP. #14925
  • Some commands which previously required a node certificate now work with the root client certificate. #14972
  • The undocumented cockroach debug kv commands have been removed. #14857
  • The cockroach quit command now has a hard timeout of 1 minute if the cluster has lost quorum. #14708

Admin UI Changes

Bug Fixes

  • Transactions no longer get stuck forever when a split occurs while they are waiting for a conflicting transaction. #14974
  • The Admin UI can now display tables with non-lowercase names. #14818
  • Fixed a panic with "span and descriptor's range do not overlap". #14952
  • Fixed a data race in the Prometheus exporter. #14943

Performance Improvements

  • The timestamp cache is now much more efficient, leading to a 42% speedup on single-node write-only benchmarks. #14867
  • Transaction deadlocks are now detected faster. #14789
  • Fixed a memory "leak" in Raft. #15041
  • Improved performance of concurrent RPCs on a single GRPC connection. #14939
  • Raft processing now uses more threads. #14897
  • Improved performance of schema changes that add indexes. #14937
  • Reduced the number of cgo calls for RocksDB iterators. #14920

Doc Updates

  • Expanded the TRUNCATE documentation to cover using CASCADE to truncate dependent tables. #1297
  • Minor improvements to the ROLLBACK documentation. #1296


This release includes 101 merged PRs by 21 authors. We would like to thank first-time contributor xphoniex from the CockroachDB community.

YesYes NoNo