Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v25.1.0-alpha.2 release notes #19285

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Conversation

taroface
Copy link
Contributor

@taroface taroface commented Jan 7, 2025

@taroface taroface requested a review from florence-crl January 7, 2025 21:38
Copy link

github-actions bot commented Jan 7, 2025

Files changed:

  • src/current/_data/releases.yml
  • src/current/_includes/releases/v25.1/v25.1.0-alpha.2.md:

Copy link

netlify bot commented Jan 7, 2025

Deploy Preview for cockroachdb-interactivetutorials-docs canceled.

Name Link
🔨 Latest commit 1f434c1
🔍 Latest deploy log https://app.netlify.com/sites/cockroachdb-interactivetutorials-docs/deploys/677ea82c9716e900080feaf0

Copy link

netlify bot commented Jan 7, 2025

Deploy Preview for cockroachdb-api-docs canceled.

Name Link
🔨 Latest commit 1f434c1
🔍 Latest deploy log https://app.netlify.com/sites/cockroachdb-api-docs/deploys/677ea82ce7ba680008b04c37

Copy link

netlify bot commented Jan 7, 2025

Netlify Preview

Name Link
🔨 Latest commit 1f434c1
🔍 Latest deploy log https://app.netlify.com/sites/cockroachdb-docs/deploys/677ea82c9b9653000810d5db
😎 Deploy Preview https://deploy-preview-19285--cockroachdb-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link
Contributor

@florence-crl florence-crl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm pending suggestions

- `DELETE` statements now acquire locks using the `FOR UPDATE` locking mode during their initial row scan in some cases, which improves performance for contended workloads. This behavior is configurable using the `enable_implicit_select_for_update` session variable. [#137069][#137069]
- Added support for `RETURNS TABLE` syntax when creating a user-defined function (UDF). [#137251][#137251]
- Added support for XA transactions, which allow CockroachDB to participate in distributed transactions with other resources (e.g., databases, message queues, etc.) using a two-phase commit protocol. [#129448][#129448]
- Added the `legacy_varchar_typing` session setting, which reverts the changes of [#133037](https://github.com/cockroachdb/cockroach/pull/133037) that causes the change in typing behavior described in [#137837](https://github.com/cockroachdb/cockroach/pull/137837). Specifically, it makes type-checking and overload resolution ignore the newly added "unpreferred" overloads. This setting defaults to `off`. [#137844][#137844]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Added the `legacy_varchar_typing` session setting, which reverts the changes of [#133037](https://github.com/cockroachdb/cockroach/pull/133037) that causes the change in typing behavior described in [#137837](https://github.com/cockroachdb/cockroach/pull/137837). Specifically, it makes type-checking and overload resolution ignore the newly added "unpreferred" overloads. This setting defaults to `off`. [#137844][#137844]
- Added the `legacy_varchar_typing` session setting, which reverts the changes of [#133037](https://github.com/cockroachdb/cockroach/pull/133037) that causes the change in typing behavior described in [#137837](https://github.com/cockroachdb/cockroach/pull/137837). Specifically, it makes type-checking and overload resolution ignore the newly added `unpreferred` overloads. This setting defaults to `off`. [#137844][#137844]

<h3 id="v25-1-0-alpha-2-operational-changes">Operational changes</h3>

- Added a new `sql.exec.latency.detail` histogram metric. This metric is labeled with its statement fingerprint. Enable this feature using the `sql.stats.detailed_latency_metrics.enabled` application setting. For workloads with over a couple thousand fingerprints, we advise caution in enabling `sql.stats.detailed_latency_metrics.enabled`. For most workloads, this ranges from dozens to hundreds. Use the new `sql.query.unique.count` count metric to estimate the cardinality of the set of all statement fingerprints. [#135924][#135924]
- Added a new configurable parameter `kv.transaction.max_intents_and_locks` that prevents transactions from creating too many intents. [#135945][#135945]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Added a new configurable parameter `kv.transaction.max_intents_and_locks` that prevents transactions from creating too many intents. [#135945][#135945]
- Added a new configurable cluster setting `kv.transaction.max_intents_and_locks` that prevents transactions from creating too many intents. [#135945][#135945]

- Added a new configurable parameter `kv.transaction.max_intents_and_locks` that prevents transactions from creating too many intents. [#135945][#135945]
- Added the metric `txn.count_limit_rejected`, which tracks the KV transactions that have been aborted because they exceeded the max number of writes and locking reads allowed. [#135945][#135945]
- Added the metric `txn.count_limit_on_response`, which tracks the number of KV transactions that have exceeded the count limit on a response. [#135945][#135945]
- `kvadmission.store.snapshot_ingest_bandwidth_control.enabled` is now 'true' by default. This will enable disk-bandwidth-based admission control for range snapshot ingests. It requires the provisioned bandwidth to be set using `kvadmission.store.provisioned_bandwidth`. [#137618][#137618]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `kvadmission.store.snapshot_ingest_bandwidth_control.enabled` is now 'true' by default. This will enable disk-bandwidth-based admission control for range snapshot ingests. It requires the provisioned bandwidth to be set using `kvadmission.store.provisioned_bandwidth`. [#137618][#137618]
- Cluster setting `kvadmission.store.snapshot_ingest_bandwidth_control.enabled` is now `true` by default. This will enable disk-bandwidth-based admission control for range snapshot ingests. It requires the provisioned bandwidth to be set using `kvadmission.store.provisioned_bandwidth`. [#137618][#137618]


<h3 id="v25-1-0-alpha-2-performance-improvements">Performance improvements</h3>

- Regular writes are now subject to admission control by default, meaning that non-quorum required replicas may not be told about new writes from the leader if they are unable to keep up. This brings a large performance improvement during instances where there is a large backlog of replication work towards a subset of node(s), such as node restarts. The setting can be reverted to the <=v24.3 default by setting `kvadmission.flow_control.mode` to `apply_to_elastic`. [#133860][#133860]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Regular writes are now subject to admission control by default, meaning that non-quorum required replicas may not be told about new writes from the leader if they are unable to keep up. This brings a large performance improvement during instances where there is a large backlog of replication work towards a subset of node(s), such as node restarts. The setting can be reverted to the <=v24.3 default by setting `kvadmission.flow_control.mode` to `apply_to_elastic`. [#133860][#133860]
- The default value of cluster setting `kvadmission.flow_control.mode` has been changed from `apply_to_elastic` to `apply_to_all`. Regular writes are now subject to admission control by default, meaning that non-quorum required replicas may not be told about new writes from the leader if they are unable to keep up. This brings a large performance improvement during instances where there is a large backlog of replication work towards a subset of node(s), such as node restarts. The setting can be reverted to the v24.3 and earlier default by setting `kvadmission.flow_control.mode` to `apply_to_elastic`. [#133860][#133860]

<h3 id="v25-1-0-alpha-2-bug-fixes">Bug fixes</h3>

- Fixed a bug that caused queries against tables with user-defined types to sometimes fail with errors after restoring those tables. [#137242][#137242]
- `REGIONAL BY ROW` tables with uniqueness constraints where the region is not part of those uniqueness constraints, and which also contain non-unique indices, will now have that uniqueness properly enforced when modified under `READ COMMITTED` isolation. This bug was introduced in v24.3.0. [#137361][#137361]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know that "indices" is a valid word, but it is not used in the public docs

Suggested change
- `REGIONAL BY ROW` tables with uniqueness constraints where the region is not part of those uniqueness constraints, and which also contain non-unique indices, will now have that uniqueness properly enforced when modified under `READ COMMITTED` isolation. This bug was introduced in v24.3.0. [#137361][#137361]
- `REGIONAL BY ROW` tables with uniqueness constraints where the region is not part of those uniqueness constraints, and which also contain non-unique indexes, will now have that uniqueness properly enforced when modified under `READ COMMITTED` isolation. This bug was introduced in v24.3.0. [#137361][#137361]

- Fixed a bug existing since v24.1 that would cause a set-returning UDF with `OUT` parameters to return a single row. [#137251][#137251]
- Previously, if a `STORED` computed column was added and it was a fixed-size type such as `VARCHAR(2)`, the computed values would not be checked to make sure they were not too large for the type. Now this validation is performed, which prevents an invalid computed column definition from being added to a table. [#137299][#137299]
- Previously, if a `VIRTUAL` computed column was added and it was a fixed-size type such as `VARCHAR(2)`, the computed values would not be checked to make sure they were not too large for the type. Now this validation is performed, which prevents an invalid computed column definition from being added to a table. [#137299][#137299]
- Removed duplicate columns in the parquet output from changefeeds using CDC queries. [#136718][#136718]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Removed duplicate columns in the parquet output from changefeeds using CDC queries. [#136718][#136718]
- Removed duplicate columns in the Parquet output from changefeeds using CDC queries. [#136718][#136718]

- Addressed a potential memory leak when parsing client session parameters for new connections. [#137627][#137627]
- Fixed an issue where adding an existing column with the `IF NOT EXISTS` option could exit too early, skipping necessary handling of the abstract syntax tree (AST). This could cause the `ALTER TABLE ... ADD COLUMN` statement to fail. [#137633][#137633]
- Fixed an issue where a schema change could incorrectly cause a changefeed to fail with an assertion error like `received boundary timestamp ... of type ... before reaching existing boundary of type ...`. [#137567][#137567]
- Internal scans are now exempt from the `sql.defaults.disallow_full_table_scans.enabled` cluster setting. This allows index creation even when the setting is active. [#137681][#137681]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Internal scans are now exempt from the `sql.defaults.disallow_full_table_scans.enabled` cluster setting. This allows index creation even when the setting is active. [#137681][#137681]
- Internal scans are now exempt from the `sql.defaults.disallow_full_table_scans.enabled` cluster setting. This allows index creation even when the setting is enabled. [#137681][#137681]

- Fixed an issue where a schema change could incorrectly cause a changefeed to fail with an assertion error like `received boundary timestamp ... of type ... before reaching existing boundary of type ...`. [#137567][#137567]
- Internal scans are now exempt from the `sql.defaults.disallow_full_table_scans.enabled` cluster setting. This allows index creation even when the setting is active. [#137681][#137681]
- Fixed a bug that would cause an internal error when the result of a `RECORD`-returning `UDF` was wrapped by another expression (such as `COALESCE`) within a `VALUES` clause. [#129706][#129706]
- `CLOSE CURSOR` statements are now allowed in read-only transactions, similarly to PostgreSQL. The bug has been present since at least v23.1. [#137744][#137744]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `CLOSE CURSOR` statements are now allowed in read-only transactions, similarly to PostgreSQL. The bug has been present since at least v23.1. [#137744][#137744]
- `CLOSE CURSOR` statements are now allowed in read-only transactions, similar to PostgreSQL. The bug has been present since at least v23.1. [#137744][#137744]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants