From 7faf958352a7075d98eb06b09e6d7387da3b5fca Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Mon, 1 Apr 2024 15:50:20 -0400 Subject: [PATCH 1/6] add missing enable_experimental_alter_column_type_general session var (#18416) --- src/current/_includes/v22.2/misc/session-vars.md | 1 + src/current/_includes/v23.1/misc/session-vars.md | 1 + src/current/_includes/v23.2/misc/session-vars.md | 1 + src/current/_includes/v24.1/misc/session-vars.md | 1 + 4 files changed, 4 insertions(+) diff --git a/src/current/_includes/v22.2/misc/session-vars.md b/src/current/_includes/v22.2/misc/session-vars.md index bd4fc97d2c9..79afc885cdc 100644 --- a/src/current/_includes/v22.2/misc/session-vars.md +++ b/src/current/_includes/v22.2/misc/session-vars.md @@ -17,6 +17,7 @@ | `disallow_full_table_scans` | If set to `on`, queries on "large" tables with a row count greater than [`large_full_scan_rows`](#large-full-scan-rows) will not use full table or index scans. If no other query plan is possible, queries will return an error message. This setting does not apply to internal queries, which may plan full table or index scans without checking the session variable. | `off` | Yes | Yes | | `distsql` | The query distribution mode for the session. By default, CockroachDB determines which queries are faster to execute if distributed across multiple nodes, and all other queries are run through the gateway node. | `auto` | Yes | Yes | | `enable_auto_rehoming` | When enabled, the [home regions](alter-table.html#crdb_region) of rows in [`REGIONAL BY ROW`](alter-table.html#set-the-table-locality-to-regional-by-row) tables are automatically set to the region of the [gateway node](ui-sessions-page.html#session-details-gateway-node) from which any [`UPDATE`](update.html) or [`UPSERT`](upsert.html) statements that operate on those rows originate. | `off` | Yes | Yes | +| `enable_experimental_alter_column_type_general` | If `on`, it is possible to [alter column data types]({% link {{ page.version.version }}/alter-table.md %}#alter-column-data-types). | `off` | Yes | Yes | | `enable_implicit_select_for_update` | Indicates whether [`UPDATE`](update.html) and [`UPSERT`](upsert.html) statements acquire locks using the `FOR UPDATE` locking mode during their initial row scan, which improves performance for contended workloads.

For more information about how `FOR UPDATE` locking works, see the documentation for [`SELECT FOR UPDATE`](select-for-update.html). | `on` | Yes | Yes | | `enable_implicit_transaction_for_batch_statements` | Indicates whether multiple statements in a single query (a "batch statement") will all run in the same implicit transaction, which matches the PostgreSQL wire protocol. | `on` | Yes | Yes | | `enable_insert_fast_path` | Indicates whether CockroachDB will use a specialized execution operator for inserting into a table. We recommend leaving this setting `on`. | `on` | Yes | Yes | diff --git a/src/current/_includes/v23.1/misc/session-vars.md b/src/current/_includes/v23.1/misc/session-vars.md index fc505285062..8eec1163850 100644 --- a/src/current/_includes/v23.1/misc/session-vars.md +++ b/src/current/_includes/v23.1/misc/session-vars.md @@ -18,6 +18,7 @@ | `disallow_full_table_scans` | If set to `on`, queries on "large" tables with a row count greater than [`large_full_scan_rows`](#large-full-scan-rows) will not use full table or index scans. If no other query plan is possible, queries will return an error message. This setting does not apply to internal queries, which may plan full table or index scans without checking the session variable. | `off` | Yes | Yes | | `distsql` | The query distribution mode for the session. By default, CockroachDB determines which queries are faster to execute if distributed across multiple nodes, and all other queries are run through the gateway node. | `auto` | Yes | Yes | | `enable_auto_rehoming` | When enabled, the [home regions]({% link {{ page.version.version }}/alter-table.md %}#crdb_region) of rows in [`REGIONAL BY ROW`]({% link {{ page.version.version }}/alter-table.md %}#set-the-table-locality-to-regional-by-row) tables are automatically set to the region of the [gateway node]({% link {{ page.version.version }}/ui-sessions-page.md %}#session-details-gateway-node) from which any [`UPDATE`]({% link {{ page.version.version }}/update.md %}) or [`UPSERT`]({% link {{ page.version.version }}/upsert.md %}) statements that operate on those rows originate. | `off` | Yes | Yes | +| `enable_experimental_alter_column_type_general` | If `on`, it is possible to [alter column data types]({% link {{ page.version.version }}/alter-table.md %}#alter-column-data-types). | `off` | Yes | Yes | | `enable_implicit_select_for_update` | Indicates whether [`UPDATE`]({% link {{ page.version.version }}/update.md %}) and [`UPSERT`]({% link {{ page.version.version }}/upsert.md %}) statements acquire locks using the `FOR UPDATE` locking mode during their initial row scan, which improves performance for contended workloads.

For more information about how `FOR UPDATE` locking works, see the documentation for [`SELECT FOR UPDATE`]({% link {{ page.version.version }}/select-for-update.md %}). | `on` | Yes | Yes | | `enable_implicit_transaction_for_batch_statements` | Indicates whether multiple statements in a single query (a "batch statement") will all run in the same implicit transaction, which matches the PostgreSQL wire protocol. | `on` | Yes | Yes | | `enable_insert_fast_path` | Indicates whether CockroachDB will use a specialized execution operator for inserting into a table. We recommend leaving this setting `on`. | `on` | Yes | Yes | diff --git a/src/current/_includes/v23.2/misc/session-vars.md b/src/current/_includes/v23.2/misc/session-vars.md index a3914fd2312..a0d4d56b65f 100644 --- a/src/current/_includes/v23.2/misc/session-vars.md +++ b/src/current/_includes/v23.2/misc/session-vars.md @@ -19,6 +19,7 @@ | `distsql` | The query distribution mode for the session. By default, CockroachDB determines which queries are faster to execute if distributed across multiple nodes, and all other queries are run through the gateway node. | `auto` | Yes | Yes | | `enable_auto_rehoming` | When enabled, the [home regions]({% link {{ page.version.version }}/alter-table.md %}#crdb_region) of rows in [`REGIONAL BY ROW`]({% link {{ page.version.version }}/alter-table.md %}#set-the-table-locality-to-regional-by-row) tables are automatically set to the region of the [gateway node]({% link {{ page.version.version }}/ui-sessions-page.md %}#session-details-gateway-node) from which any [`UPDATE`]({% link {{ page.version.version }}/update.md %}) or [`UPSERT`]({% link {{ page.version.version }}/upsert.md %}) statements that operate on those rows originate. | `off` | Yes | Yes | | `enable_durable_locking_for_serializable` | Indicates whether CockroachDB replicates [`FOR UPDATE` and `FOR SHARE`]({% link {{ page.version.version }}/select-for-update.md %}#lock-strengths) locks via [Raft]({% link {{ page.version.version }}/architecture/replication-layer.md %}#raft), allowing locks to be preserved when leases are transferred. Note that replicating `FOR UPDATE` and `FOR SHARE` locks will add latency to those statements. This setting only affects `SERIALIZABLE` transactions and matches the default `READ COMMITTED` behavior when enabled. | `off` | Yes | Yes | +| `enable_experimental_alter_column_type_general` | If `on`, it is possible to [alter column data types]({% link {{ page.version.version }}/alter-table.md %}#alter-column-data-types). | `off` | Yes | Yes | | `enable_implicit_fk_locking_for_serializable` | Indicates whether CockroachDB uses [shared locks]({% link {{ page.version.version }}/select-for-update.md %}#lock-strengths) to perform [foreign key]({% link {{ page.version.version }}/foreign-key.md %}) checks. To take effect, `enable_shared_locking_for_serializable` must also be enabled. This setting only affects `SERIALIZABLE` transactions and matches the default `READ COMMITTED` behavior when enabled. | `off` | Yes | Yes | | `enable_implicit_select_for_update` | Indicates whether [`UPDATE`]({% link {{ page.version.version }}/update.md %}) and [`UPSERT`]({% link {{ page.version.version }}/upsert.md %}) statements acquire locks using the `FOR UPDATE` locking mode during their initial row scan, which improves performance for contended workloads.

For more information about how `FOR UPDATE` locking works, see the documentation for [`SELECT FOR UPDATE`]({% link {{ page.version.version }}/select-for-update.md %}). | `on` | Yes | Yes | | `enable_implicit_transaction_for_batch_statements` | Indicates whether multiple statements in a single query (a "batch statement") will all run in the same implicit transaction, which matches the PostgreSQL wire protocol. | `on` | Yes | Yes | diff --git a/src/current/_includes/v24.1/misc/session-vars.md b/src/current/_includes/v24.1/misc/session-vars.md index 836a3603dc7..be83be3ce7c 100644 --- a/src/current/_includes/v24.1/misc/session-vars.md +++ b/src/current/_includes/v24.1/misc/session-vars.md @@ -18,6 +18,7 @@ | `disallow_full_table_scans` | If set to `on`, queries on "large" tables with a row count greater than [`large_full_scan_rows`](#large-full-scan-rows) will not use full table or index scans. If no other query plan is possible, queries will return an error message. This setting does not apply to internal queries, which may plan full table or index scans without checking the session variable. | `off` | Yes | Yes || `distsql` | The query distribution mode for the session. By default, CockroachDB determines which queries are faster to execute if distributed across multiple nodes, and all other queries are run through the gateway node. | `auto` | Yes | Yes | | `enable_auto_rehoming` | When enabled, the [home regions]({% link {{ page.version.version }}/alter-table.md %}#crdb_region) of rows in [`REGIONAL BY ROW`]({% link {{ page.version.version }}/alter-table.md %}#set-the-table-locality-to-regional-by-row) tables are automatically set to the region of the [gateway node]({% link {{ page.version.version }}/ui-sessions-page.md %}#session-details-gateway-node) from which any [`UPDATE`]({% link {{ page.version.version }}/update.md %}) or [`UPSERT`]({% link {{ page.version.version }}/upsert.md %}) statements that operate on those rows originate. | `off` | Yes | Yes | | `enable_durable_locking_for_serializable` | Indicates whether CockroachDB replicates [`FOR UPDATE` and `FOR SHARE`]({% link {{ page.version.version }}/select-for-update.md %}#lock-strengths) locks via [Raft]({% link {{ page.version.version }}/architecture/replication-layer.md %}#raft), allowing locks to be preserved when leases are transferred. Note that replicating `FOR UPDATE` and `FOR SHARE` locks will add latency to those statements. This setting only affects `SERIALIZABLE` transactions and matches the default `READ COMMITTED` behavior when enabled. | `off` | Yes | Yes | +| `enable_experimental_alter_column_type_general` | If `on`, it is possible to [alter column data types]({% link {{ page.version.version }}/alter-table.md %}#alter-column-data-types). | `off` | Yes | Yes | | `enable_implicit_fk_locking_for_serializable` | Indicates whether CockroachDB uses [shared locks]({% link {{ page.version.version }}/select-for-update.md %}#lock-strengths) to perform [foreign key]({% link {{ page.version.version }}/foreign-key.md %}) checks. To take effect, `enable_shared_locking_for_serializable` must also be enabled. This setting only affects `SERIALIZABLE` transactions and matches the default `READ COMMITTED` behavior when enabled. | `off` | Yes | Yes | | `enable_implicit_select_for_update` | Indicates whether [`UPDATE`]({% link {{ page.version.version }}/update.md %}) and [`UPSERT`]({% link {{ page.version.version }}/upsert.md %}) statements acquire locks using the `FOR UPDATE` locking mode during their initial row scan, which improves performance for contended workloads.

For more information about how `FOR UPDATE` locking works, see the documentation for [`SELECT FOR UPDATE`]({% link {{ page.version.version }}/select-for-update.md %}). | `on` | Yes | Yes | | `enable_implicit_transaction_for_batch_statements` | Indicates whether multiple statements in a single query (a "batch statement") will all run in the same implicit transaction, which matches the PostgreSQL wire protocol. | `on` | Yes | Yes | From 27449c104033431cdd45f84d665db3d09a8b4c96 Mon Sep 17 00:00:00 2001 From: "Matt Linville (he/him)" Date: Tue, 2 Apr 2024 10:44:47 -0700 Subject: [PATCH 2/6] Add .bundle/config to .gitignore (#18435) With recent macOS and Xcode and our toolchain, you now need to run this command before `bundle install`: ``` bundle config build.cbor --with-cflags="-Wno-incompatible-function-pointer-types" bundle config build.posix-spawn --with-cflags="-Wno-incompatible-function-pointer-types" ``` After you run that plus `bundle install`, a new file is created in the repo, `.bundle/config`. This is a local configuration file that should not make it into the repo, I guess. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 4686053eaac..f4b5e7378db 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ node_modules /src/*/bootstrap /src/*/vendor/ spec_30_enriched.json +.bundle/config From c8c2eabafe3aa47c111453e1002ae2b1eb7f234e Mon Sep 17 00:00:00 2001 From: Matt Linville Date: Tue, 2 Apr 2024 11:46:37 -0700 Subject: [PATCH 3/6] Disable failing PR Reviews test --- .github/workflows/pr-reviews.yml | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 .github/workflows/pr-reviews.yml diff --git a/.github/workflows/pr-reviews.yml b/.github/workflows/pr-reviews.yml deleted file mode 100644 index 1736a86a063..00000000000 --- a/.github/workflows/pr-reviews.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: PR Review -on: - pull_request_target: - types: - - opened - - reopened - - ready_for_review - - synchronize - - auto_merge_enabled - -jobs: - pr-review: - if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@main - - - name: Set up Golang - uses: actions/setup-go@v4 - with: - go-version: '1.20' - - - name: Run PR review check - env: - GITHUB_TOKEN: ${{ secrets.TOKEN_FOR_ORG_MEMBERSHIP }} - PR_AUTHOR: ${{ github.event.pull_request.user.login }} - PR_NUMBER: ${{ github.event.pull_request.number }} - run: go run .github/scripts/docs-prs-reviews.go From 559ddd960920766cde36755ba06c1fc229131789 Mon Sep 17 00:00:00 2001 From: "Matt Linville (he/him)" Date: Tue, 2 Apr 2024 16:52:04 -0700 Subject: [PATCH 4/6] [DOC-9991] v24.1.0 alpha.5 release notes (#18433) * [DOC-9901] Publish release notes for v24.1.0-alpha.5 Co-authored-by: Kathryn Hancox <44557882+kathancox@users.noreply.github.com> --- src/current/_data/releases.yml | 27 ++++ .../releases/v24.1/v24.1.0-alpha.5.md | 116 ++++++++++++++++++ 2 files changed, 143 insertions(+) create mode 100644 src/current/_includes/releases/v24.1/v24.1.0-alpha.5.md diff --git a/src/current/_data/releases.yml b/src/current/_data/releases.yml index 65a920f3e41..481186082ba 100644 --- a/src/current/_data/releases.yml +++ b/src/current/_data/releases.yml @@ -5735,3 +5735,30 @@ docker_arm_limited_access: false source: true previous_release: v24.1.0-alpha.3 + +- release_name: v24.1.0-alpha.5 + major_version: v24.1 + release_date: '2024-04-01' + release_type: Testing + go_version: go1.22.0 + sha: 40cc14f35ef73ab5aed081329e2592301bc2254c + has_sql_only: true + has_sha256sum: true + mac: + mac_arm: true + mac_arm_experimental: true + mac_arm_limited_access: true + windows: true + linux: + linux_arm: true + linux_arm_experimental: false + linux_arm_limited_access: false + linux_intel_fips: true + linux_arm_fips: false + docker: + docker_image: cockroachdb/cockroach-unstable + docker_arm: true + docker_arm_experimental: false + docker_arm_limited_access: false + source: true + previous_release: v24.1.0-alpha.4 diff --git a/src/current/_includes/releases/v24.1/v24.1.0-alpha.5.md b/src/current/_includes/releases/v24.1/v24.1.0-alpha.5.md new file mode 100644 index 00000000000..774b76620c9 --- /dev/null +++ b/src/current/_includes/releases/v24.1/v24.1.0-alpha.5.md @@ -0,0 +1,116 @@ +## v24.1.0-alpha.5 + +Release Date: April 1, 2024 + +{% include releases/release-downloads-docker-image.md release=include.release %} + +

{{ site.data.products.enterprise }} edition changes

+ +- [Changefeeds]({% link v24.1/change-data-capture-overview.md %}) now default to evenly distributing their work across all replicas, including followers, regardless of leaseholder placement. To disable this behavior, set the [cluster setting]({% link v24.1/cluster-settings.md %}) `changefeed.balanced_distribution.enabled` to `false`. If disabled, changefeed planning reverts to its previous behavior for distributing work. [#120077][#120077] +- When [physical cluster replication]({% link v24.1/physical-cluster-replication-overview.md %}) is enabled, the output of the `SHOW VIRTUAL CLUSTER ... WITH REPLICATION STATUS` command now displays replication lag. [#120782][#120782] +- When [physical cluster replication]({% link v24.1/physical-cluster-replication-overview.md %}) is enabled, the output of the `SHOW VIRTUAL CLUSTER WITH REPLICATION STATUS to 1` command has changed: + - The output no longer displays `replication_job_id` or `service_mode` return fields. + - The `data_state` field has been renamed to `status`. + - The fields that are displayed are now ordered as follows: `retained_time`, `replicated_time`, `replication_lag`, `cutover_time`, `status`. [#120782][#120782] + +

SQL language changes

+ +- You can now specify a condition for the [PL/pgSQL statements]({% link v24.1/plpgsql.md %}) `EXIT` and `CONTINUE`. [#120686][#120686] +- A [stored procedure]({% link v24.1/stored-procedures.md %}) can now invoke another stored procedure using a [`CALL` statement]({% link v24.1/call.md %}). [#120674][#120674] +- You can now use a [`SET TRANSACTION`]({% link v24.1/set-transaction.md %}) statement within a [PL/pgSQL stored procedure]({% link v24.1/plpgsql.md %}) to configure the transaction isolation level, timestamp, or priority, or to set the transaction to read-only. A `SET TRANSACTION` statement must immediately follow a `COMMIT` or `ROLLBACK`, with no other statements or block boundaries between them. [#120456][#120456] +- The new [session variable]({% link v24.1/session-variables.md %}) `optimizer_use_virtual_computed_column_stats`, when enabled, configures the [cost-based optimizer]({% link v24.1/cost-based-optimizer.md %}) to use [table statistics]({% link v24.1/show-statistics.md %}) on virtual computed columns. [#120668][#120668] +- An [identity column]({% link v24.1/create-table.md %}#identity-columns) can now drop the `IDENTITY` constraint and related sequence using the following SQL statement: + + {% include_cached copy-clipboard.html %} + ~~~ sql + ALTER TABLE {table_name} ALTER COLUMN {column_name} DROP IDENTITY [IF EXISTS]; + ~~~ + + `IF EXISTS` is optional, and skips the command if the column is not an identity column. [#119263][#119263] + +- A shared lock that is acquired explicitly using [`SELECT FOR SHARE`]({% link v24.1/select-for-update.md %}) or implicitly by a [read-committed transaction]({% link v24.1/read-committed.md %}), can now be re-acquired with higher strength by either using a [`SELECT FOR UPDATE`]({% link v24.1/select-for-update.md %}) statement or by writing to the key. [#119671][#119671] +- [Stored procedures]({% link v24.1/stored-procedures.md %}) now support `OUT` and `INOUT` parameter classes. [#120851][#120851] +- The [PL/pgSQL]({% link v24.1/plpgsql.md %}) `EXIT` and `CONTINUE` statements can now use labels to specify which loop or block is the target. [#120733][#120733] + +

Operational changes

+ +- You can now enable asynchronous buffering of `file-group` [log sinks]({% link v24.1/configure-logs.md %}) using the `buffering` [configuration options]({% link v24.1/configure-logs.md %}#log-buffering-for-network-sinks) either by default or to an individual `file-group`. The `buffering` configuration option is incompatible with the `buffered-writes` configuration option. To try the `buffering` option, you must set `buffered-writes: false`. Cockroach Labs recommends setting `max-staleness` to `1s` and `flush-trigger-size` to `256KiB`. [#120428][#120428] +- A minimum [Raft scheduler]({% link v24.1/architecture/replication-layer.md %}#raft) concurrency is now enforced per store so that nodes with many stores do not spread workers too thin. This helps to avoid high scheduler latency across replicas on a store when load is imbalanced. [#120162][#120162] +- The new [metrics]({% link v24.1/metrics.md %}) `kv.split.estimated_stats` and `kv.split.total_bytes_estimates` track the number of splits that produce [MVCC]({% link v24.1/architecture/storage-layer.md %}#mvcc) statistic estimates and the total bytes of estimates produced. [#119894][#119894] +- The new [cluster setting]({% link v24.1/cluster-settings.md %}) `storage.sstable.compression_algorithm` configures the compression algorithm used when compressing sstable blocks. [#120784][#120784] +- The new [cluster setting]({% link v24.1/cluster-settings.md %}) `kv.dist_sender.proxy.enabled`, which is enabled by default, causes proxy requests to be routed through a follower replica when the leaseholder is unavailable. [#117340][#117340] +- The new startup flag `--wal-failover` allows you to explicitly set the path for WAL failover of a single-store node. [#120783][#120783] +- Cluster virtualization is now enabled using either of the new startup flags `--virtualized` or `--virtualized-empty` instead of the `--config-profile` flag. [#120813][#120813] +- The following metrics, which track the SQL statistics subsystem's task to flush in-memory statistics to persisted storage, are now more consistent with other metrics used in the subsystem. + - `sql.stats.flushes.successful`: Number of times SQL statistics have been flushed successfully to persistent storage. + - `sql.stats.flushes.failed`: Number of attempted SQL statistics flushes that failed with errors. + - `sql.stats.flush.latency`: The latency of attempted SQL statistics flushes to persistent storage, including both successes and failures. [#120709][#120709] +- The following new [metrics]({% link v24.1/metrics.md %}) track the number and outcome of proxy requests when `kv.dist_sender.proxy.enabled` is set to `true`: + - `distsender.rpc.proxy.sent` + - `distsender.rpc.proxy.err` + - `distsender.rpc.proxy.forward.sent` + - `distsender.rpc.proxy.forward.err` + + Cockroach Labs recommends monitoring and alerting on `distsender.rpc.proxy.sent`, because it indicates a possible network partition. [#120239][#120239] +- The `provisioned-rate` field of a node's store specification can no longer be used to add constraints for the disk name or bandwidth. By default, bandwidth is constrained according to the [cluster setting]({% link v24.1/cluster-settings.md %}) `kv.store.admission.provisioned_bandwidth`. To override this setting for a specific node, the storage specification must contain `provisioned-rate=bandwidth={bandwidth-bytes/s}`. [#120895][#120895] +- Removal of the [cluster setting]({% link v24.1/cluster-settings.md %}) `kv.rangefeed.scheduler.enabled`, which was announced in [v24.1.0-alpha.1](https://www.cockroachlabs.com/docs/releases/v24.1.html#v24-1-0-alpha-1), has been reverted, and the cluster setting is reinstated. [#121164][#121164] + +

DB Console changes

+ +- In generated statement fingerprints in the DB Console [**Statements** page]({% link v24.1/ui-statements-page.md %}), lists with only literals or placeholders or similar subexpressions are shortened to their first item followed by "__more__". [#120507][#120507] + +

Bug fixes

+ +- Fixed a bug introduced in v23.2 that could cause a [PL/pgSQL]({% link v24.1/plpgsql.md %}) routine to return incorrect results when the routine included: + 1. At least one parameter. + 1. An `IF` statement with one leak-proof branch and one branch with side effects. [#120451][#120451] +- Fixed a rare bug where a `BACKUP` command issued shortly after an [`ALTER TABLE {table_name} SET (exclude_data_from_backup = true)`]({% link v24.1/take-full-and-incremental-backups.md %}#exclude-a-tables-data-from-backups) could exclude data from an unrelated table from the backup. [#120188][#120188] +- Fixed a behavior where a memory exhaustion error during a schema change was treated as a permanent failure and reverted. Such schema changes are now retried instead of reverted. [#120806][#120806] +- Fixed a bug where the `attname` for a dropped column was not correctly padded with 8 `.` characters to be compatible with PostgreSQL. [#120861][#120861] + +

Performance improvements

+ +- Splits no longer hold latches for time proportional to the range size while computing MVCC statistics. Instead, MVCC statistics are pre-computed before the critical section of the split. As a side effect, the resulting statistics are no longer 100% accurate because they may correctly distribute writes concurrent with the split. To mitigate against this potential inaccuracy, and to prevent the statistics from drifting after successive splits, the existing stored statistics are re-computed and corrected if needed during the non-critical section of the split. [#119894][#119894] +- The [cost-based optimizer]({% link v24.1/cost-based-optimizer.md %}) now generates more efficient query plans for some queries with `OFFSET` clauses. [#121160][#121160] + +
+ +

Contributors

+ +This release includes 157 merged PRs by 44 authors. +We would like to thank the following contributors from the CockroachDB community: + +- Andrew Delph + +
+ + +[#117340]: https://github.com/cockroachdb/cockroach/pull/117340 +[#119263]: https://github.com/cockroachdb/cockroach/pull/119263 +[#119671]: https://github.com/cockroachdb/cockroach/pull/119671 +[#119894]: https://github.com/cockroachdb/cockroach/pull/119894 +[#120077]: https://github.com/cockroachdb/cockroach/pull/120077 +[#120162]: https://github.com/cockroachdb/cockroach/pull/120162 +[#120188]: https://github.com/cockroachdb/cockroach/pull/120188 +[#120239]: https://github.com/cockroachdb/cockroach/pull/120239 +[#120428]: https://github.com/cockroachdb/cockroach/pull/120428 +[#120451]: https://github.com/cockroachdb/cockroach/pull/120451 +[#120456]: https://github.com/cockroachdb/cockroach/pull/120456 +[#120507]: https://github.com/cockroachdb/cockroach/pull/120507 +[#120668]: https://github.com/cockroachdb/cockroach/pull/120668 +[#120674]: https://github.com/cockroachdb/cockroach/pull/120674 +[#120686]: https://github.com/cockroachdb/cockroach/pull/120686 +[#120709]: https://github.com/cockroachdb/cockroach/pull/120709 +[#120733]: https://github.com/cockroachdb/cockroach/pull/120733 +[#120782]: https://github.com/cockroachdb/cockroach/pull/120782 +[#120783]: https://github.com/cockroachdb/cockroach/pull/120783 +[#120784]: https://github.com/cockroachdb/cockroach/pull/120784 +[#120806]: https://github.com/cockroachdb/cockroach/pull/120806 +[#120813]: https://github.com/cockroachdb/cockroach/pull/120813 +[#120846]: https://github.com/cockroachdb/cockroach/pull/120846 +[#120851]: https://github.com/cockroachdb/cockroach/pull/120851 +[#120861]: https://github.com/cockroachdb/cockroach/pull/120861 +[#120895]: https://github.com/cockroachdb/cockroach/pull/120895 +[#121023]: https://github.com/cockroachdb/cockroach/pull/121023 +[#121160]: https://github.com/cockroachdb/cockroach/pull/121160 +[#121164]: https://github.com/cockroachdb/cockroach/pull/121164 From 5f8505df5918a28bb3e8e5c4d5a98700bc06adeb Mon Sep 17 00:00:00 2001 From: mikeCRL Date: Wed, 3 Apr 2024 12:30:06 -0400 Subject: [PATCH 5/6] Re-add pr-reviews check workflow --- .github/workflows/pr-reviews.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/pr-reviews.yml diff --git a/.github/workflows/pr-reviews.yml b/.github/workflows/pr-reviews.yml new file mode 100644 index 00000000000..1736a86a063 --- /dev/null +++ b/.github/workflows/pr-reviews.yml @@ -0,0 +1,29 @@ +name: PR Review +on: + pull_request_target: + types: + - opened + - reopened + - ready_for_review + - synchronize + - auto_merge_enabled + +jobs: + pr-review: + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@main + + - name: Set up Golang + uses: actions/setup-go@v4 + with: + go-version: '1.20' + + - name: Run PR review check + env: + GITHUB_TOKEN: ${{ secrets.TOKEN_FOR_ORG_MEMBERSHIP }} + PR_AUTHOR: ${{ github.event.pull_request.user.login }} + PR_NUMBER: ${{ github.event.pull_request.number }} + run: go run .github/scripts/docs-prs-reviews.go From 3f07eadcdf12b9ae169906c6fa517fb98bc2aaa3 Mon Sep 17 00:00:00 2001 From: Amruta Ranade <11484018+Amruta-Ranade@users.noreply.github.com> Date: Wed, 3 Apr 2024 12:40:42 -0400 Subject: [PATCH 6/6] Updated the Cloud Prod Checklist (#18434) * Updated the Cloud Prod Checklist * tiny change to bypass pr-review check --- src/current/cockroachcloud/production-checklist.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/current/cockroachcloud/production-checklist.md b/src/current/cockroachcloud/production-checklist.md index 8afc09e6118..c5ad4ed99b0 100644 --- a/src/current/cockroachcloud/production-checklist.md +++ b/src/current/cockroachcloud/production-checklist.md @@ -26,7 +26,7 @@ The customer is responsible for the following tasks: - Initiating major version upgrades and selecting maintenance windows for patch releases. - (Optional) Taking customer-owned backups. -This page provides important recommendations for CockroachDB {{ site.data.products.cloud }} production tasks for which the customer is responsible. +This page provides important recommendations for CockroachDB {{ site.data.products.cloud }} production tasks for which the customer is responsible. ## Deployment options @@ -36,10 +36,6 @@ Make sure your cluster has sufficient storage, CPU, and memory to handle the wor `raw data (storage, in GB) * replication factor (3 by default) * remove 40% to account for compression (0.6) * headroom (1.5-2)` -{{site.data.alerts.callout_info}} -CockroachDB {{ site.data.products.dedicated }} clusters can be created with a minimum of 2 vCPUs per node on AWS and GCP or 4 vCPUs per node on Azure. -{{site.data.alerts.end}} - For an example, refer to [Plan your Dedicated cluster]({% link cockroachcloud/plan-your-cluster.md %}). ## Topology patterns