title | toc | summary |
---|---|---|
What's New in v19.2.0-beta.20190903 |
true |
Additions and changes in CockroachDB version v19.2.0-beta.20190903 since version v19.2.0-alpha.20190805 |
In addition to bug fixes and various general, enterprise, SQL, and command-line enhancements, this release includes several major highlights:
- Locality-aware backup and restore: You can now back up or restore a subset of a table's data according to zone configurations (e.g., send your EU backup partition to an EU cloud storage location).
- Import performance improvements: Internal improvements have been made to
IMPORT
to enable more efficient loading of large data sets. - Show partitions using SQL: CockroachDB now supports the
SHOW PARTITIONS
statement, which can be used to identify partitions. It also enhancesSHOW CREATE TABLE
to show constraints as described. - Productionize Vectorization Prototype: Queries are now automatically faster for users. This work expands upon the SQL Vectorization Prototype and allows it to be used in production. Note, this does not cover the long-tail of features necessary to use vectorization on all queries. Vectorized execution is turned on by default for a subset of queries and default back to DistSQL execution for unsupported queries
- Improve Streaming Behavior on JDBC Driver: PostgreSQL wire protocol cursors have been implemented. As a result, PGJDBC is able to use streaming behavior to return pagination related results.
- Improve partitioning user experience: CockroachDB now prevents users from specifying a non-partitioned secondary index on a partitioned table by default to improve performance. Users will have the ability to override this default as it may be necessary in some rare use cases. Additionally, users can now specify the same name for the partition for tables and for all corresponding indexes.
- Improve setting of zone configs via SQL: You can now use the CLI or SQL shell to retrieve locality.
ALTER TABLE
now returns an error when users select conflicting or impossible zone constraints due to user error. - Make it easy to focus queries on partitioned data: CockroachDB now automatically limits a query to only the applicable partition without having to specify the particular partition for a geo-distributed table. This prevents the query from conducting a full table scan.
- Improve decommissioning, recommissioning, and recovery of killed nodes: Improved ability to change cluster membership during expected (decommissioning, recommissioning) and unexpected (killed nodes) events without impact stability or performance.
- Better insight into constraint conformance: You can now tell if your cluster is in a healthy state based on the status of conformance to constraints like zone configurations, lease preferences, and replica diversification.
Get future release notes emailed to you:
<script>
hbspt.forms.create({
css: '',
cssClass: 'install-form',
portalId: '1753393',
formId: '39686297-81d2-45e7-a73f-55a596a8d5ff',
formInstanceId: 1,
target: '.install-form-1'
});
</script>
{% include copy-clipboard.html %}
$ docker pull cockroachdb/cockroach-unstable:v19.2.0-beta-20190903
- Replicas are now added using a Raft learner and go through the normal Raft snapshot process to catch them up, eliminating technical debt. No user-facing changes are expected. #39034 {% comment %}doc{% endcomment %}
- Added support for locality-aware backups across multiple backup destinations. #39250 {% comment %}doc{% endcomment %}
- Added support for displaying creation statements of relations stored in a backups. #39323 {% comment %}doc{% endcomment %}
- Table statistics for the tables that are being backed up are now also backed up. #39644 {% comment %}doc{% endcomment %}
- Zone configurations now error out when they conflict with each other. #39081 {% comment %}doc{% endcomment %}
- Renamed
SHOW EXPERIMENTAL_RANGES
toSHOW RANGES
command, as it is no longer an experimental feature. #39153 {% comment %}doc{% endcomment %} - Added the
SHOW RANGES FROM DATABASE
command. #39194 {% comment %}doc{% endcomment %} - Added partial support for row limits during portal execution in
pgwire
. #39085 - Added the
SHOW LOCALITY
command. #39058 {% comment %}doc{% endcomment %} - Added the
SHOW PARTITIONS
command. #39053 {% comment %}doc{% endcomment %} CREATE VIEW
now supports all queries supported by the optimizer, including those containing correlated subqueries. #39169 {% comment %}doc{% endcomment %}- Mutations are no longer allowed inside views. #39169 {% comment %}doc{% endcomment %}
- Added the
COLLATION FOR
syntax andpg_collation_for()
built-in function. #39198 {% comment %}doc{% endcomment %} - Implemented the
timezone()
built-in andAT TIME ZONE
syntax, which allows converting atimestamptz
into atimezone
at a specified timezone, and converting atimestamp
into atimestamptz
at a specified timezone. #39186 {% comment %}doc{% endcomment %} - The new
vectorize_row_count_threshold
cluster setting controls when the vectorized execution engine is used. #39329 {% comment %}doc{% endcomment %} - Added a
VEC
option to theEXPLAIN
command, which shows detailed plan information for vectorized plans. #39280 {% comment %}doc{% endcomment %} - Partition names can now be reused between different indexes on the same table. #39332 {% comment %}doc{% endcomment %}
- Columns without an explicit default value now support foreign keys with the
SET DEFAULT
action, in the same way as theSET NULL
andSET DEFAULT NULL
cases. #39136 {% comment %}doc{% endcomment %} - Added
SHOW JOB <jobid>
,SHOW JOB <a_expr>
, andSHOW JOBS <selectclause>
. #39324 {% comment %}doc{% endcomment %} - Added
SHOW JOB WHEN COMPLETE <a_expr>
andSHOW JOBS WHEN COMPLETE <selectclause>
. #39457 {% comment %}doc{% endcomment %} IMPORT INTO
now cleans up any imported rows if it fails. #39459- Updated
SHOW CREATE
to display information about partition and table zone configurations. #39102 {% comment %}doc{% endcomment %} - Explicitly closing portals over the wire after partial use is now supported. #39639
- Added progress tracking for new implementation of
IMPORT
. #39646 {% comment %}doc{% endcomment %} - CockroachDB now supports an optional frame exclusion clause in the specification of window frames. #28262 {% comment %}doc{% endcomment %}
- Enabled collection of histograms by default during automatic statistics collection. #39743
- The
force_retry()
function, which previously required admin privileges, is now available to all users to test their transaction retry loops. #39246 {% comment %}doc{% endcomment %} - When
DROP CONSTRAINT
is executed in a transaction on a validated constraint, it no longer takes effect immediately, and subsequent writes in that constraint will now fail if they violate that constraint. This is to enforce consistency when dropping constraints asynchronously in the schema changer. #39648 - The
ALTER PARTITION
statement now supports applying a zone configuration to all the partitions of a table and its indexes that share the same partition name. The syntax for this isALTER PARTITION <partition name> OF INDEX <table name>@*
. #39750 - Support parsing the
FOR UPDATE
modifier onSELECT
clauses, treating it as a no-op, since CockroachDB's transactions only operate inSERIALIZABLE
mode. #40206 SHOW PARTITIONS
now shows the full zone configuration statement used to configure the partition. #39814- Added the
pg_my_temp_schema
built-in for Postgres compatibility. #40194 - Added the overlaps (
&&
), contains (@>
) and contained_by (<@
) operators for arrays. #40194 - Added
pg_get_function_identity_arguments
built-in. #40194
cockroach demo
now accepts a--nodes
flag, which permits customization of the size of the demo cluster. The default remains at1
. #39088 {% comment %}doc{% endcomment %}cockroach demo
now accepts a--demo-locality
flag, which makes it possible to set node localities. #39454 {% comment %}doc{% endcomment %}cockroach demo
without an argument is now equivalent tocockroach demo movr
. The previous behavior (no pre-defined dataset) is still available viacockroach demo --empty
. #39298 {% comment %}doc{% endcomment %}cockroach start
now writes the client URL to the file specified via--listen-url-file
as soon as the server is ready to accept connections. This also happens before the server detaches from the terminal when--background
is specified. #39300 {% comment %}doc{% endcomment %}- Using
cockroach start
without--join
is now deprecated and this mode of execution will be removed in a later version of CockroachDB. Consider usingcockroach start-single-node
instead or combinecockroach start
withcockroach init
. #28495 {% comment %}doc{% endcomment %} - The advisory/informative check performed by
cockroach start
on the validity of addresses contained in the node certificate is now relaxed to focus on the advertised node address, and to tolerate cases when the cert contains an IP address but a hostname is specified as advertised address. #39166 - Added locality information to the output of
cockroach node status
. #39059 {% comment %}doc{% endcomment %} - Removed the deprecated
cockroach zone
CLI commands. Please use the equivalentSHOW ZONE CONFIGURATIONS
andCONFIGURE ZONE
commands in a SQL client. #39177 {% comment %}doc{% endcomment %} - Added a new
cockroach start-single-node
command to start single-node clusters with replication disabled. #28495 {% comment %}doc{% endcomment %} - The
cockroach user
sub-commands are now deprecated. Users and roles can be managed using SQL statements instead. This functionality will be removed in the next release. #39297 {% comment %}doc{% endcomment %} cockroach start
now accepts a--cluster-name
flag. If specified, it must match when a node connects to a cluster. This feature is meant for use in combination with the cluster ID, which is still checked in any case, to protect newly created nodes (that don't have a cluster ID yet) from joining the wrong cluster. To introduce a cluster name into an existing cluster without one, the new flag can be temporarily paired with--disable-cluster-name-verification
. #39270 {% comment %}doc{% endcomment %}cockroach start
now accepts a--sql-addr
flag, which makes it possible to accept connections by clients on a separate TCP address and/or port number from the one used for intra-cluster (node-node) connections. This is aimed to enable firewalling client traffic from server traffic. #39305 {% comment %}doc{% endcomment %}cockroach workload run
andcockroach workload init
now support loading initial table data usingIMPORT
. #35312 {% comment %}doc{% endcomment %}cockroach workload
now supports additional command-line parameters to customize the output, to facilitate the integration with third-party testing tools:- For tools that wish to observe the metrics more frequently than every second, a new flag
--display-every
is now supported, which can be used to specify the period between metric reports. This applies to both the JSON and textual output. - For tools that require a different output format than the default, a new
--display-format
argument is supported. For now only the formats "simple" (original output format) and "incremental-json" (RFC3339 timestamps, no summary row) are supported. #37929 {% comment %}doc{% endcomment %}
- For tools that wish to observe the metrics more frequently than every second, a new flag
- Added
\d
,\dt
,\du
,\l
metacommands to the cockroach sql interactive shell. #39141 {% comment %}doc{% endcomment %} - Added default cluster locality topologies for multi-node
cockroach demo
clusters. #40221 - Errors in
cockroach demo
are no longer logged to the command-line interface. #40196
- Metrics about p90 and p99 percentiles of per-application average transaction time are now exposed in the Admin UI. #39429
- Fixed a potential infinite loop in queries involving reverse scans. #39084
- Upgraded the
grpc
library to fix connection state management bug. #39041 - Properly initialize proposal quota tracking to prevent quota leak which can hang imports or other AddSSTable operations. #39135
crdb_internal.ranges
can now be used inside views. Note that such views can become invalid in future releases ifcrdb_internal.ranges
changes. #39195- Prevented panic due to recording into finished tracing spans caused by acknowledging an earlier failed re-proposal when a later re-proposal exists. #39203
- CockroachDB now properly computes the default port number if an IPv6 address is provided without port number with
--locality-advertise-addr
. #39334 - Unary negatives in constant arithmetic expressions are no longer ignored. #39245
pg_catalog
now shows correct type lengths forINT
andFLOAT
. #39337- Fixed a rare panic (message:
"raft group deleted"
) that could occur during splits. #39571 - Fixed a panic due to incorrect type inference of some
ARRAY(...)
expressions. #39469 - Zone configurations now propagate to non-gossiped system tables. #39638
cockroach dump
now works properly when handlingINTERLEAVED
tables, printing them outside ofCREATE TABLE
statements. #39486- Fixed internal errors generated during execution of some complicated cases of correlated subqueries. #39818
- Using
ORDER BY
inside aggregation functions is now fully supported. #40242 - Replicas can now be moved between stores without entering an intermediate configuration that violates the zone constraints. Violations may still occur during zone config changes, decommissioning, and in the presence of dead nodes. #40284
- Lookup joins now spill to disk if the index lookups return more rows than can be stored in memory. #40208
- Sped up file-writing during bulk-ingestion. #37528
- Snapshots sent between replicas are now applied more performantly and use less memory. #38932
- Raft entries no longer wait to be applied to the RocksDB storage engine before signaling their success to clients, they now only wait until they are committed in their Raft log. #38954
- Adjusted load-based splitting QPS threshold to avoid over-splitting. #39687
IMPORT
now writes unsorted data directly, reducingIMPORT
's overhead (but potentially increasing RocksDB compaction overhead). #39487
- Added an Oracle migration guide, which guides users through the process of converting their schema and then exporting their data so they can load it into CockroachDB via
IMPORT
. #5902 - Added an overview of MovR, CockroachDB's fictional vehicle-sharing dataset and application, and updated several SQL pages and examples to use the built-in MovR dataset, for example, Learn CockroachDB SQL. #5075, #5216
- Added a tutorial on how to use
EXPLAIN
to identify and resolve common SQL performance problems. #5178
This release includes 382 merged PRs by 38+ authors. We would like to thank the following contributors from the CockroachDB community:
- Arseni Lapunov
- Elliot Courant
- Jaewan Park
- Niels Hofmans (first-time contributor)
- Shishir Jaiswal (first-time contributor)
- Taufiq Rahman (first-time contributor)
- Zeming YU (first-time contributor)
- 贾德星 (first-time contributor)
- HyeonGyu Lee (Vazrupe) (first-time contributor)