From 360a2c7327b1f71f1407ec1fa34f84f88be0b999 Mon Sep 17 00:00:00 2001 From: Ryan Kuo Date: Thu, 13 Jun 2024 12:08:47 -0400 Subject: [PATCH] fix links; some tweaks --- src/current/_data/releases.yml | 2 +- .../_includes/releases/v24.1/v24.1.1.md | 48 +++++++++---------- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/current/_data/releases.yml b/src/current/_data/releases.yml index f53b660b05f..59c12a87f18 100644 --- a/src/current/_data/releases.yml +++ b/src/current/_data/releases.yml @@ -5469,7 +5469,7 @@ This version is currently available only to select CockroachDB Cloud clusters. To request to upgrade a CockroachDB Self-Hosted cluster to this version, - [contact Support](https://support.cockroachlabs.com/hc/en-us/requests/new). + [contact Support](https://support.cockroachlabs.com/hc/requests/new). - release_name: v23.1.15 major_version: v23.1 diff --git a/src/current/_includes/releases/v24.1/v24.1.1.md b/src/current/_includes/releases/v24.1/v24.1.1.md index 459e78faf9d..f208422f941 100644 --- a/src/current/_includes/releases/v24.1/v24.1.1.md +++ b/src/current/_includes/releases/v24.1/v24.1.1.md @@ -12,54 +12,52 @@ Release Date: June 14, 2024 - There were multiple target tables with significant differences in row counts in one changefeed. - The changefeed target tables were large with many ranges. - The initial scan took a long time to complete (an hour or longer). [#123967][#123967] -- History retention jobs created upon completion of [cluster replication]({% link {{ page.version.version }}/physical-cluster-replication-overview.md %}) no longer erroneously indicate that they failed when they expire. [#124055][#124055] +- History retention jobs created upon completion of [cluster replication]({% link v24.1/physical-cluster-replication-overview.md %}) no longer erroneously indicate that they failed when they expire. [#124055][#124055]

SQL language changes

-- The [optimizer]({% link {{ page.version.version }}/cost-based-optimizer.md %}) can now plan constrained scans over partial indexes in more cases, particularly on partial indexes with predicates referencing [virtual computed columns]({% link {{ page.version.version }}/computed-columns.md %}#virtual-computed-columns). [#123468][#123468] +- The [optimizer]({% link v24.1/cost-based-optimizer.md %}) can now plan constrained scans over partial indexes in more cases, particularly on partial indexes with predicates referencing [virtual computed columns]({% link v24.1/computed-columns.md %}#virtual-computed-columns). [#123468][#123468] - The storage parameter `ttl_delete_rate_limit`, which determines the rate limit for deleting expired rows, is now set to `100` by default. [#124354][#124354] -- CockroachDB no longer limits precision when converting [spatial data types]({% link {{ page.version.version }}/architecture/glossary#data-types.md %}) to JSON. [#124536][#124536] -- The `optimizer_push_offset_into_index_join` [session setting]({% link {{ page.version.version }}/session-variables.md %}) has been added. When enabled, the [optimizer]({% link {{ page.version.version }}/cost-based-optimizer.md %}) will attempt to push offset expressions into index join expressions to produce more efficient query plans. The setting is enabled by default on v24.1 and later, and disabled on v23.2. [#124490][#124490] -- The default value of the `sql.defaults.results_buffer.size` [cluster setting]({% link {{ page.version.version }}/cluster-settings.md %}) has been changed from 16KiB to 512KiB. This reduces the chance that clients using [`READ COMMITTED`]({% link {{ page.version.version }}/read-committed.md %}) transactions will encounter errors that cannot automatically be retried within CockroachDB. [#124633][#124633] +- CockroachDB no longer limits precision when converting [spatial data types]({% link v24.1/architecture/glossary.md %}#data-types) to JSON. [#124536][#124536] +- The `optimizer_push_offset_into_index_join` [session setting]({% link v24.1/session-variables.md %}) has been added. When enabled, the [optimizer]({% link v24.1/cost-based-optimizer.md %}) will attempt to push offset expressions into index join expressions to produce more efficient query plans. The setting is enabled by default on v24.1 and later, and disabled on v23.2. [#124490][#124490] +- The default value of the `sql.defaults.results_buffer.size` [cluster setting]({% link v24.1/cluster-settings.md %}) has been changed from 16KiB to 512KiB. This reduces the chance that clients using [`READ COMMITTED`]({% link v24.1/read-committed.md %}) transactions will encounter errors that cannot automatically be retried within CockroachDB. [#124633][#124633]

Operational changes

-- The default limit for in-memory statement and transaction fingerprints has been lowered from 100,000 to 5000. This affects the [cluster settings]({% link {{ page.version.version }}/cluster-settings.md %}) `sql.metrics.max_mem_stmt_fingerprints` and `sql.metrics.max_mem_txn_fingerprints`. [#123430][#123430] -- The new `sql.pgwire.pipeline.count` [gauge metric]({% link {{ page.version.version }}/metrics.md %}) shows the number of wire protocol commands that have been received by the server, but have not yet begun processing. This metric will only grow if clients are using the "pipeline mode" of the PostgreSQL wire protocol. [#124256][#124256] -- The `client_authentication_ok` and `client_session_end` messages are now logged to the `SESSIONS` [log channel]({% link {{ page.version.version }}/logging-overview.md %}#logging-channels) unconditionally. Previously, these would be logged only if the `server.auth_log.sql_sessions.enabled` [cluster setting]({% link {{ page.version.version }}/cluster-settings.md %}) was set to `true`. All other `SESSIONS` log messages are logged only if `server.auth_log.sql_sessions.enabled` or `server.auth_log.sql_connections.enabled` are set to `true`. To prevent logging of `client_authentication_ok` or `client_session_end` messages, you can optionally disable the `SESSIONS` log channel. [#124369][#124369] +- The default values for the [cluster settings]({% link v24.1/cluster-settings.md %}) `sql.metrics.max_mem_stmt_fingerprints` and `sql.metrics.max_mem_txn_fingerprints` have been changed from `100000` to `5000`, thus lowering the default limits for in-memory statement and transaction fingerprints. [#123430][#123430] +- The new `sql.pgwire.pipeline.count` [gauge metric]({% link v24.1/metrics.md %}) shows the number of wire protocol commands that have been received by the server, but have not yet begun processing. This metric will only grow if clients are using the "pipeline mode" of the PostgreSQL wire protocol. [#124256][#124256] +- The `client_authentication_ok` and `client_session_end` messages are now logged to the `SESSIONS` [log channel]({% link v24.1/logging-overview.md %}#logging-channels) unconditionally. Previously, these would be logged only if the `server.auth_log.sql_sessions.enabled` [cluster setting]({% link v24.1/cluster-settings.md %}) was set to `true`. All other `SESSIONS` log messages are logged only if `server.auth_log.sql_sessions.enabled` or `server.auth_log.sql_connections.enabled` are set to `true`. To prevent logging of `client_authentication_ok` or `client_session_end` messages, you can optionally disable the `SESSIONS` log channel. [#124369][#124369]

DB Console changes

-- Fixed a bug where the [replication lag metric]({% link {{ page.version.version }}/physical-cluster-replication-monitoring.md %}) would falsely report high lag for multi-node clusters and on cutover. [#123585][#123585] +- Fixed a bug where the [replication lag metric]({% link v24.1/physical-cluster-replication-monitoring.md %}) would falsely report high lag for multi-node clusters and on cutover. [#123585][#123585] - Fixed a bug that caused [**SQL Activity**]({% link v23.2/ui-sql-dashboard.md %}) entries sorted by `% of Runtime` to be sorted incorrectly. [#123903][#123903] - The "Admission Delay Rate", "Admission Work Rate", and "Requests Waiting For Flow Tokens" time-series charts have been removed from the DB Console. These charts can be difficult to interpret and provide little value for overload investigations. [#124509][#124509] -- The [**Overload** dashboard]({% link {{ page.version.version }}/ui-overload-dashboard.md %}) now includes descriptions for all metrics. [#124509][#124509] -- Metrics on the [**Overload** dashboard]({% link {{ page.version.version }}/ui-overload-dashboard.md %}) have been reordered to improve their categorization. The metrics are now roughly in the following order: 1. Metrics to help determine which resource is constrained (IO, CPU); 2. Metrics to narrow down which [admission control]({% link {{ page.version.version }}/admission-control.md %}) queues are seeing requests waiting; 3. More advanced metrics about system health (goroutine scheduler, L0 sublevels, etc.). [#124509][#124509] -- New metrics `cr.store.storage.l0-sublevels` and `cr.node.go.scheduler_latency-p99.9` on the [**Overload** dashboard]({% link {{ page.version.version }}/ui-overload-dashboard.md %}) provide better visibility into overloaded resources. [#124509][#124509] +- The [**Overload** dashboard]({% link v24.1/ui-overload-dashboard.md %}) now includes descriptions for all metrics. [#124509][#124509] +- Metrics on the [**Overload** dashboard]({% link v24.1/ui-overload-dashboard.md %}) have been reordered to improve their categorization. The metrics are now roughly in the following order: 1. Metrics to help determine which resource is constrained (IO, CPU); 2. Metrics to narrow down which [admission control]({% link v24.1/admission-control.md %}) queues are seeing requests waiting; 3. More advanced metrics about system health (goroutine scheduler, L0 sublevels, etc.). [#124509][#124509] +- New metrics `cr.store.storage.l0-sublevels` and `cr.node.go.scheduler_latency-p99.9` on the [**Overload** dashboard]({% link v24.1/ui-overload-dashboard.md %}) provide better visibility into overloaded resources. [#124509][#124509] - There are now four separate graphs for Admission Queue Delay: 1. Foreground (regular) CPU work; 2. Store (IO) work; 3. Background (elastic) CPU work; 4. Replication Admission Control (store overload on replicas). [#124509][#124509] -- The `Admission Queueing Delay – Store` chart now separates elastic (background) work from the regular foreground work. [#124509][#124509] -- The `Admission IO Tokens Exhausted` chart now separates elastic and regular IO work. [#124509][#124509]

Bug fixes

-- Fixed a bug that would occur when [`ALTER TYPE ... DROP VALUE`]({% link {{ page.version.version }}/alter-type.md %}) is followed by `DROP SCHEMA CASCADE ...` in the same transaction. Previously, the `ALTER TYPE` schema change would get queued up to run at commit time, but by that point, the type may have already been removed, so the commit could fail. [#123577][#123577] +- Fixed a bug that would occur when [`ALTER TYPE ... DROP VALUE`]({% link v24.1/alter-type.md %}) is followed by `DROP SCHEMA CASCADE ...` in the same transaction. Previously, the `ALTER TYPE` schema change would get queued up to run at commit time, but by that point, the type may have already been removed, so the commit could fail. [#123577][#123577] - Tables are now automatically repaired when the errors `invalid inbound foreign key ... origin table ID should be ...` or `invalid outbound foreign key ... reference table ID should be ...` occur. [#123668][#123668] -- Fixed a bug where a failed [`RESTORE`]({% link {{ page.version.version }}/restore.md %}) could leave the system in a state where re-attempting the restore was not possible without manual intervention. [#123205][#123205] +- Fixed a bug where a failed [`RESTORE`]({% link v24.1/restore.md %}) could not be retried without manual intervention. [#123205][#123205] - Fixed a bug introduced in alpha versions of v23.1 where calling a routine could result in an unexpected `function ... does not exist` error. The bug is triggered when the routine is called twice using the exact same SQL query, and either: (a) the routine has polymorphic arguments, or: (b) between the two calls, the routine is replaced by a routine with the same name and different parameters. [#123516][#123516] -- Fixed a rare bug where a lease transfer could lead to a `side-transport update saw closed timestamp regression` panic. The bug could occur when a node was overloaded and [failing to heartbeat its node liveness record]({% link {{ page.version.version }}/cluster-setup-troubleshooting.md %}#node-liveness-issues). [#123533][#123533] -- Fixed a crash introduced in v24.1.0-beta.2 that could occur when planning statistics collection on a table with a [virtual computed column]({% link {{ page.version.version }}/computed-columns.md %}#virtual-computed-columns) using a user-defined type when the newly-introduced [cluster setting]({% link {{ page.version.version }}/cluster-settings.md %}) `sql.stats.virtual_computed_columns.enabled` is set to `true`. (The setting was introduced in v24.1.0-alpha.1, and defaults to `true`.) [#124060][#124060] -- Fixed a bug where an [`ALTER TABLE ... ALTER PRIMARY KEY`]({% link {{ page.version.version }}/alter-table.md %}#alter-primary-key) statement could hang if the table had any indexes that were referred to by [views]({% link {{ page.version.version }}/views.md %}) or [functions]({% link {{ page.version.version }}/functions-and-operators.md %}) using the `FORCE INDEX` clause. [#124323][#124323] -- Fixed a bug introduced in v24.1.0 where the `max_decimal_digits` argument of the `st_geojson` [builtin function]({% link {{ page.version.version }}/functions-and-operators.md %}#built-in-functions) was ignored and the default was used instead. [#124502][#124502] +- Fixed a rare bug where a lease transfer could lead to a `side-transport update saw closed timestamp regression` panic. The bug could occur when a node was overloaded and [failing to heartbeat its node liveness record]({% link v24.1/cluster-setup-troubleshooting.md %}#node-liveness-issues). [#123533][#123533] +- Fixed a crash introduced in v24.1.0-beta.2 that could occur when planning statistics collection on a table with a [virtual computed column]({% link v24.1/computed-columns.md %}#virtual-computed-columns) using a [user-defined type]({% link v24.1/create-type.md %}) when the newly-introduced [cluster setting]({% link v24.1/cluster-settings.md %}) `sql.stats.virtual_computed_columns.enabled` is set to `true`. (The setting was introduced in v24.1.0-alpha.1, and defaults to `true`.) [#124060][#124060] +- Fixed a bug where an [`ALTER TABLE ... ALTER PRIMARY KEY`]({% link v24.1/alter-table.md %}#alter-primary-key) statement could hang if the table had any indexes that were referred to by [views]({% link v24.1/views.md %}) or [functions]({% link v24.1/functions-and-operators.md %}) using the `FORCE INDEX` clause. [#124323][#124323] +- Fixed a bug introduced in v24.1.0 where the `max_decimal_digits` argument of the `st_geojson` [builtin function]({% link v24.1/functions-and-operators.md %}#built-in-functions) was ignored and the default was used instead. [#124502][#124502] - Scattering a range with a replication factor of 1 now no longer erroneously up-replicates the range to two replicas. Leases will also no longer thrash between nodes when perturbed with a replication factor of 1. [#124453][#124453] -- Fixed a bug where, if the `ttl_row_stats_poll_interval` storage parameter was non-zero for a table with [row-level TTL]({% link {{ page.version.version }}/row-level-ttl.md %}) enabled, the queries issued to update row statistics could block the job from completing. Now, if the job completes, these statistics queries are cancelled. This means that the `jobs.row_level_ttl.total_rows` and `jobs.row_level_ttl.total_expired_rows` metrics will report `0` if the job finishes before the row stats queries complete. [#124627][#124627] -- Fixed a bug where a [`DROP ROLE`]({% link {{ page.version.version }}/drop-role.md %}) or [`DROP USER`]({% link {{ page.version.version }}/drop-user.md %}) command could leave references behind inside types, which could prevent subsequent [`SHOW GRANTS`]({% link {{ page.version.version }}/show-grants.md %}) commands from working. [#124619][#124619] -- Fixed a bug where the `results_buffer_size` [session variable]({% link {{ page.version.version }}/session-variables.md %}) could not be configured by using the "options" query parameter in the connection string, but only as a top-level query parameter. Now, `results_buffer_size` can be configured in either part of the connection string. This variable still cannot be changed with the [`SET`]({% link {{ page.version.version }}/set-vars.md %}) command after the session begins. [#124775][#124775] -- Fixed a bug introduced in v20.2 where a change to a user-defined type could cause queries against tables using that type to fail with an error message like `histogram.go:694: span must be fully contained in the bucket`. The change to the user-defined type could come directly from an [`ALTER TYPE`]({% link {{ page.version.version }}/alter-type.md %}) statement, or indirectly from an [`ALTER DATABASE ... ADD REGION`]({% link {{ page.version.version }}/alter-database.md %}#add-region) or [`DROP REGION`]({% link {{ page.version.version }}/alter-database.md %}#drop-region) statement (which implicitly change the `crdb_internal_region` type). [#124856][#124856] +- Fixed a bug where, if the `ttl_row_stats_poll_interval` storage parameter was non-zero for a table with [row-level TTL]({% link v24.1/row-level-ttl.md %}) enabled, the queries issued to update row statistics could block the job from completing. Now, if the job completes, these statistics queries are cancelled. This means that the `jobs.row_level_ttl.total_rows` and `jobs.row_level_ttl.total_expired_rows` metrics will report `0` if the job finishes before the row stats queries complete. [#124627][#124627] +- Fixed a bug where a [`DROP ROLE`]({% link v24.1/drop-role.md %}) or [`DROP USER`]({% link v24.1/drop-user.md %}) command could leave references behind inside types, which could prevent subsequent [`SHOW GRANTS`]({% link v24.1/show-grants.md %}) commands from working. [#124619][#124619] +- Fixed a bug where the `results_buffer_size` [session variable]({% link v24.1/session-variables.md %}) could not be configured by using the "options" query parameter in the connection string, but only as a top-level query parameter. Now, `results_buffer_size` can be configured in either part of the connection string. This variable still cannot be changed with the [`SET`]({% link v24.1/set-vars.md %}) command after the session begins. [#124775][#124775] +- Fixed a bug introduced in v20.2 where a change to a [user-defined type]({% link v24.1/create-type.md %}) could cause queries against tables using that type to fail with an error message like `histogram.go:694: span must be fully contained in the bucket`. The change to the user-defined type could come directly from an [`ALTER TYPE`]({% link v24.1/alter-type.md %}) statement, or indirectly from an [`ALTER DATABASE ... ADD REGION`]({% link v24.1/alter-database.md %}#add-region) or [`DROP REGION`]({% link v24.1/alter-database.md %}#drop-region) statement (which implicitly change the `crdb_internal_region` type). [#124856][#124856]

Performance improvements

- Improved the efficiency of error handling in the [vectorized execution engine]({% link v24.1/vectorized-execution.md %}) in order to reduce the CPU overhead of statement timeout handling and reduce the potential for more statement timeouts. [#123499][#123499] -- Due to its poor performance, a [changefeed]({% link {{ page.version.version }}/change-data-capture.md %}) optimization that aimed to reduce duplicates during aggregator restarts due to its bad performance has been disabled. [#125021][#125021] +- Due to its poor performance, a [changefeed]({% link v24.1/change-data-capture-overview.md %}) optimization that aimed to reduce duplicates during aggregator restarts due to its bad performance has been disabled. [#125021][#125021]