You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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]
- 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]
12
12
- 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]
13
13
- 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]
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]
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]
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]
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]
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]
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]
34
38
35
-
-`storage.unhealthy_write_duration` {% comment %}Verify with Eng{% endcomment %}
39
+
-`storage.unhealthy_write_duration`(default: `20s`) {% comment %}Verify with Eng{% endcomment %}
36
40
37
41
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]
38
42
39
43
<h5id="v25-4-0-settings-changed-default">Settings with changed defaults</h5>
40
44
41
-
-`feature.vector_index.enabled`{% comment %}Verify with Eng{% endcomment %}
45
+
-`feature.vector_index.enabled`now defaults to `true`. Vector indexing is now enabled by default. [#155561][#155561]
42
46
43
-
The value of `feature.vector_index.enabled` now defaults to `true`. Vector indexing is now enabled by default. [#155561][#155561]
47
+
-`storage.value_separation.enabled` now defaults to `true`. {% comment %}TODO: Verify with annrpom - Is this backward-incompatible due to significant storage behavior change?{% endcomment %}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]
-`bulkio.backup.deprecated_full_backup_with_subdir.enabled` {% comment %}Verify with msbutler{% endcomment %}
51
+
-`bulkio.backup.deprecated_full_backup_with_subdir.enabled` {% comment %}TODO: Verify with msbutler - Is this backward-incompatible since backups fail if set to true?{% endcomment %}
48
52
49
53
Removed the `bulkio.backup.deprecated_full_backup_with_subdir.enabled` cluster setting, since backups will now fail if this is set to true. [#153628][#153628]
50
54
51
-
-`storage.columnar_blocks.enabled`
55
+
-`storage.columnar_blocks.enabled` {% comment %}TODO: Verify with jbowens - Is this backward-incompatible since it can't be disabled anymore?{% endcomment %}
52
56
53
57
Removed the `storage.columnar_blocks.enabled` cluster setting; columnar blocks are always enabled. [#149371][#149371]
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]
The following deprecations/removals are announced in v25.3.
1
+
The following deprecations/removals are announced in v25.4.
2
2
3
-
- Bullet
4
-
- Bullet
5
-
- Bullet
6
-
[#][#]
3
+
- 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]
- 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).
6
+
7
+
- 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]
8
+
9
+
- 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]
During a major-version upgrade, certain features and performance improvements are not available until the upgrade is finalized. In v25.3, these are:
1
+
During a major-version upgrade, certain features and performance improvements are not available until the upgrade is finalized. In v25.4, these are:
2
2
3
-
- Bullet
4
-
- Bullet
5
-
- Bullet
6
-
- Bullet
7
-
- Bullet
3
+
-**Partial statistics with constraining predicates**: {% comment %}TODO: Verify with michae2{% endcomment %}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).
4
+
-**Changefeed span frontier persistence**: {% comment %}TODO: Verify with Eng{% endcomment %}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).
Copy file name to clipboardExpand all lines: src/current/_includes/releases/v25.4/v25.4.0-alpha.2.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ Release Date: September 23, 2025
8
8
9
9
-`CREATE USER` and `GRANT` role operations now wait for full-cluster visibility of the new user table version rather than blocking on convergence. [#150747][#150747]
10
10
- Introduced the `inspect_errors` system table. [#151821][#151821]
11
-
- You now manually create single-column partial statistics on boolean predicate expressions that can become simple index scans. These statistics can be created by adding a constraining `WHERE` expression to `CREATE STATISTICS`.
11
+
-<aname="v25-4-0-alpha-2-partial-statistics"></a>You now manually create single-column partial statistics on boolean predicate expressions that can become simple index scans. These statistics can be created by adding a constraining `WHERE` expression to `CREATE STATISTICS`.
12
12
13
13
For example:
14
14
@@ -39,7 +39,7 @@ Release Date: September 23, 2025
0 commit comments