diff --git a/_config_base.yml b/_config_base.yml index 90b0f21400f..bee5160ad8f 100644 --- a/_config_base.yml +++ b/_config_base.yml @@ -39,10 +39,10 @@ release_info: start_time: 2018-08-12 15:10:52.34274101 +0000 UTC v19.2: name: v19.2.0 - version: v19.2.0-alpha.20190805 + version: v19.2.0-beta.20190826 docker_image: cockroachdb/cockroach-unstable - build_time: 2019/08/05 11:00:26 (go1.12.5) - start_time: 2019-08-05 11:01:26.34274101 +0000 UTC + build_time: 2019/08/26 11:00:26 (go1.12.5) + start_time: 2019-08-26 11:01:26.34274101 +0000 UTC training: aws_access_key: AKIAIXNAWDKXMDDNHRCA diff --git a/_data/releases.yml b/_data/releases.yml index 3600083c93b..7d163ca4aff 100644 --- a/_data/releases.yml +++ b/_data/releases.yml @@ -123,6 +123,9 @@ no_windows: true - title: Testing Releases releases: + - date: Aug 26, 2019 + version: v19.2.0-beta.20190826 + no_windows: true - date: Aug 5, 2019 version: v19.2.0-alpha.20190805 no_windows: true diff --git a/releases/v19.2.0-beta.20190826.md b/releases/v19.2.0-beta.20190826.md new file mode 100644 index 00000000000..b11c0efe2ed --- /dev/null +++ b/releases/v19.2.0-beta.20190826.md @@ -0,0 +1,213 @@ +--- +title: What's New in v19.2.0-beta.20190826 +toc: true +summary: Additions and changes in CockroachDB version v19.2.0-beta.20190826 since version v19.2.0-alpha.20190805 +--- + +## August 26, 2019 + +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**](../v19.2/import.html): 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](../v19.2/sql-statements.html), which can be used to identify partitions. It also enhances [`SHOW CREATE TABLE`](../v19.2/show-create.html) 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**](../v19.2/partitioning.html): 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**](../v19.2/configure-zone.html): You can now use the CLI or SQL shell to retrieve locality. [`ALTER TABLE`](../v19.2/alter-table.html) 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](../v19.2/partitioning.html) 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](../v19.2/remove-nodes.html), [recommissioning](../v19.2/remove-nodes.html#recommission-nodes)) 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](../v19.2/configure-replication-zones.html), lease preferences, and replica diversification. + +Get future release notes emailed to you: + +
+ +
+ +### Downloads + +
+ + + +
+ +### Docker image + +{% include copy-clipboard.html %} +~~~shell +$ docker pull cockroachdb/cockroach-unstable:v19.2.0-beta.20190826 +~~~ + +### General changes + +- 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][#39034] {% comment %}doc{% endcomment %} + +### Enterprise edition changes + +- Added support for locality-aware [backups](../v19.2/backup.html) across multiple backup destinations. [#39250][#39250] {% comment %}doc{% endcomment %} +- Added support for displaying creation statements of relations stored in a [backups](../v19.2/backup.html). [#39323][#39323] {% comment %}doc{% endcomment %} +- [Table statistics](../v19.2/create-statistics.html) for the tables that are being backed up are now also backed up. [#39644][#39644] {% comment %}doc{% endcomment %} + +### SQL language changes + +- [Zone configurations](../v19.2/configure-replication-zones.html) now error out when they conflict with each other. [#39081][#39081] {% comment %}doc{% endcomment %} +- Renamed `SHOW EXPERIMENTAL_RANGES` to [`SHOW RANGES`](../v19.2/show-experimental-ranges.html) command, as it is no longer an experimental feature. [#39153][#39153] {% comment %}doc{% endcomment %} +- Added the `SHOW RANGES FROM DATABASE` command. [#39194][#39194] {% comment %}doc{% endcomment %} +- Added partial support for row limits during portal execution in `pgwire`. [#39085][#39085] +- Added the `SHOW LOCALITY` command. [#39058][#39058] {% comment %}doc{% endcomment %} +- Added the `SHOW PARTITIONS` command. [#39053][#39053] {% comment %}doc{% endcomment %} +- [`CREATE VIEW`](../v19.2/create-view.html) now supports all queries supported by the optimizer, including those containing [correlated subqueries](../v19.2/subqueries.html#correlated-subqueries). [#39169][#39169] {% comment %}doc{% endcomment %} +- Mutations are no longer allowed inside [views](../v19.2/views.html). [#39169][#39169] {% comment %}doc{% endcomment %} +- Added the `COLLATION FOR` syntax and `pg_collation_for()` [built-in function](../v19.2/functions-and-operators.html). [#39198][#39198] {% comment %}doc{% endcomment %} +- Implemented the `timezone()` built-in and `AT TIME ZONE` syntax, which allows converting a `timestamptz` into a `timezone` at a specified timezone, and converting a `timestamp` into a `timestamptz` at a specified timezone. [#39186][#39186] {% comment %}doc{% endcomment %} +- The new `vectorize_row_count_threshold` [cluster setting](../v19.2/cluster-settings.html) controls when the vectorized execution engine is used. [#39329][#39329] {% comment %}doc{% endcomment %} +- Added a `VEC` option to the [`EXPLAIN`](../v19.2/explain.html) command, which shows detailed plan information for vectorized plans. [#39280][#39280] {% comment %}doc{% endcomment %} +- Partition names can now be reused between different indexes on the same table. [#39332][#39332] {% comment %}doc{% endcomment %} +- Columns without an explicit default value now support foreign keys with the `SET DEFAULT` action, in the same way as the `SET NULL` and `SET DEFAULT NULL` cases. [#39136][#39136] {% comment %}doc{% endcomment %} +- Added [`SHOW JOB `](../v19.2/show-jobs.html), `SHOW JOB `, and `SHOW JOBS `. [#39324][#39324] {% comment %}doc{% endcomment %} +- Added [`SHOW JOB WHEN COMPLETE `](../v19.2/show-jobs.html) and `SHOW JOBS WHEN COMPLETE `. [#39457][#39457] {% comment %}doc{% endcomment %} +- [`IMPORT INTO`](../v19.2/import-into.html) now cleans up any imported rows if it fails. [#39459][#39459] +- Updated [`SHOW CREATE`](../v19.2/show-create.html) to display information about partition and table zone configurations. [#39102][#39102] {% comment %}doc{% endcomment %} +- Explicitly closing portals over the wire after partial use is now supported. [#39639][#39639] +- Added progress tracking for new implementation of [`IMPORT`](../v19.2/import.html). [#39646][#39646] {% comment %}doc{% endcomment %} +- CockroachDB now supports an optional frame exclusion clause in the specification of window frames. [#28262][#28262] {% comment %}doc{% endcomment %} +- Enabled collection of histograms by default during automatic statistics collection. [#39743][#39743] +- The `force_retry()` function, which previously required admin privileges, is now available to all users to test their transaction retry loops. [#39246][#39246] {% comment %}doc{% endcomment %} + +### Command-line changes + +- [`cockroach demo`](../v19.2/cockroach-demo.html) now accepts a `--nodes` flag, which permits customization of the size of the demo cluster. The default remains at `1`. [#39088][#39088] {% comment %}doc{% endcomment %} +- [`cockroach demo`](../v19.2/cockroach-demo.html) now accepts a `--demo-locality` flag, which makes it possible to set node localities. [#39454][#39454] {% comment %}doc{% endcomment %} +- [`cockroach demo`](../v19.2/cockroach-demo.html) without an argument is now equivalent to `cockroach demo movr`. The previous behavior (no pre-defined dataset) is still available via `cockroach demo --empty`. [#39298][#39298] {% comment %}doc{% endcomment %} +- [`cockroach start`](../v19.2/start-a-node.html) 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][#39300] {% comment %}doc{% endcomment %} +- Using [`cockroach start`](../v19.2/start-a-node.html) without `--join` is now deprecated and this mode of execution will be removed in a later version of CockroachDB. Consider using `cockroach start-single-node` instead or combine `cockroach start` with [`cockroach init`](../v19.2/initialize-a-cluster.html). [#28495][#28495] {% comment %}doc{% endcomment %} +- The advisory/informative check performed by [`cockroach start`](../v19.2/start-a-node.html) 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][#39166] +- Added locality information to the output of [`cockroach node status`](../v19.2/view-node-details.html). [#39059][#39059] {% comment %}doc{% endcomment %} +- Removed the deprecated `cockroach zone` CLI commands. Please use the equivalent [`SHOW ZONE CONFIGURATIONS`](../v19.2/show-zone-configurations.html) and `CONFIGURE ZONE` commands in a SQL client. [#39177][#39177] {% comment %}doc{% endcomment %} +- Added a new `cockroach start-single-node` [command](../v19.2/cockroach-commands.html) to start single-node clusters with replication disabled. [#28495][#28495] {% comment %}doc{% endcomment %} +- The [`cockroach user`](../v19.2/create-and-manage-users.html) 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][#39297] {% comment %}doc{% endcomment %} +- [`cockroach start`](../v19.2/start-a-node.html) 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][#39270] {% comment %}doc{% endcomment %} +- [`cockroach start`](../v19.2/start-a-node.html) now accepts a `--sql-addr` [flag](../v19.2/start-a-node.html#flags), 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][#39305] {% comment %}doc{% endcomment %} +- [`cockroach workload run`](../v19.2/cockroach-workload.html) and `cockroach workload init` now support loading initial table data using [`IMPORT`](../v19.2/import.html). [#35312][#35312] {% comment %}doc{% endcomment %} +- [`cockroach workload`](../v19.2/cockroach-workload.html) 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](https://tools.ietf.org/html/rfc3339) timestamps, no summary row) are supported. [#37929][#37929] {% comment %}doc{% endcomment %} +- Added `\d`, `\dt`, `\du`, `\l` metacommands to the [cockroach sql](../v19.2/use-the-built-in-sql-client.html) interactive shell. [#39141][#39141] {% comment %}doc{% endcomment %} + +### Bug fixes + +- Fixed a potential infinite loop in queries involving reverse scans. [#39084][#39084] +- Upgraded the `grpc` library to fix connection state management bug. [#39041][#39041] +- Properly initialize proposal quota tracking to prevent quota leak which can hang imports or other AddSSTable operations. [#39135][#39135] +- `crdb_internal.ranges` can now be used inside [views](../v19.2/views.html). Note that such views can become invalid in future releases if `crdb_internal.ranges` changes. [#39195][#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][#39203] +- CockroachDB now properly computes the default port number if an IPv6 address is provided without port number with `--locality-advertise-addr`. [#39334][#39334] +- Unary negatives in constant arithmetic expressions are no longer ignored. [#39245][#39245] +- `pg_catalog` now shows correct type lengths for [`INT`](../v19.2/int.html) and [`FLOAT`](../v19.2/float.html). [#39337][#39337] +- Fixed a rare panic (message: `"raft group deleted"`) that could occur during splits. [#39571][#39571] +- Fixed a panic due to incorrect type inference of some `ARRAY(...)` expressions. [#39469][#39469] +- [Zone configurations](../v19.2/configure-replication-zones.html) now propagate to non-gossiped system tables. [#39638][#39638] +- [`cockroach dump`](../v19.2/sql-dump.html) now works properly when handling [`INTERLEAVED`](../v19.2/interleave-in-parent.html) tables, printing them outside of [`CREATE TABLE`](../v19.2/create-table.html) statements. [#39486][#39486] + +### Performance improvements + +- Sped up file-writing during bulk-ingestion. [#37528][#37528] +- Snapshots sent between replicas are now applied more performantly and use less memory. [#38932][#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][#38954] +- Adjusted load-based splitting QPS threshold to avoid over-splitting. [#39687][#39687] +- [`IMPORT`](../v19.2/import.html) now writes unsorted data directly, reducing `IMPORT`'s overhead (but potentially increasing RocksDB compaction overhead). [#39487][#39487] + +### Doc updates + +- Added an [Oracle migration guide](../v19.2/migrate-from-oracle.html), which guides users through the process of converting their schema and then exporting their data so they can load it into CockroachDB via [`IMPORT`](../v19.2/import.html). [#5902](https://github.com/cockroachdb/docs/pull/5092) +- Added an [overview of MovR](../v19.2/movr.html), 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](../v19.2/learn-cockroachdb-sql.html). [#5075](https://github.com/cockroachdb/docs/pull/5075), [#5216](https://github.com/cockroachdb/docs/pull/5216) +- Added a tutorial on [how to use `EXPLAIN` to identify and resolve common SQL performance problems](../v19.2/learn-cockroachdb-sql.html). [#5178](https://github.com/cockroachdb/docs/pull/5178) + + +### Contributors + +This release includes 298 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) + +[#28262]: https://github.com/cockroachdb/cockroach/pull/28262 +[#28495]: https://github.com/cockroachdb/cockroach/pull/28495 +[#35312]: https://github.com/cockroachdb/cockroach/pull/35312 +[#37528]: https://github.com/cockroachdb/cockroach/pull/37528 +[#37929]: https://github.com/cockroachdb/cockroach/pull/37929 +[#38932]: https://github.com/cockroachdb/cockroach/pull/38932 +[#38954]: https://github.com/cockroachdb/cockroach/pull/38954 +[#39034]: https://github.com/cockroachdb/cockroach/pull/39034 +[#39041]: https://github.com/cockroachdb/cockroach/pull/39041 +[#39053]: https://github.com/cockroachdb/cockroach/pull/39053 +[#39058]: https://github.com/cockroachdb/cockroach/pull/39058 +[#39059]: https://github.com/cockroachdb/cockroach/pull/39059 +[#39067]: https://github.com/cockroachdb/cockroach/pull/39067 +[#39081]: https://github.com/cockroachdb/cockroach/pull/39081 +[#39084]: https://github.com/cockroachdb/cockroach/pull/39084 +[#39085]: https://github.com/cockroachdb/cockroach/pull/39085 +[#39088]: https://github.com/cockroachdb/cockroach/pull/39088 +[#39102]: https://github.com/cockroachdb/cockroach/pull/39102 +[#39135]: https://github.com/cockroachdb/cockroach/pull/39135 +[#39136]: https://github.com/cockroachdb/cockroach/pull/39136 +[#39141]: https://github.com/cockroachdb/cockroach/pull/39141 +[#39153]: https://github.com/cockroachdb/cockroach/pull/39153 +[#39166]: https://github.com/cockroachdb/cockroach/pull/39166 +[#39169]: https://github.com/cockroachdb/cockroach/pull/39169 +[#39177]: https://github.com/cockroachdb/cockroach/pull/39177 +[#39186]: https://github.com/cockroachdb/cockroach/pull/39186 +[#39194]: https://github.com/cockroachdb/cockroach/pull/39194 +[#39195]: https://github.com/cockroachdb/cockroach/pull/39195 +[#39198]: https://github.com/cockroachdb/cockroach/pull/39198 +[#39203]: https://github.com/cockroachdb/cockroach/pull/39203 +[#39245]: https://github.com/cockroachdb/cockroach/pull/39245 +[#39246]: https://github.com/cockroachdb/cockroach/pull/39246 +[#39250]: https://github.com/cockroachdb/cockroach/pull/39250 +[#39270]: https://github.com/cockroachdb/cockroach/pull/39270 +[#39280]: https://github.com/cockroachdb/cockroach/pull/39280 +[#39282]: https://github.com/cockroachdb/cockroach/pull/39282 +[#39291]: https://github.com/cockroachdb/cockroach/pull/39291 +[#39297]: https://github.com/cockroachdb/cockroach/pull/39297 +[#39298]: https://github.com/cockroachdb/cockroach/pull/39298 +[#39300]: https://github.com/cockroachdb/cockroach/pull/39300 +[#39305]: https://github.com/cockroachdb/cockroach/pull/39305 +[#39310]: https://github.com/cockroachdb/cockroach/pull/39310 +[#39323]: https://github.com/cockroachdb/cockroach/pull/39323 +[#39324]: https://github.com/cockroachdb/cockroach/pull/39324 +[#39329]: https://github.com/cockroachdb/cockroach/pull/39329 +[#39332]: https://github.com/cockroachdb/cockroach/pull/39332 +[#39334]: https://github.com/cockroachdb/cockroach/pull/39334 +[#39337]: https://github.com/cockroachdb/cockroach/pull/39337 +[#39454]: https://github.com/cockroachdb/cockroach/pull/39454 +[#39457]: https://github.com/cockroachdb/cockroach/pull/39457 +[#39459]: https://github.com/cockroachdb/cockroach/pull/39459 +[#39469]: https://github.com/cockroachdb/cockroach/pull/39469 +[#39486]: https://github.com/cockroachdb/cockroach/pull/39486 +[#39487]: https://github.com/cockroachdb/cockroach/pull/39487 +[#39560]: https://github.com/cockroachdb/cockroach/pull/39560 +[#39571]: https://github.com/cockroachdb/cockroach/pull/39571 +[#39638]: https://github.com/cockroachdb/cockroach/pull/39638 +[#39639]: https://github.com/cockroachdb/cockroach/pull/39639 +[#39644]: https://github.com/cockroachdb/cockroach/pull/39644 +[#39646]: https://github.com/cockroachdb/cockroach/pull/39646 +[#39687]: https://github.com/cockroachdb/cockroach/pull/39687 +[#39743]: https://github.com/cockroachdb/cockroach/pull/39743