April 4, 2018
With the release of CockroachDB v2.0, we’ve made significant performance improvements, expanded our PostgreSQL compatibility by adding support for JSON (among other types), and provided functionality for managing multi-regional clusters in production.
- Read more about these changes in the v2.0 blog post.
- Check out a summary of the most significant, user-facing changes.
- Then upgrade to CockroachDB v2.0.
Get future release notes emailed to you:
This section summarizes the most significant, user-facing changes in v2.0.0. For a complete list of features and changes, including bug fixes and performance improvements, see the release notes for previous testing releases.
- Enterprise Features
- Core Features
- Backward-Incompatible Changes
- Known Limitations
- Documentation Updates
|Table Partitioning||Table partitioning gives you row-level control of how and where your data is stored. This feature can be used to keep data close to users, thereby reducing latency, or to store infrequently-accessed data on slower and cheaper storage, thereby reducing costs.|
|Node Map||The Node Map in the Admin UI visualizes the geographical configuration of a multi-region cluster by plotting the node localities on a world map. This feature provides real-time cluster metrics, with the ability to drill down to individual nodes to monitor and troubleshoot cluster health and performance.|
|Role-Based Access Control||Roles simplify access control by letting you assign SQL privileges to groups of users rather than to individuals.|
|Point-in-time Backup/Restore (Beta)||Data can now be restored as it existed at a specific point-in-time within the revision history of a backup.
This is a beta feature. It is currently undergoing continued testing. Please file a Github issue with us if you identify a bug.
These new features are freely available in the core version and do not require an enterprise license.
|Sequences||Sequences generate sequential integers according to defined rules. They are generally used for creating numeric primary keys.|
|SQL Audit Logging (Experimental)||SQL audit logging gives you detailed information about queries being executed against your system. This feature is especially useful when you want to log all queries that are run against a table containing personally identifiable information (PII).
This is an experimental feature. Its interface and output are subject to change.
|Common Table Expressions||Common Table Expressions (CTEs) simplify the definition and use of subqueries. They can be used in combination with
|Computed Columns||Computed columns store data generated from other columns by an expression that's included in the column definition. They are especially useful in combination with table partitioning,
|Foreign Key Actions||The
|Virtual Schemas||For PostgreSQL compatibility, CockroachDB now supports a three-level structure for names: database name > virtual schema name > object name. The new
|Test Deployment||You can now automate the deployment and management of a test CockroachDB cluster using an AWS CloudFormation template and Kubernetes.|
|Node Readiness Endpoint||The new
|Node Decommissioning||Nodes that have been decommissioned and stopped no longer appear in Admin UI and command-line interface metrics.|
|Per-Replica Constraints in Replication Zones||When defining a replication zone, unique constraints can be defined for each affected replica, meaning you can effectively pick the exact location of each replica.|
|Replication Zone for "Liveness" Range||Clusters now come with a pre-defined replication zone for the "liveness" range, which contains the authoritative information about which nodes are live at any given time.|
|Timeseries Data Controls||It is now possible to reduce the amount of timeseries data stored by a CockroachDB cluster or to disable the storage of timeseries data entirely. The latter is recommended only when using a third-party tool such as Prometheus for timeseries monitoring.|
|Replication Zones||Positive replication zone constraints no longer work. Any existing positive constraints will be ignored. This change should not impact existing deployments since positive constraints have not been documented or supported for some time.|
||Casting between these types now works the same way as in PostgreSQL. New functions
||It is no longer possible to drop a user with grants; the user's grants must first be revoked.|
|Cluster Settings||The obsolete
|Sequences||As of the v1.2-alpha.20171113 release, how sequences are stored in the key-value layer changed. Sequences created prior to that release must therefore be dropped and recreated. Since a sequence cannot be dropped while it is being used in a column's
For information about limitations we've identified in CockroachDB v2.0, with suggested workarounds where applicable, see Known Limitations.
|Production Checklist||This topic now provides cloud-specific hardware, security, load balancing, monitoring and alerting, and clock synchronization recommendations as well as expanded cluster topology guidance. Related deployment tutorials have been enhanced with much of this information as well.|
|Monitoring and Alerting||This new topic explains available tools for monitoring the overall health and performance of a cluster and critical events and metrics to alert on.|
|Common Errors||This new topic helps you understand and resolve errors you might encounter, including retryable and ambiguous errors for transactions.|
|SQL Performance||This new topic provides best practices for optimizing SQL performance in CockroachDB.|
|SQL Standard Comparison||This new topic lists which SQL standard features are supported, partially-supported, and unsupported by CockroachDB.|
|Selection Queries||This new topic explains the function and syntax of queries and operations involved in reading and processing data in CockroachDB, alongside more detailed information about ordering query results, limiting query results, subqueries, and join expressions.|