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

Merged
merged 4 commits into from
Jan 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions src/current/_data/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7733,3 +7733,30 @@
docker_arm_limited_access: false
source: true
previous_release: v23.2.17

- release_name: v25.1.0-alpha.2
major_version: v25.1
release_date: '2025-01-09'
release_type: Testing
go_version: go1.22.8
sha: 0a82539a44f38b6cb94c4d15d791537d3afbd200
has_sql_only: true
has_sha256sum: true
mac:
mac_arm: true
mac_arm_experimental: true
mac_arm_limited_access: false
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: v25.1.0-alpha.1
152 changes: 152 additions & 0 deletions src/current/_includes/releases/v25.1/v25.1.0-alpha.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
## v25.1.0-alpha.2

Release Date: January 9, 2025

{% include releases/new-release-downloads-docker-image.md release=include.release %}

<h3 id="v25-1-0-alpha-2-backward-incompatible-changes">Backward-incompatible changes</h3>

- Altering a paused backup schedule's recurrence or location no longer resumes the schedule. [#134829][#134829]
- `BACKUP`/`RESTORE` statements no longer return index entries and bytes backed up/restored. [#134516][#134516]

<h3 id="v25-1-0-alpha-2-general-changes">General changes</h3>

- The PTS (protected timestamp) records of running changefeeds are now updated when the set of targets changes, such as when system tables are added to the protected tables list. [#137548][#137548]

<h3 id="v25-1-0-alpha-2-sql-language-changes">SQL language changes</h3>

- DistSQL physical planning decisions under `distsql=auto` mode have been adjusted as follows:
- Aggregation and general sort operations that process a small number of rows (fewer than `1000` by default, configurable via the `distribute_group_by_row_count_threshold` and `distribute_sort_row_count_threshold` session variables for aggregations and sorts, respectively) no longer force the plan distribution.
- The top K sort over a large set of rows (`1000` by default, controlled via the `distribute_sort_row_count_threshold` session variable) will now force the plan distribution.
- Full table scans estimated to read a certain number of rows (fewer than `10000` by default, controlled via the new `distribute_scan_row_count_threshold` session variable) no longer force the plan distribution.
- The new `always_distribute_full_scans` session variable now defaults to `true` to match the previous behavior of always distributing full scans.
- Large constrained table scans estimated to read a certain number of rows (at least `10000` by default, controlled via the `distribute_scan_row_count_threshold` session variable) will now force the plan distribution. [#137072][#137072]
- Hash and merge joins for which both inputs produce a small number of rows (less than `1000` combined by default, configurable via the `distribute_join_row_count_threshold` session variable) no longer force the plan distribution. [#137562][#137562]
- `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]
taroface marked this conversation as resolved.
Show resolved Hide resolved
- Added support for a new index hint, `AVOID_FULL_SCAN`, which will prevent the optimizer from planning a full scan for the specified table if any other plan is possible. The hint can be used in the same way as other existing index hints. For example, `SELECT * FROM table_name@{AVOID_FULL_SCAN};`. This hint is similar to `NO_FULL_SCAN`, but will not error if a full scan cannot be avoided. Note that a full scan of a partial index would not normally be considered a "full scan" for the purposes of the `AVOID_FULL_SCAN` and `NO_FULL_SCAN` hints, but if the user has explicitly forced the partial index via `FORCE_INDEX=index_name`, it is considered a full scan. [#137984][#137984]
- Added a new session setting `avoid_full_table_scans_in_mutations`, which when set to `true` (default), causes the optimizer to avoid planning full table scans for mutation queries if any other plan is possible. [#137984][#137984]
- `ALTER JOB ... OWNER TO` can now be used to transfer ownership of a job between users/roles. [#138139][#138139]

<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 cluster setting `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]
- 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]
- The `changefeed.max_behind_nanos` metric now supports scoping with metric labels. [#137534][#137534]

<h3 id="v25-1-0-alpha-2-command-line-changes">Command-line changes</h3>

- Previously, the `--include-files` and `--exclude-files` file filters in `cockroach debug zip` only applied to heap profiles, CPU profiles, goroutines, and logs. The filters now apply to most of the cluster-wide and per-node data captured in the debug zip. This improves `debug zip` performance. Example command: `cockroach debug zip debug.zip --redact --insecure --include-files="*" --exclude-files="*.log"`. [#136098][#136098]

<h3 id="v25-1-0-alpha-2-db-console-changes">DB Console changes</h3>

- Copy-pasting links to preset timescale views on the DB Console **Metrics** page now reflects those presets accurately (e.g., a URL looking at "last 6 hours" will always show the last 6 hours and update automatically). Clicking the **Now** button on the **Metrics** page will automatically select the live updating preset most closely matching the current inverval. If you are viewing an arbitrary 4-hour interval, the "last 6 hours" preset will be selected. [#136170][#136170]

<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 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]
- 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 enabled. [#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, similar to PostgreSQL. The bug has been present since at least v23.1. [#137744][#137744]
- Fixed a bug where querying the `pg_catalog.pg_constraint` table while the schema changer was dropping a constraint could result in a query error. [#137860][#137860]
- Fixed a timing issue between `ALTER VIEW ... RENAME` and `DROP VIEW` that caused repeated failures in the `DROP VIEW` job. [#137868][#137868]
- The `pg_catalog.pg_type` table no longer contains `NULL` values for the columns `typinput`, `typoutput`, `typreceive`, and `typsend`. `NULL` values were erroneously added for these columns for the `trigger` type in v24.3.0. This could cause unexpected errors with some client libraries. [#137928][#137928]
- `ALTER BACKUP SCHEDULE` no longer fails on schedules whose collection URI contains a space. [#137948][#137948]
- Previously in some cases, CockroachDB could encounter an internal error `comparison of two different versions of enum` when a user-defined type was modified within a transaction and the following statements read the column of that user-defined type. The bug was introduced in v24.2 and is now fixed. [#137960][#137960]
- Previously `SHOW CREATE TABLE` was showing incorrect data with regard to inverted indexes. It now shows the correct data that can be repeatedly entered back into CockroachDB to recreate the same table. [#138043][#138043]
- Resolved an issue in the Kafka sink configuration within CockroachDB, where users were previously unable to set negative GZIP compression levels. Now, users can configure the `CompressionLevel` for the Kafka sink in the range of `[-2, 9]`. [#137646][#137646]
- Users should no longer see console errors when visiting the **Databases** page directly after node/SQL pod startup. [#137993][#137993]

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

- 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]

[#129448]: https://github.com/cockroachdb/cockroach/pull/129448
[#129706]: https://github.com/cockroachdb/cockroach/pull/129706
[#133860]: https://github.com/cockroachdb/cockroach/pull/133860
[#134516]: https://github.com/cockroachdb/cockroach/pull/134516
[#134829]: https://github.com/cockroachdb/cockroach/pull/134829
[#135924]: https://github.com/cockroachdb/cockroach/pull/135924
[#135945]: https://github.com/cockroachdb/cockroach/pull/135945
[#136098]: https://github.com/cockroachdb/cockroach/pull/136098
[#136170]: https://github.com/cockroachdb/cockroach/pull/136170
[#136718]: https://github.com/cockroachdb/cockroach/pull/136718
[#137069]: https://github.com/cockroachdb/cockroach/pull/137069
[#137072]: https://github.com/cockroachdb/cockroach/pull/137072
[#137080]: https://github.com/cockroachdb/cockroach/pull/137080
[#137216]: https://github.com/cockroachdb/cockroach/pull/137216
[#137242]: https://github.com/cockroachdb/cockroach/pull/137242
[#137251]: https://github.com/cockroachdb/cockroach/pull/137251
[#137277]: https://github.com/cockroachdb/cockroach/pull/137277
[#137278]: https://github.com/cockroachdb/cockroach/pull/137278
[#137299]: https://github.com/cockroachdb/cockroach/pull/137299
[#137311]: https://github.com/cockroachdb/cockroach/pull/137311
[#137312]: https://github.com/cockroachdb/cockroach/pull/137312
[#137361]: https://github.com/cockroachdb/cockroach/pull/137361
[#137432]: https://github.com/cockroachdb/cockroach/pull/137432
[#137534]: https://github.com/cockroachdb/cockroach/pull/137534
[#137548]: https://github.com/cockroachdb/cockroach/pull/137548
[#137562]: https://github.com/cockroachdb/cockroach/pull/137562
[#137567]: https://github.com/cockroachdb/cockroach/pull/137567
[#137618]: https://github.com/cockroachdb/cockroach/pull/137618
[#137627]: https://github.com/cockroachdb/cockroach/pull/137627
[#137633]: https://github.com/cockroachdb/cockroach/pull/137633
[#137641]: https://github.com/cockroachdb/cockroach/pull/137641
[#137646]: https://github.com/cockroachdb/cockroach/pull/137646
[#137681]: https://github.com/cockroachdb/cockroach/pull/137681
[#137744]: https://github.com/cockroachdb/cockroach/pull/137744
[#137748]: https://github.com/cockroachdb/cockroach/pull/137748
[#137751]: https://github.com/cockroachdb/cockroach/pull/137751
[#137752]: https://github.com/cockroachdb/cockroach/pull/137752
[#137754]: https://github.com/cockroachdb/cockroach/pull/137754
[#137755]: https://github.com/cockroachdb/cockroach/pull/137755
[#137831]: https://github.com/cockroachdb/cockroach/pull/137831
[#137844]: https://github.com/cockroachdb/cockroach/pull/137844
[#137850]: https://github.com/cockroachdb/cockroach/pull/137850
[#137860]: https://github.com/cockroachdb/cockroach/pull/137860
[#137868]: https://github.com/cockroachdb/cockroach/pull/137868
[#137927]: https://github.com/cockroachdb/cockroach/pull/137927
[#137928]: https://github.com/cockroachdb/cockroach/pull/137928
[#137930]: https://github.com/cockroachdb/cockroach/pull/137930
[#137948]: https://github.com/cockroachdb/cockroach/pull/137948
[#137960]: https://github.com/cockroachdb/cockroach/pull/137960
[#137984]: https://github.com/cockroachdb/cockroach/pull/137984
[#137993]: https://github.com/cockroachdb/cockroach/pull/137993
[#138043]: https://github.com/cockroachdb/cockroach/pull/138043
[#138139]: https://github.com/cockroachdb/cockroach/pull/138139
[05f8645d4]: https://github.com/cockroachdb/cockroach/commit/05f8645d4
[0c54b58e4]: https://github.com/cockroachdb/cockroach/commit/0c54b58e4
[0ed446640]: https://github.com/cockroachdb/cockroach/commit/0ed446640
[17f161901]: https://github.com/cockroachdb/cockroach/commit/17f161901
[1859d7674]: https://github.com/cockroachdb/cockroach/commit/1859d7674
[47771b169]: https://github.com/cockroachdb/cockroach/commit/47771b169
[51b3f09b0]: https://github.com/cockroachdb/cockroach/commit/51b3f09b0
[7c758d431]: https://github.com/cockroachdb/cockroach/commit/7c758d431
[876036c5f]: https://github.com/cockroachdb/cockroach/commit/876036c5f
[8cb26df65]: https://github.com/cockroachdb/cockroach/commit/8cb26df65
[95025dbd5]: https://github.com/cockroachdb/cockroach/commit/95025dbd5
[9c5816acf]: https://github.com/cockroachdb/cockroach/commit/9c5816acf
[a1de65ee3]: https://github.com/cockroachdb/cockroach/commit/a1de65ee3
[a8d331eef]: https://github.com/cockroachdb/cockroach/commit/a8d331eef
[ae04da909]: https://github.com/cockroachdb/cockroach/commit/ae04da909
[ae3ea37f5]: https://github.com/cockroachdb/cockroach/commit/ae3ea37f5
[aefb58262]: https://github.com/cockroachdb/cockroach/commit/aefb58262
[c34f407ee]: https://github.com/cockroachdb/cockroach/commit/c34f407ee
[c67e40dbf]: https://github.com/cockroachdb/cockroach/commit/c67e40dbf
[d81743d9b]: https://github.com/cockroachdb/cockroach/commit/d81743d9b
[db826f826]: https://github.com/cockroachdb/cockroach/commit/db826f826
[e8d19c442]: https://github.com/cockroachdb/cockroach/commit/e8d19c442
[ef1ff4e15]: https://github.com/cockroachdb/cockroach/commit/ef1ff4e15
Loading