Skip to content

v25.2 GA #19597

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

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open
6 changes: 3 additions & 3 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.1
current_cloud_version: v25.2
destination: _site/docs
homepage_title: CockroachDB Docs
versions:
stable: v25.1
dev: v25.2
stable: v25.2
dev: v25.2
34 changes: 34 additions & 0 deletions src/current/_data/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9070,3 +9070,37 @@
CockroachDB Cloud clusters. To request to upgrade
a CockroachDB self-hosted cluster to this version,
[contact support](https://support.cockroachlabs.com/hc/requests/new).

- release_name: v25.2.0
major_version: v25.2
release_date: '2025-05-09'
release_type: Production
go_version: go1.23.7
sha: TBD
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.2.0-beta.3
cloud_only: true
cloud_only_message_short: 'Available only for select CockroachDB Cloud clusters'
cloud_only_message: >
This version is currently available only for select
CockroachDB Cloud clusters. To request to upgrade
a CockroachDB self-hosted cluster to this version,
[contact support](https://support.cockroachlabs.com/hc/requests/new).
2 changes: 1 addition & 1 deletion src/current/_data/versions.csv
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ v24.1,2024-05-20,2025-05-20,2025-11-20,24.1.5,24.1.6,2024-10-21,2025-10-21,2026-
v24.2,2024-08-12,2025-02-12,N/A,N/A,N/A,N/A,N/A,N/A,v24.1,release-24.2,2028-08-12
v24.3,2024-11-18,2025-11-18,2026-05-18,24.3.11,24.3.12,2025-05-05,2026-05-05,2027-05-05,v24.2,release-24.3,N/A
v25.1,2025-02-18,2026-08-18,N/A,N/A,N/A,N/A,N/A,N/A,v24.3,release-25.1,N/A
v25.2,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,v25.1,release-25.2,N/A
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,N/A
1 change: 0 additions & 1 deletion src/current/_includes/common/license/evolving.md

This file was deleted.

119 changes: 93 additions & 26 deletions src/current/_includes/releases/v25.2/cluster-setting-changes.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,116 @@
Changes to [cluster settings]({% link v25.1/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.2/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.

- Bullet
- Bullet
- Bullet
- Bullet
- Bullet
- [Settings added](#v25-2-0-settings-added)
- [Settings with changed defaults](#v25-2-0-settings-with-changed-defaults)
- [Settings with changed visibility](#v25-2-0-settings-with-changed-visibility)
- [Additional setting changes](#v25-2-0-additional-cluster-setting-changes)

<h5 id="v25-1-0-settings-added">Settings added</h5>
<h5 id="v25-2-0-settings-added">Settings added</h5>

- Bullet
- `backup.compaction.threshold` (reserved)

- Bullet
- `backup.compaction.window_size` (reserved)

- Bullet
- `backup.restore.online_layer_limit` (reserved)

- Bullet
- `bulkio.index_backfill.merge_max_kv_auto_retries` (reserved)

<h5 id="v25-1-0-settings-with-changed-defaults">Settings with changed defaults</h5>
- `feature.vector_index.enabled`

- Bullet
- `kv.closed_timestamp.lead_for_global_reads_auto_tune.enabled`

- Bullet
- `kv.closed_timestamp.policy_latency_refresh_interval` (reserved)

- Bullet
- `kv.closed_timestamp.policy_refresh_interval` (reserved)

- Bullet
- `kv.lock_table.unreplicated_lock_reliability.lease_transfer.enabled` (reserved)

<h5 id="v25-1-0-settings-with-changed-visibility">Settings with changed visibility</h5>
- `kv.lock_table.unreplicated_lock_reliability.max_flush_size` (reserved)

- `kv.lock_table.unreplicated_lock_reliability.merge.enabled` (reserved)

- `kv.lock_table.unreplicated_lock_reliability.split.enabled` (reserved)

- `kv.raft.store_liveness.quiescence.enabled` (reserved)

- `kv.replica_raft.leaderless_unavailable_threshold`

- `kv.transaction.write_buffering.enabled`

- `kv.transaction.write_buffering.max_buffer_size`

- `logical_replication.consumer.immediate_mode_writer` (reserved)

- `restore.compacted_backups.enabled` (reserved)

- `server.child_metrics.include_aggregate.enabled`
- Introduced the cluster setting `server.child_metrics.include_aggregate.enabled`, which modifies the behavior of Prometheus metric reporting (`/_status/vars`). By default, it is set to `true`, which maintains the existing behavior. It can be sert to `false` to stop the reporting of the aggregate time series that prevents issues with double counting when querying metrics. [#141601][#141601]

- `server.grpc.request_metrics.enabled` (reserved)

- `server.jemalloc_purge_overhead_percent` (reserved)

- `server.jemalloc_purge_period` (reserved)

- `server.oidc_authentication.provider.custom_ca`
- Added the `server.oidc_authentication.provider.custom_ca` cluster setting to support custom root CA for verifying certificates while authenticating with the OIDC provider. [#140583][#140583]

- `sql.statement_bundle.include_all_references.enabled` (reserved)

- `sql.stats.automatic_full_collection.enabled`

- `sql.stats.flush.batch_size` (reserved)

- `sql.ttl.max_kv_auto_retries` (reserved)

- `sql.vecindex.stalled_op.timeout`

- `sql.zone_configs.default_range_modifiable_by_non_root.enabled` (reserved)

- `sql.zone_configs.max_replicas_per_region` (reserved)

- `ui.default_timezone`

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

- `kv.raft.leader_fortification.fraction_enabled` has had its default changed to `1`

- `rpc.batch_stream_pool.enabled` (reserved) has had its default changed to `true`

- `sql.defaults.plan_cache_mode` (reserved) has had its default changed to `auto`

- `version` has had its default changed to `25.1-upgrading-to-25.2-step-008`
- Additional [documentation]({{% cockroachcloud/provision-a-cluster-with-terraform.md %}}) is available for this setting.

<h5 id="v25-2-0-settings-with-changed-visibility">Settings with changed visibility</h5>

The following settings are now marked `public` after previously being `reserved`. Reserved settings are not documented and their tuning by customers is not supported.

- Bullet
- `sql.stats.detailed_latency_metrics.enabled`
- Percentile latencies are no longer available for **SQL Activity**. The implementation of these percentiles was error-prone and difficult to understand because it was computed differently from the other SQL statistics collected. Customers interested in viewing percentile latencies per statement fingerprint are encouraged to use the experimental per-fingerprint histograms that can be enabled with the `sql.stats.detailed_latency_metrics.enabled` cluster setting. This will enable externalized histogram metrics via the Prometheus scrape endpoint. [#139500][#139500]

<h5 id="v25-2-0-additional-cluster-setting-changes">Additional setting changes</h5>

- `ui.display_timezone` description has been updated

- The `server.client_cert_expiration_cache.capacity` cluster setting has been removed. The `security.certificate.expiration.client` and `security.certificate.ttl.client` metrics now report the lowest value observed for a user in the last 24 hours.

- The `kv.mvcc_gc.queue_kv_admission_control.enabled` cluster setting was retired.

- MVCC garbage collection is now fully subject to IO admission control. Previously, it was possible for MVCC GC to cause store overload (such as LSM inversion) when a large amount of data would become eligible for garbage collection. Should any issues arise from subjecting MVCC GC to admission control, the `kv.mvcc_gc.queue_kv_admission_control.enabled` cluster setting can be set to `false` to restore the previous behavior.

<h5 id="v25-1-0-renamed-settings">Renamed settings</h5>
- Previously, statement bundle collection could encounter `not enough privileges` errors when retrieving necessary information (e.g., cluster settings, table statistics, etc.) when the user that requested the bundle was different from the user that actually ran the query. This is now fixed. The bug was present since v20.2 and would result in partially incomplete bundles.

- Bullet
- MVCC garbage collection is now fully subject to IO admission control. Previously, it was possible for MVCC GC to cause store overload (such as LSM inversion) when a large amounts of data would become eligible for garbage collection. Should any issues arise from subjecting MVCC GC to admission control, the `kv.mvcc_gc.queue_kv_admission_control.enabled` cluster setting can be set to `false` to restore the previous behavior. [#143122][#143122]

- Bullet
- Since v23.2 table statistics histograms have been collected for non-indexed JSON columns. Histograms are no longer collected for these columns. This reduces memory usage during table statistics collection, for both automatic and manual collection via `ANALYZE` and `CREATE STATISTICS`. This can be reverted by setting the cluster setting `sql.stats.non_indexed_json_histograms.enabled` to `true`. [#139766][#139766]

<h5 id="v25-1-0-additional-cluster-setting-changes">Additional setting changes</h5>
- Removed the `kv.snapshot_receiver.excise.enable` cluster setting. Excise is now enabled unconditionally. [#142651][#142651]

- Bullet
- When configuring the `sql.ttl.default_delete_rate_limit` cluster setting, a notice is displayed informing that the TTL rate limit is per leaseholder per node with a link to the docs. [#142061][#142061]

- Bullet
- The cluster setting `changefeed.new_webhook_sink_enabled`/`changefeed.new_webhook_sink.enabled` is no longer supported. The new webhook sink has been enabled by default since v23.2, and the first version webhook sink has been removed. [#141940][#141940]

- Bullet
- The cluster setting `changefeed.new_pubsub_sink_enabled`/`changefeed.new_pubsub_sink.enabled` is no longer supported. The new Google Cloud Pub/Sub sink has been enabled by default since v23.2, and the first version Pub/Sub sink has been removed. [#141948][#141948]

- Bullet
- The `/_admin/v1/settings` API (and therefore cluster settings console page) now returns cluster settings using the same redaction logic as querying `SHOW CLUSTER SETTINGS` and `crdb_internal.cluster_settings`. This means that only settings flagged as "sensitive" will be redacted, all other settings will be visible. The same authorization is required for this endpoint, meaning the user must be an `admin`, have `MODIFYCLUSTERSETTINGS`, or `VIEWCLUSTERSETTINGS` roles to use this API. The exception is that if the user has `VIEWACTIVITY` or `VIEWACTIVITYREDACTED`, they will see console-only settings. [#138688][#138688]
12 changes: 4 additions & 8 deletions src/current/_includes/releases/v25.2/upgrade-finalization.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
During a major-version upgrade, certain features and performance improvements may not be available until the upgrade is finalized. In v25.1, these are:
During a major-version upgrade, certain features and performance improvements may not be available until the upgrade is finalized. In v25.2, these are:

- Bullet
- Bullet
- Bullet
- Bullet
- `SHOW JOBS` is now based on a new mechanism for storing information about the progress and status of running jobs. [#](https://github.com/cockroachdb/cockroach/pull/)
- `ALTER JOB ... OWNER TO` can now be used to transfer ownership of a job between users/roles. [#](https://github.com/cockroachdb/cockroach/pull/)
- Users can now always see and control (pause/resume/cancel) jobs that they own. [#](https://github.com/cockroachdb/cockroach/pull/)
- Row-level security
- Creating a set-returning PL/pgSQL function
- Support for the `jsonpath` data type
97 changes: 97 additions & 0 deletions src/current/_includes/releases/v25.2/v25.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
## v25.2.0

Release Date: May 12, 2025

With the release of CockroachDB v25.2, we've added new capabilities to help you migrate, build, and operate more efficiently.

For a summary of the most significant changes, refer to [Feature Highlights](#v25-2-0-feature-highlights).

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

<h3 id="v25-2-0-feature-highlights">Feature highlights</h3>

This section summarizes the most significant user-facing changes in v25.2.0 and other features recently made available to CockroachDB users across versions. For a complete list of features and changes in v25.2, including bug fixes and performance improvements, refer to the [release notes]({% link releases/index.md %}#testing-releases) for v25.2 testing releases. You can also search the docs for sections labeled [New in v25.2](https://www.cockroachlabs.com/docs/search?query=new+in+v25.2).

- **Feature categories**
- [CockroachDB Cloud](#v25-2-0-cloud)
- [Change Data Capture](#v25-2-0-change-data-capture)
- [Cloud File Storage](#v25-2-0-disaster-recovery)
- [SQL](#v25-2-0-sql)
- [KV](#v25-2-0-kv)

- **Additional information**
- [Backward-incompatible changes](#v25-2-0-backward-incompatible-changes)
- [Key cluster setting changes](#v25-2-0-key-cluster-setting-changes)
- [Deprecations] (#v25-2-0-deprecations)
- [Known limitations](#v25-2-0-known-limitations)
- [Additional resources](#v25-2-0-additional-resources)


<div id="feature-highlights">

<h4 id="v25-2-0-cloud">CockroachDB Cloud</h4>

{% include releases/v25.2/feature-highlights-cloud.html %}

<h4 id="v25-2-0-change-data-capture">Change Data Capture</h4>

{% include releases/v25.2/feature-highlights-change-data-capture.html %}

<h4 id="v25-2-0-disaster-recovery">Cloud File Storage</h4>

{% include releases/v25.2/feature-highlights-disaster-recovery.html %}

<h4 id="v25-2-0-sql">SQL</h4>

{% include releases/v25.2/feature-highlights-sql.html %}

<h4 id="v25-2-0-kv">KV</h4>

{% include releases/v25.2/feature-highlights-kv.html %}


{% include releases/v25.2/feature-detail-key.html %}

</div>

<a name="v25-2-0-backward-incompatible-changes"></a>

<h4 id="v25-2-0-backward-incompatible-changes">Backward-incompatible changes</h4>

{% include releases/v25.2/backward-incompatible.md %}

<a name="features-that-require-upgrade-finalization"></a>

<h4 id="features-that-require-upgrade-finalization">Features that Require Upgrade Finalization</h4>

{% include releases/v25.2/upgrade-finalization.md %}

<a name="v25-2-0-cluster-settings"></a>

<h4 id="v25-2-0-key-cluster-setting-changes">Key Cluster Setting Changes</h4>

{% include releases/v25.2/cluster-setting-changes.md %}

<a name="v25-2-0-deprecations"></a>

<h4 id="v25-2-0-deprecations">Deprecations</h4>

{% include releases/v25.2/deprecations.md %}

<h4 id="v25-2-0-known-limitations">Known limitations</h4>

For information about new and unresolved limitations in CockroachDB v25.2, with suggested workarounds where applicable, refer to [Known Limitations]({% link v25.2/known-limitations.md %}).

<h4 id="v25-2-0-additional-resources">Additional resources</h4>

Resource | Topic | Description
---------------------+--------------------------------------------+-------------
Cockroach University | [Introduction to Distributed SQL and CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+intro-to-distributed-sql-and-cockroachdb+self-paced/about) | This course introduces the core concepts behind distributed SQL databases and describes how CockroachDB fits into this landscape. You will learn what differentiates CockroachDB from both legacy SQL and NoSQL databases and how CockroachDB ensures consistent transactions without sacrificing scale and resiliency. You'll learn about CockroachDB's seamless horizontal scalability, distributed transactions with strict ACID guarantees, and high availability and resilience.
Cockroach University | [Practical First Steps with CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+practical-first-steps-with-crdb+self-paced/about) | This course will give you the tools you need to get started with CockroachDB. During the course, you will learn how to spin up a cluster, use the Admin UI to monitor cluster activity, and use SQL shell to solve a set of hands-on exercises.
Cockroach University | [Enterprise Application Development with CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+client-side-txn-handling+self-paced/about) | This course is the first in a series designed to equip you with best practices for mastering application-level (client-side) transaction management in CockroachDB. We'll dive deep on common differences between CockroachDB and legacy SQL databases and help you sidestep challenges you might encounter when migrating to CockroachDB from Oracle, PostgreSQL, and MySQL.
Cockroach University | [Building a Highly Resilient Multi-region Database using CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+intro-to-resilience-in-multi-region+self-paced/about) | This course is part of a series introducing solutions to running low-latency, highly resilient applications for data-intensive workloads on CockroachDB. In this course we focus on surviving large-scale infrastructure failures like losing an entire cloud region without losing data during recovery. We'll show you how to use CockroachDB survival goals in a multi-region cluster to implement a highly resilient database that survives node or network failures across multiple regions with zero data loss.
Docs | [Migration Overview]({% link v25.2/migration-overview.md %}) | This page summarizes the steps of migrating a database to CockroachDB, which include testing and updating your schema to work with CockroachDB, moving your data into CockroachDB, and testing and updating your application.
Docs | [Architecture Overview](https://www.cockroachlabs.com/docs/v25.2/architecture/overview) | This page provides a starting point for understanding the architecture and design choices that enable CockroachDB's scalability and consistency capabilities.
Docs | [SQL Feature Support]({% link v25.2/sql-feature-support.md %}) | The page summarizes the standard SQL features CockroachDB supports as well as common extensions to the standard.
Docs | [Change Data Capture Overview]({% link v25.2/change-data-capture-overview.md %}) | This page summarizes CockroachDB's data streaming capabilities. Change data capture (CDC) provides efficient, distributed, row-level changefeeds into a configurable sink for downstream processing such as reporting, caching, or full-text indexing.
Docs | [Backup Architecture]({% link v25.2/backup-architecture.md %}) | This page describes the backup job workflow with a high-level overview, diagrams, and more details on each phase of the job.
Loading
Loading