Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
6cacd8b
Initial v25.4.0 feature highlights
mikeCRL Oct 30, 2025
3a57b31
Merge branch 'main' into v25.4-GA
mikeCRL Oct 31, 2025
b61ba96
Data file updates
mikeCRL Oct 31, 2025
b52d953
Remove blank line in versions.csv
mikeCRL Oct 31, 2025
cf7afb5
Update cluster setting changes
mikeCRL Oct 31, 2025
a9e324a
Cluster setting change updates
mikeCRL Oct 31, 2025
c91a9f6
In cluster-setting-changes.md and v25.4.0-alpha.1.md, replace v26.1 w…
florence-crl Oct 31, 2025
a263e63
Updates to Feature Highlights
mikeCRL Oct 31, 2025
f4c7e22
Update cluster settings, deprecations, finalization, backward-incompa…
mikeCRL Nov 2, 2025
04fc735
Update src/current/_includes/releases/v25.4/v25.4.0.md
mikeCRL Nov 3, 2025
1ed0db2
Update src/current/_includes/releases/v25.4/v25.4.0.md
mikeCRL Nov 3, 2025
8215c83
Update src/current/_includes/releases/v25.4/v25.4.0.md
mikeCRL Nov 3, 2025
da6be6c
Update src/current/_includes/releases/v25.4/v25.4.0.md
mikeCRL Nov 3, 2025
c817121
Update src/current/_includes/releases/v25.4/v25.4.0.md
mikeCRL Nov 3, 2025
516b6b0
Update src/current/_includes/releases/v25.4/v25.4.0.md
mikeCRL Nov 3, 2025
9f3fbd4
Update src/current/_includes/releases/v25.4/v25.4.0.md
mikeCRL Nov 3, 2025
7334ba8
Update src/current/_includes/releases/v25.4/v25.4.0.md
mikeCRL Nov 3, 2025
7556c1e
Update src/current/_includes/releases/v25.4/v25.4.0.md
mikeCRL Nov 3, 2025
6ce67e1
Merge branch 'main' into v25.4-GA
mikeCRL Nov 3, 2025
759e377
Updated cluster settings and backward-incompatible changes
mikeCRL Nov 3, 2025
040438b
Remove comments from upgrade-finalization
mikeCRL Nov 3, 2025
24a5127
Updates to feature highlights formatting
mikeCRL Nov 3, 2025
c366f1d
Add links to Feature Highlights
mikeCRL Nov 3, 2025
b2a2556
Merge branch 'main' into v25.4-GA
mikeCRL Nov 3, 2025
373be3f
Remove unnecessary link
mikeCRL Nov 3, 2025
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
4 changes: 2 additions & 2 deletions src/current/_config_cockroachdb.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
baseurl: /docs
current_cloud_version: v25.3
current_cloud_version: v25.4
destination: _site/docs
homepage_title: CockroachDB Docs
versions:
stable: v25.3
stable: v25.4
dev: v25.4
32 changes: 32 additions & 0 deletions src/current/_data/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9848,3 +9848,35 @@
docker_arm_limited_access: false
source: true
previous_release: v25.3.3

- release_name: v25.4.0
major_version: v25.4
release_date: '2025-11-03'
release_type: Production
go_version: go1.23.12
sha: 4f4179243a351bc48c00dd9243dc56b8af98e210
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
docker_arm: true
docker_arm_experimental: false
docker_arm_limited_access: false
source: true
previous_release: v25.4.0-rc.1
cloud_only: true
cloud_only_message_short: 'Currently available for CockroachDB Advanced only'
cloud_only_message: >
This version is currently available only for
CockroachDB Cloud clusters on the Advanced plan.
2 changes: 1 addition & 1 deletion src/current/_data/versions.csv
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ v24.3,2024-11-18,2025-11-18,2026-05-18,24.3.11,24.3.12,2025-05-05,2026-05-05,202
v25.1,2025-02-18,2025-08-18,N/A,N/A,N/A,N/A,N/A,N/A,v24.3,release-25.1,2029-02-18
v25.2,2025-05-09,2026-05-12,2026-11-12,N/A,N/A,N/A,N/A,N/A,v25.1,release-25.2,2029-05-09
v25.3,2025-08-04,2026-02-04,N/A,N/A,N/A,N/A,N/A,N/A,v25.2,release-25.3,2029-08-04
v25.4,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,v25.3,release-25.4,N/A
v25.4,2025-11-03,2026-11-03,2027-05-03,N/A,N/A,N/A,N/A,N/A,v25.3,release-25.4,2029-11-03
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
- Bullet
- `bulkio.backup.deprecated_full_backup_with_subdir.enabled`

Removed the `bulkio.backup.deprecated_full_backup_with_subdir.enabled` cluster setting. This optional ability to specify a target subdirectory with the `BACKUP` command when creating a full backup was deprecated in v22.1. [#153628][#153628]

[#153628]: https://github.com/cockroachdb/cockroach/pull/153628
93 changes: 80 additions & 13 deletions src/current/_includes/releases/v25.4/cluster-setting-changes.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,85 @@
Changes to [cluster settings]({% link v25.3/cluster-settings.md %}) should be reviewed prior to upgrading. New default cluster setting values will be used unless you have manually set a value for a setting. This can be confirmed by running the SQL statement `SELECT * FROM system.settings` to view the non-default settings.
Changes to [cluster settings]({% link v25.4/cluster-settings.md %}) should be reviewed prior to upgrading. New default cluster setting values will be used unless you have manually set a value for a setting. This can be confirmed by running the SQL statement `SELECT * FROM system.settings` to view the non-default settings.

<h5 id="v25-3-0-settings-added">New settings</h5>
<h5 id="v25-4-0-settings-added">New settings</h5>

- Bullet
- Bullet
- Bullet
- Bullet
- `changefeed.progress.frontier_persistence.interval` (default: `30s`)

<h5 id="v25-3-0-settings-changed">Setting changes</h5>
Changefeeds will now periodically persist their entire span frontiers so that fewer duplicates will need to be emitted during restarts. The default persistence interval is 30s, but this can be configured with the `changefeed.progress.frontier_persistence.interval` cluster setting. [#153491][#153491]

- Bullet
- Bullet
- `log.channel_compatibility_mode.enabled` (default: `true`)

[#]: https://github.com/cockroachdb/cockroach/pull/
[#]: https://github.com/cockroachdb/cockroach/pull/
[#]: https://github.com/cockroachdb/cockroach/pull/
[#]: https://github.com/cockroachdb/cockroach/pull/
- In a future major release, changefeed events will be logged to the `CHANGEFEED` logging channel instead of `TELEMETRY`. To test the impact of this change before upgrading, set the cluster setting `log.channel_compatibility_mode.enabled` to `false`. This redirects changefeed logs to the `CHANGEFEED` channel and should be tested only in non-production environments. [#151807][#151807]
- In a future major release, SQL performance events will be logged to the `SQL_EXEC` channel instead of the `SQL_PERF` and `SQL_INTERNAL_PERF` channels. To test the impact of this change, you can set the new cluster setting `log.channel_compatibility_mode.enabled` to `false`. This redirects SQL performance logs to the `SQL_EXEC` channel. This setting should not be used in production environments, as it may affect downstream logging pipelines. [#151827][#151827]
- In a future major release, `sampled_query` and `sampled_transaction` events will move from the `TELEMETRY` channel to the `SQL_EXEC` logging channel. To test for potential logging pipeline impacts of these changes, set `log.channel_compatibility_mode.enabled` to `false`. Avoid testing in production, as this setting changes live log behavior. [#151949][#151949]

- `sql.catalog.allow_leased_descriptors.enabled` (default: `false`)

Added the `sql.catalog.allow_leased_descriptors.enabled` cluster setting, which is false by default. When set to true, queries that access the `pg_catalog` or `information_schema` can use cached leased descriptors to populate the data in those tables, with the tradeoff that some of the data could be stale. [#154491][#154491]

- `sql.log.scan_row_count_misestimate.enabled` (default: `false`)

Added a cluster setting (`sql.log.scan_row_count_misestimate.enabled`) that enables logging a warning on the gateway node when optimizer estimates for scans are inaccurate. The log message includes the table and index being scanned, the estimated and actual row counts, the time since the last table stats collection, and the table's estimated staleness. [#155123][#155123]

- `sql.schema.approx_max_object_count` (default: `20000`)

Added cluster setting `sql.schema.approx_max_object_count` (default: 20,000) to prevent creation of new schema objects when the limit is exceeded. The check uses cached table statistics for performance and is approximate - it may not be immediately accurate until table statistics are updated by the background statistics refreshing job. Clusters that have been running stably with a larger object count should raise the limit or disable the limit by setting the value to 0. In future releases, the default value for this setting will be raised as more CockroachDB features support larger object counts. [#154576][#154576]

- `sql.stats.error_on_concurrent_create_stats.enabled` (default: `true`)

Introduced the cluster setting `sql.stats.error_on_concurrent_create_stats.enabled`, which modifies how CockroachDB reacts to concurrent auto stats jobs. The default, `true`, maintains the previous behavior. Setting `sql.stats.error_on_concurrent_create_stats.enabled` to `false` will cause the concurrent auto stats job to be skipped with just a log entry and no increased error counters. [#149538][#149538]

- `sql.trace.txn.include_internal.enabled` (default: `true`)

You can now exclude internal transactions from probabilistic transaction tracing and latency-based logging by setting the `sql.trace.txn.include_internal.enabled` cluster setting to false. This setting is enabled by default to preserve the current behavior, but disabling it is recommended when debugging customer workloads to reduce noise in trace output. [#151433][#151433]

- `sql.trace.txn.jaeger_json_output.enabled` (default: `false`)

You can now output transaction traces to the logs in Jaeger-compatible JSON format. This is controlled by the `sql.trace.txn.jaeger_json_output.enabled` cluster setting, which is disabled by default. When enabled, traces triggered by probabilistic sampling or statement latency thresholds will be formatted for easier ingestion by tools that support the Jaeger tracing format. [#151414][#151414]

- `storage.unhealthy_write_duration` (default: `20s`)

Added the cluster setting `storage.unhealthy_write_duration` (defaults to 20s), which is used to indicate to the allocator that a store's disk is unhealthy. The cluster setting `kv.allocator.disk_unhealthy_io_overload_score` controls the overload score assigned to a store with an unhealthy disk, where a higher score results in preventing lease or replica transfers to the store, or shedding of leases by the store. The default value of that setting is 0, so the allocator behavior is unaffected. [#154459][#154459]

<h5 id="v25-4-0-settings-changed-default">Settings with changed defaults</h5>

- `feature.vector_index.enabled` now defaults to `true`. Vector indexing is now enabled by default. [#155561][#155561]

- `storage.value_separation.enabled` now defaults to `true`. This enables [value separation]({% link v25.4/architecture/storage-layer.md %}#value-separation) for SSTables, where values exceeding a certain size threshold are stored in separate blob files rather than inline in the SSTable. This helps improve write performance (write amplification) by avoiding rewriting such values during compactions. [#148857][#148857]

<h5 id="v25-4-0-settings-removed">Removed settings</h5>

- `bulkio.backup.deprecated_full_backup_with_subdir.enabled`

Removed the `bulkio.backup.deprecated_full_backup_with_subdir.enabled` cluster setting. This optional ability to specify a target subdirectory with the `BACKUP` command when creating a full backup was deprecated in v22.1. [#153628][#153628]

- `storage.columnar_blocks.enabled` {% comment %}TODO: Verify with jbowens - Is this backward-incompatible since it can't be disabled anymore?{% endcomment %}

Removed the `storage.columnar_blocks.enabled` cluster setting; columnar blocks are always enabled. [#149371][#149371]

<h5 id="v25-4-0-settings-other-changes">Other setting changes</h5>

- `sql.ttl.replan_flow_threshold` {% comment %}Verify with spilchen{% endcomment %}

Updated TTL job replanning to be less sensitive by focusing specifically on detecting when nodes become unavailable rather than reacting to all plan differences. The cluster setting `sql.ttl.replan_flow_threshold` may have been set to `0` to work around the TTL replanner being too sensitive; this fix will alleviate that and any instance that had set `replan_flow_threshold` to `0` can be reset back to the default. [#150771][#150771]

- Updated the redaction policy for cluster settings in `debug zip` output. All "sensitive" settings are now redacted in all debug zips, whether or not redaction is explicitly requested. In redacted debug zips, both "sensitive" and "non-reportable" settings are redacted. This replaces the previous behavior, which redacted all string-type settings only in redacted debug zips. [#150364][#150364]

- Added a new file, `cluster_settings_history.txt`, to debug zips. This file contains a history of cluster setting changes based on the system event log table. The history is only available while the corresponding events remain in the table. Sensitive settings are always redacted, and non-reportable settings are redacted when the debug zip is generated with redaction enabled. [#151066][#151066]

[#149371]: https://github.com/cockroachdb/cockroach/pull/149371
[#149538]: https://github.com/cockroachdb/cockroach/pull/149538
[#150364]: https://github.com/cockroachdb/cockroach/pull/150364
[#150771]: https://github.com/cockroachdb/cockroach/pull/150771
[#151066]: https://github.com/cockroachdb/cockroach/pull/151066
[#151414]: https://github.com/cockroachdb/cockroach/pull/151414
[#151433]: https://github.com/cockroachdb/cockroach/pull/151433
[#151807]: https://github.com/cockroachdb/cockroach/pull/151807
[#151827]: https://github.com/cockroachdb/cockroach/pull/151827
[#151949]: https://github.com/cockroachdb/cockroach/pull/151949
[#153491]: https://github.com/cockroachdb/cockroach/pull/153491
[#153628]: https://github.com/cockroachdb/cockroach/pull/153628
[#154459]: https://github.com/cockroachdb/cockroach/pull/154459
[#154491]: https://github.com/cockroachdb/cockroach/pull/154491
[#154576]: https://github.com/cockroachdb/cockroach/pull/154576
[#155123]: https://github.com/cockroachdb/cockroach/pull/155123
[#155561]: https://github.com/cockroachdb/cockroach/pull/155561
19 changes: 11 additions & 8 deletions src/current/_includes/releases/v25.4/deprecations.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
The following deprecations/removals are announced in v25.3.
The following deprecations/removals are announced in v25.4.

- Bullet
- Bullet
- Bullet
[#][#]
- The functionality provided by session variable `enforce_home_region_follower_reads_enabled` was deprecated in v24.2.4 and is now removed. {% comment %}TODO: Verify with michae2 - Is this backward-incompatible?{% endcomment %}(The variable itself remains for backward compatibility but has no effect.) Note that the related session variable `enforce_home_region` is **not** deprecated and still functions normally. [#148314][#148314]

[#]: https://github.com/cockroachdb/cockroach/pull/
[#]: https://github.com/cockroachdb/cockroach/pull/
[#]: https://github.com/cockroachdb/cockroach/pull/
- The cluster settings `storage.columnar_blocks.enabled` and `bulkio.backup.deprecated_full_backup_with_subdir.enabled` have been removed. For details, refer to [Removed settings](#v25-4-0-settings-removed).

- The bespoke restore and import event logs have been deprecated. For any deployment that is reliant on those logs, use the status change event log which now plumbs the SQL user that owns the job. [#153889][#153889]

- The `incremental_location` backup option is now deprecated and will be removed in a future release. This feature was added so customers could define different TTL policies for incremental backups vs full backups. Users can still do this since incremental backups are by default stored in a distinct directory relative to full backups (`{collection_root}/incrementals`). [#153890][#153890]

[#148314]: https://github.com/cockroachdb/cockroach/pull/148314
[#153889]: https://github.com/cockroachdb/cockroach/pull/153889
[#153890]: https://github.com/cockroachdb/cockroach/pull/153890
9 changes: 3 additions & 6 deletions src/current/_includes/releases/v25.4/upgrade-finalization.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
During a major-version upgrade, certain features and performance improvements are not available until the upgrade is finalized. In v25.3, these are:
During a major-version upgrade, certain features and performance improvements are not available until the upgrade is finalized. In v25.4, these are:

- Bullet
- Bullet
- Bullet
- Bullet
- Bullet
- **Partial statistics with constraining predicates**: The ability to manually create single-column partial statistics on boolean predicate expressions using a constraining `WHERE` clause in `CREATE STATISTICS` statements. For details, refer to the [release note](#v25-4-0-alpha-2-partial-statistics).
- **Changefeed span frontier persistence**: Changefeeds now periodically persist their entire span frontiers so that fewer duplicates need to be emitted during restarts. The default persistence interval is 30 seconds, configurable with the `changefeed.progress.frontier_persistence.interval` cluster setting. For details, refer to the [release note](#v25-4-0-alpha-2-changefeed-frontier-persistence).
6 changes: 3 additions & 3 deletions src/current/_includes/releases/v25.4/v25.4.0-alpha.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,10 +168,10 @@ Release Date: September 17, 2025
- Added `auth.ldap.conn.latency.internal` metric to denote the internal authentication time for LDAP auth method. [#151105][#151105]
- Introduced two new logging channels: `KV_EXEC` and `CHANGEFEED`. The `KV_EXEC` channel is intended for KV events that do not fall into the `KV_DISTRIBUTION` channel. The `CHANGEFEED` channel is intended for changefeed-related events that are currently logged to the `TELEMETRY` channel. This change does not include logic to move existing logs to the new channels. [#151692][#151692]
- Restricted access to internal tables in the `crdb_internal` schema. Only a predefined allowlist of internal objects is accessible when the session variable `allow_unsafe_internals` is enabled or when the caller is internal. [#151804][#151804]
- In v26.1, changefeed events will be logged to the `CHANGEFEED` logging channel instead of `TELEMETRY`. To test the impact of this change before upgrading, set the cluster setting `log.channel_compatibility_mode.enabled` to `false`. This redirects changefeed logs to the `CHANGEFEED` channel and should be tested only in non-production environments. [#151807][#151807]
- In v26.1, SQL performance events will be logged to the `SQL_EXEC` channel instead of the `SQL_PERF` and `SQL_INTERNAL_PERF` channels. To test the impact of this change, you can set the new cluster setting `log.channel_compatibility_mode.enabled` to `false`. This redirects SQL performance logs to the `SQL_EXEC` channel. This setting should not be used in production environments, as it may affect downstream logging pipelines. [#151827][#151827]
- In a future major release, changefeed events will be logged to the `CHANGEFEED` logging channel instead of `TELEMETRY`. To test the impact of this change before upgrading, set the cluster setting `log.channel_compatibility_mode.enabled` to `false`. This redirects changefeed logs to the `CHANGEFEED` channel and should be tested only in non-production environments. [#151807][#151807]
- In a future major release, SQL performance events will be logged to the `SQL_EXEC` channel instead of the `SQL_PERF` and `SQL_INTERNAL_PERF` channels. To test the impact of this change, you can set the new cluster setting `log.channel_compatibility_mode.enabled` to `false`. This redirects SQL performance logs to the `SQL_EXEC` channel. This setting should not be used in production environments, as it may affect downstream logging pipelines. [#151827][#151827]
- Restricted access to all `crdb_internal` built-ins unless the session variable `allow_unsafe_internals` is set to `true`, or the caller is internal. [#151887][#151887]
- In v26.1, `sampled_query` and `sampled_transaction` events will move from the `TELEMETRY` channel to the `SQL_EXEC` logging channel. To test for potential logging pipeline impacts of these changes, set `log.channel_compatibility_mode.enabled` to `false`. Avoid testing in production, as this setting changes live log behavior. [#151949][#151949]
- In a future major release, `sampled_query` and `sampled_transaction` events will move from the `TELEMETRY` channel to the `SQL_EXEC` logging channel. To test for potential logging pipeline impacts of these changes, set `log.channel_compatibility_mode.enabled` to `false`. Avoid testing in production, as this setting changes live log behavior. [#151949][#151949]
- Delegate queries (such as `SHOW DATABASES`) are now excluded from unsafe SQL checks that restrict access to the `system` database and `crdb_internal` schema. This change ensures that these commands continue to function even when access to internal components is otherwise restricted. [#152084][#152084]
- The Physical Cluster Replication (PCR) reader tenant is always destroyed on cutover [#152509][#152509]
- `SYSTEM` privileges are inherited in read-only mode in standby Physical Cluster Replication (PCR) clusters. [#149708][#149708]
Expand Down
Loading
Loading