What's New in v24.2

On this page Carat arrow pointing down

CockroachDB v24.2 is an Innovation Release, which is optional for CockroachDB Advanced, CockroachDB Standard, and CockroachDB self-hosted clusters but is required for CockroachDB Basic.

Refer to Major release types before installing or upgrading for release timing and support details. To learn what’s new in this release, refer to its Feature Highlights.

On this page, you can read about changes and find downloads for all production and testing releases of CockroachDB v24.2

Get future release notes emailed to you:

v24.2.4

Release Date: October 17, 2024

Downloads

Note:

Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.

Operating System Architecture Full executable SQL-only executable
Linux Intel cockroach-v24.2.4.linux-amd64.tgz
(SHA256)
cockroach-sql-v24.2.4.linux-amd64.tgz
(SHA256)
ARM cockroach-v24.2.4.linux-arm64.tgz
(SHA256)
cockroach-sql-v24.2.4.linux-arm64.tgz
(SHA256)
Mac
(Experimental)
Intel cockroach-v24.2.4.darwin-10.9-amd64.tgz
(SHA256)
cockroach-sql-v24.2.4.darwin-10.9-amd64.tgz
(SHA256)
ARM cockroach-v24.2.4.darwin-11.0-arm64.tgz
(SHA256)
cockroach-sql-v24.2.4.darwin-11.0-arm64.tgz
(SHA256)
Windows
(Experimental)
Intel cockroach-v24.2.4.windows-6.2-amd64.zip
(SHA256)
cockroach-sql-v24.2.4.windows-6.2-amd64.zip
(SHA256)

Docker image

Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are generally available for production use.

To download the Docker image:

icon/buttons/copy

docker pull cockroachdb/cockroach:v24.2.4

Source tag

To view or download the source code for CockroachDB v24.2.4 on Github, visit v24.2.4 source tag.

Changelog

View a detailed changelog on GitHub: v24.2.3...v24.2.4

Enterprise edition changes

  • Updated the cluster setting changefeed.sink_io_workers with all the changefeed sinks that support the setting. #130374
  • Added two network metrics, changefeed.network.bytes_in and changefeed.network.bytes_out. #130578
    These metrics track the number of bytes sent by individual changefeeds to the following sinks:
  • Added a changefeed.total_ranges metric that can be used to monitor the number of ranges that are watched by changefeed aggregators. It shares the same polling interval as changefeed.lagging_ranges, which is controlled by the existing lagging_ranges_polling_interval option. #130982
  • Disambiguated metrics and logs for the two buffers used by the KV feed. The following metrics now have a suffix indicating which buffer they correspond to: changefeed.buffer_entries.*, changefeed.buffer_entries_mem.*, or changefeed.buffer_pushback_nanos.*. The previous metric names are retained for backward compatibility. #131419
  • Added timers and corresponding [metrics](/docs/v24.2/metrics.html for key parts of the changefeed pipeline to help debug issues with feeds. The changefeed.stage.{stage}.latency metrics now emit latency histograms for each stage. The metrics respect the changefeed scope label to debug a specific feed. #131372

SQL language changes

  • The session variable enforce_home_region_follower_reads_enabled is now deprecated, in favor of enforce_home_region. The deprecated variable will be removed in a future release. #129587

Operational changes

DB Console changes

Bug fixes

  • Fixed a bug that could prevent upgrade finalization when attempting to resolve a large number of corrupt descriptors. #130517
  • Fixed a potential memory leak in changefeeds using a cloud storage sink. The memory leak could occur if both changefeed.fast_gzip.enabled and changefeed.cloudstorage.async_flush.enabled were true, and the changefeed received an error while attempting to write to the cloud storage sink. #130602
  • Fixed a bug where zone configuration changes issued by the declarative schema changer were not blocked if a table had schema_locked set. #130705
  • Fixed a bug in which some SELECT FOR UPDATE or SELECT FOR SHARE queries using NOWAIT could still block on locked rows when using the optimizer_use_lock_op_for_serializable session setting under SERIALIZABLE isolation. This bug was introduced with optimizer_use_lock_op_for_serializable in v23.2.0. #130430
  • Fixed a bug that caused the optimizer to plan unnecessary post-query uniqueness checks during INSERT, UPSERT, and UPDATE statements on tables with partial, unique hash-sharded indexes. These unnecessary checks added overhead to execution of these statements, and caused the statements to error when executed under READ COMMITTED isolation. #130570
  • Fixed a bug that could result in the inability to garbage collect an MVCC range tombstone within a global table. #130940
  • Fixed a bug where a connection could be dropped if the client was attempting a schema change while the same schema objects were being dropped. #130962
  • Fixed a bug introduced in v23.2 where the IS NOT NULL clause would incorrectly allow tuples containing NULL elements, e.g. (1, NULL) or (NULL, NULL). #130947
  • Fixed a bug that could cause errors with the message internal error: Non-nullable column ... when executing statements under READ COMMITTED isolation that involved tables with NOT NULL virtual columns. #131019
  • Fixed a bug where AWS S3 and HTTP client configurations were not considered when implicit authentication was used. #131173
  • Fixed a bug introduced in v23.1 that can cause incorrect query results under the following conditions:

    1. The query contains a correlated subquery.
    2. The correlated subquery has a GroupBy or DistinctOn operator with an outer-column reference in its input.
    3. The correlated subquery is in the input of a SELECT or JOIN clause that has a filter that sets the outer-column reference equal to an inner column that is in the input of the grouping operator.
    4. The set of grouping columns does not include the replacement column explicitly.

    #130990

  • Fixed a bug where jobs created in a session with a timezone offset configured could fail to start or could report an incorrect creation time in the output of SHOW JOBS and in the DB Console. #131407

  • Fixed a bug that could prevent a changefeed from resuming after a prolonged paused state. #130921

Performance improvements

v24.2.3

Release Date: September 25, 2024

Downloads

Note:

Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.

Operating System Architecture Full executable SQL-only executable
Linux Intel cockroach-v24.2.3.linux-amd64.tgz
(SHA256)
cockroach-sql-v24.2.3.linux-amd64.tgz
(SHA256)
ARM cockroach-v24.2.3.linux-arm64.tgz
(SHA256)
cockroach-sql-v24.2.3.linux-arm64.tgz
(SHA256)
Mac
(Experimental)
Intel cockroach-v24.2.3.darwin-10.9-amd64.tgz
(SHA256)
cockroach-sql-v24.2.3.darwin-10.9-amd64.tgz
(SHA256)
ARM cockroach-v24.2.3.darwin-11.0-arm64.tgz
(SHA256)
cockroach-sql-v24.2.3.darwin-11.0-arm64.tgz
(SHA256)
Windows
(Experimental)
Intel cockroach-v24.2.3.windows-6.2-amd64.zip
(SHA256)
cockroach-sql-v24.2.3.windows-6.2-amd64.zip
(SHA256)

Docker image

Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are generally available for production use.

To download the Docker image:

icon/buttons/copy

docker pull cockroachdb/cockroach:v24.2.3

Source tag

To view or download the source code for CockroachDB v24.2.3 on Github, visit v24.2.3 source tag.

Changelog

View a detailed changelog on GitHub: v24.2.2...v24.2.3

Enterprise edition changes

  • Added a changefeed.protect_timestamp.lag metric, which controls how much the changefeed protected timestamp (PTS) should lag behind the high-water mark. A changefeed now only updates its PTS if changefeed.protect_timestamp.lag has passed between the last PTS and the changefeed high-water mark. #129580
  • Added two network metrics, changefeed.network.bytes_in and changefeed.network.bytes_out. These metrics track the number of bytes sent by individual changefeeds to the following sinks:

Operational changes

  • Added a new configuration parameter, server.cidr_mapping_url, which maps IPv4 CIDR blocks to arbitrary tag names. #129071
  • Modified the metrics sql.bytesin and sql.bytesout to become aggregation metrics if child metrics are enabled. #129071
  • Added three new network tracking metrics:
    • rpc.connection.connected is the number of rRPC TCP-level connections established to remote nodes.
    • rpc.client.bytes.egress is the number of TCP bytes sent via gRPC on connections initiated by CockroachDB.
    • rpc.client.bytes.ingress is the number of TCP bytes received via gRPC on connections initiated by CockroachDB. #128957

DB Console changes

Bug fixes

Contributors

This release includes 94 merged PRs by 38 authors.

v24.2.2

Release Date: September 23, 2024

Downloads

Note:

Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.

Operating System Architecture Full executable SQL-only executable
Linux Intel cockroach-v24.2.2.linux-amd64.tgz
(SHA256)
cockroach-sql-v24.2.2.linux-amd64.tgz
(SHA256)
ARM cockroach-v24.2.2.linux-arm64.tgz
(SHA256)
cockroach-sql-v24.2.2.linux-arm64.tgz
(SHA256)
Mac
(Experimental)
Intel cockroach-v24.2.2.darwin-10.9-amd64.tgz
(SHA256)
cockroach-sql-v24.2.2.darwin-10.9-amd64.tgz
(SHA256)
ARM cockroach-v24.2.2.darwin-11.0-arm64.tgz
(SHA256)
cockroach-sql-v24.2.2.darwin-11.0-arm64.tgz
(SHA256)
Windows
(Experimental)
Intel cockroach-v24.2.2.windows-6.2-amd64.zip
(SHA256)
cockroach-sql-v24.2.2.windows-6.2-amd64.zip
(SHA256)

Docker image

Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are generally available for production use.

To download the Docker image:

icon/buttons/copy

docker pull cockroachdb/cockroach:v24.2.2

Source tag

To view or download the source code for CockroachDB v24.2.2 on Github, visit v24.2.2 source tag.

Changelog

View a detailed changelog on GitHub: v24.2.1...v24.2.2

Bug fixes

  • Fixed a bug that could result in the inability to garbage collect an MVCC range tombstone within a global table. #130946

Contributors

This release includes 3 merged PRs by 2 authors.

v24.2.1

Release Date: September 5, 2024

Downloads

Warning:
This patch release has been withdrawn. We've removed the links to the downloads and Docker image.All the changes listed as part of this release will be in the next release. Do not upgrade to this release.

Changelog

View a detailed changelog on GitHub: v24.2.0...v24.2.1

Security updates

  • The new cluster setting server.jwt_authentication.issuers.configuration is now aliased to server.jwt_authentication.issuers. The new cluster setting reflects the value the setting can take. The setting can now take multiple values to support various kinds of providers and their mapped JWKS URIs. This can be set to one of the following values:

    • Simple string that Go can parse as a valid issuer URL: 'https://accounts.google.com'.
    • String that can be parsed as a valid JSON array of issuer URLs list: ['example.com/adfs','https://accounts.google.com'].
    • String that can be parsed as a valid JSON and deserialized into a map of issuer URLs to corresponding JWKS URIs. In this case, CockroachDB will override the JWKS URI present in the issuer's well-known endpoint: '{ "issuer_jwks_map": { "https://accounts.google.com": "https://www.googleapis.com/oauth2/v3/certs", "example.com/adfs": "https://example.com/adfs/discovery/keys" } }'.

    When issuer_jwks_map is set, CockroachDB directly uses the JWKS URI to get the key set. In all other cases where server.jwt_authentication.jwks_auto_fetch.enabled is set, CockroachDB attempts to automatically obtain the JWKS URI first from the issuer's well-known endpoint. #128178

Enterprise edition changes

Operational changes

DB Console changes

Bug fixes

  • Fixed a memory leak that could occur when a connection string specifies a virtual cluster that does not exist. #128108
  • Fixed a bug where CREATE INDEX IF NOT EXISTS would not correctly short-circuit if the given index already existed. #128240
  • Fixed a bug where syntax validation incorrectly prevented use of the DESCENDING clause for non-terminal columns of an inverted index. Now only the last column of an inverted index is prevented from using DESCENDING. #128240
  • Fixed a bug where an index could store a column in the primary index if that column had a mixed-case name. #128240
  • Setting or dropping a default value on a computed column is now disallowed -- even for null defaults. Previously, setting or dropping a default value on a computed column was a no-op; now it is an error. #128465
  • Fixed a bug where a hash-sharded constraint could not be created if it referred to a column that had a backslash in its name. #128522
  • Fixed a bug introduced in v23.1 where the output of EXPLAIN (OPT, REDACT) for various CREATE statements was not redacted. This bug affects the following statements:
    • EXPLAIN (OPT, REDACT) CREATE TABLE
    • EXPLAIN (OPT, REDACT) CREATE VIEW
    • EXPLAIN (OPT, REDACT) CREATE FUNCTION #128490
  • Fixed a bug where legacy and declarative schema changes could be executed concurrently, which could lead to failing or hung schema change jobs. #128825
  • Fixed a bug that caused errors like ERROR: column 'crdb_internal_idx_expr' does not exist when accessing a table with an expression index where the expression evaluates to an ENUM type, such as CREATE INDEX ON t ((col::an_enum)). #129094

v24.2.0

Release Date: August 12, 2024

With the release of CockroachDB v24.2, we've added new capabilities to help you migrate, build, and operate more efficiently. Refer to our summary of the most significant user-facing changes under Feature Highlights.

Downloads

Note:

Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.

Operating System Architecture Full executable SQL-only executable
Linux Intel cockroach-v24.2.0.linux-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0.linux-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0.linux-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0.linux-arm64.tgz
(SHA256)
Mac
(Experimental)
Intel cockroach-v24.2.0.darwin-10.9-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0.darwin-10.9-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0.darwin-11.0-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0.darwin-11.0-arm64.tgz
(SHA256)
Windows
(Experimental)
Intel cockroach-v24.2.0.windows-6.2-amd64.zip
(SHA256)
cockroach-sql-v24.2.0.windows-6.2-amd64.zip
(SHA256)

Docker image

Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are generally available for production use.

To download the Docker image:

icon/buttons/copy

docker pull cockroachdb/cockroach:v24.2.0

Source tag

To view or download the source code for CockroachDB v24.2.0 on Github, visit v24.2.0 source tag.

Changelog

View a detailed changelog on GitHub: v24.2.0-rc.1...v24.2.0

Feature highlights

This section summarizes the most significant user-facing changes in v24.2.0 and other features recently made available to CockroachDB users across versions. For a complete list of features and changes in v24.2, including bug fixes and performance improvements, refer to the release notes for previous v24.2 testing releases. You can also search the docs for sections labeled New in v24.2.

Note:

In CockroachDB Self-Hosted, all available features are free to use unless their description specifies that an Enterprise license is required. For more information, refer to the Licensing FAQ.

Change Data Capture

Feature Availability
Ver. Self-Hosted Dedicated Serverless

CockroachDB Changefeeds - Improved null handling usability

Changefeed users can distinguish between JSON NULL values and SQL NULL values in changefeed messages, by using the encode_json_value_null_as_object option with CREATE CHANGEFEED. This enables a consumer to distinguish an unset value from a null JSON token.

24.2 Green checkmark (Yes) Green checkmark (Yes) Green checkmark (Yes)

Migrations

Feature Availability
Ver. Self-Hosted Dedicated Serverless

MOLT tooling is now available as a Docker container

Users can now deploy CockroachDB's MOLT Fetch and Verify tools using a multi-platform Docker image that supports both linux/amd64 and linux/arm64 architectures. For installation details, refer to MOLT Releases.

All★★ Green checkmark (Yes) Green checkmark (Yes) Green checkmark (Yes)

MOLT Fetch transformation rules

Column exclusion, computed columns, and partitioned tables are now supported in table migrations with MOLT Fetch. They are supported via a new transformations framework that allows the user to specify a JSON file with instructions on how MOLT Fetch should treat certain schemas, tables, or underlying columns.

All★★ Green checkmark (Yes) Green checkmark (Yes) Green checkmark (Yes)

SQL

Feature Availability
Ver. Self-Hosted Dedicated Serverless

Vector search

Users can now store VECTOR embeddings within CockroachDB with pgvector-compatible semantics to build AI-driven applications. Numerous built-in functions have been added for running similarity search across vectors. Note that vector indexing is not supported in this release. This feature is in Preview and requires an Enterprise license.

24.2 Green checkmark (Yes) Green checkmark (Yes) Green checkmark (Yes)

Generic query plans

Users can now enable generic query plans. Generic query plans optimize query execution for prepared statements by reusing precompiled query plans, and significantly reduce the CPU overhead associated with parsing and planning repeated queries, at the expense of plan quality. This feature is in Preview and requires an Enterprise license.

24.2 Green checkmark (Yes) Green checkmark (Yes) Green checkmark (Yes)

COMMENT ON TYPE

CockroachDB users can now annotate a type with a comment and reference the comment later for documentation purposes.

24.2 Green checkmark (Yes) Green checkmark (Yes) Green checkmark (Yes)

Operations

Feature Availability
Ver. Self-Hosted Dedicated Serverless

CockroachDB Cloud Terraform Provider - Operations at scale

This release includes updates to enhance operations at scale using the CockroachDB Cloud Terraform Provider across multiple Terraform projects. A new Resource for User Role Grants makes it easier to manage user account access to clusters across projects. A new Data Source for Folders allows better access to clusters organized in folders across multiple projects. A new Service Account Resource brings CockroachDB Cloud API access under Terraform management.

All★★ Gray circle with horizontal white line (No) Green checkmark (Yes) Green checkmark (Yes)

Support for Optional Innovation Releases

As of v24.2, CockroachDB has shifted from a 6-month major version release cycle to a 3-month cycle. The additional versions, called Innovation releases, are optional and can be skipped for CockroachDB Dedicated and Self-Hosted, but are required for CockroachDB Serverless. Innovation releases have shorter support windows than Regular releases. Users can upgrade directly from a Regular release to the next Regular release, without needing to upgrade to the intermediary Innovation release.

In CockroachDB Dedicated, users can now choose to deploy or upgrade a cluster on any supported version. CockroachDB Serverless clusters continue to receive all major versions and patches for both Innovation releases and Regular releases as they become available.

24.2 Green checkmark (Yes) Green checkmark (Yes) Gray circle with horizontal white line (No)

(not skippable)

Observability

Feature Availability
Ver. Self-Hosted Dedicated Serverless

CockroachDB Dedicated clusters on Azure now integrate with Azure Monitor for metrics and logs (limited access)

Exporting logs to Azure Monitor Logs and exporting metrics to Azure Monitor Metrics and Prometheus-compatible metric sinks from your CockroachDB Dedicated cluster hosted on Azure is now supported in Limited Access.

All Gray circle with horizontal white line (No) Green checkmark (Yes) Gray circle with horizontal white line (No)

Improved Overload Dashboard

Updates to the Overload dashboard include moving important metrics nearer the top and adding more informative tooltips. These enhancements aim to help users more easily identify when Admission Control mechanisms are activated due to overload.

v24.2 Green checkmark (Yes) Green checkmark (Yes) Green checkmark (Yes)
Feature detail key
Features marked "All★" were recently made available in the CockroachDB Cloud platform. They are available for all supported versions of CockroachDB, under the deployment methods specified in their row under Availability.
★★ Features marked "All★★" were recently made available via tools maintained outside of the CockroachDB binary. They are available to use with all supported versions of CockroachDB, under the deployment methods specified in their row under Availability.
Green checkmark (Yes) Feature is available for this deployment method of CockroachDB as specified in the icon’s column: CockroachDB Self-Hosted, CockroachDB Dedicated, or CockroachDB Serverless.
Gray circle with horizontal white line (No) Feature is not available for this deployment method of CockroachDB as specified in the icon’s column: CockroachDB Self-Hosted, CockroachDB Dedicated, or CockroachDB Serverless.

Backward-incompatible changes and deprecations

CockroachDB v24.2.0 includes no backward-incompatible changes or deprecations.

Features that require upgrade finalization

During a major-version upgrade, certain features and performance improvements may not be available until the upgrade is finalized. However, when upgrading to v24.2, all features are available immediately, and no features require finalization.

Key Cluster Setting Changes

The following changes should be reviewed prior to upgrading. Default cluster settings 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.

Settings added
  • debug.zip.redact_addresses: Added the cluster setting debug.zip.redact_addresses.enabled that allows the user to enable or disable redaction of fields like hostname and IP addresses. #123544
  • kv.transaction.randomized_anchor_key: Previously, concurrent transactions that constructed large write batches could cause hotspots. This was because the transaction record for all ranges would coalesce on a single range, which would then cause this range's leaseholder to perform all intent resolution work. This is fixed by distributing transaction records randomly across the ranges the write batch touches. In turn, hotspots are prevented. #125744
  • server.oidc_authentication.client.timeout: The new cluster setting server.oidc_authentication.client.timeout allows configuration of the HTTP client timeout for external requests made during OIDC authentication. The default timeout is 30 seconds. #125767
  • sql.auth.grant_option_for_owner.enabled: The new cluster setting sql.auth.grant_option_for_owner.enabled controls whether the owner of an object has permission to grant permission on the object to other users. When set to true (the default), the GRANT OPTION is implicitly granted to the object owner, who can grant permissions on the object to other users, preserving the existing behavior of CockroachDB. When set to false, the GRANT OPTION is not implicitly given to the owner of an object. The owner's permissions do not change, but they can no longer grant permissions to others unless the GRANT OPTION is granted to them explicitly. #126960
  • sql.auth.grant_option_inheritance.enabled: Added the sql.auth.grant_option_inheritance.enabled cluster setting. The default value is true, which maintains consistency with CockroachDB's previous behavior: users granted a privilege with WITH GRANT OPTION can in turn grant that privilege to others. When sql.auth.grant_option_inheritance.enabled is set to false, the GRANT OPTION is not inherited through role membership, thereby preventing descendant roles from granting the privilege to others. However, the privilege itself continues to be inherited through role membership. #125590
  • storage.sstable.compression_algorithm_backup_storage, storage.sstable.compression_algorithm_backup_transport: Added two new cluster settings, storage.sstable.compression_algorithm_backup_storage and storage.sstable.compression_algorithm_backup_transport, which in addition to the existing cluster setting storage.sstable.compression_algorithm, can be used to alter the compression algorithm used for various types of SSTs. #124245
Settings removed
  • kv.rangefeed.range_stuck_threshold: Removed the stuck rangefeed cancel feature and its related cluster setting kv.rangefeed.range_stuck_threshold, because it was only available in non-mux rangefeeds. Previously, the stuck rangefeed cancel feature was introduced to restart single rangefeeds automatically if they had not received KV updates for some time. #125663
  • storage.value_blocks.enabled: The storage.value_blocks.enabled cluster setting has been removed; value blocks are always enabled. #122164
Settings with changed defaults
  • kv.dist_sender.circuit_breakers.mode has had its default changed to liveness range only = 1.
  • sql.defaults.results_buffer.size has had its default changed to 512 KiB: The default value of the sql.defaults.results_buffer.size cluster setting has been changed from 16KiB to 512KiB. This reduces the chance that clients using READ COMMITTED transactions will encounter errors that cannot automatically be retried within CockroachDB. #124633
  • sql.metrics.max_mem_stmt_fingerprints and sql.metrics.max_mem_txn_fingerprints have had their defaults changed to 7500: The default values for the cluster settings sql.metrics.max_mem_stmt_fingerprints and sql.metrics.max_mem_txn_fingerprints have been changed from 100000 to 7500, thus lowering the default limits for in-memory statement and transaction fingerprints. #123430
  • sql.stats.histogram_samples.count has had its default changed to 0: Histograms are no longer constructed using a default sample size of 10k. Samples are now sized dynamically based on table size unless the sample count has been set in the table or cluster settings. #125345
  • sql.ttl.default_delete_rate_limit has had its default changed to 100: The storage parameter ttl_delete_rate_limit, which determines the rate limit for deleting expired rows, is now set to 100 by default. #124354
Settings with new options
  • storage.sstable.compression_algorithm has added the option none = 3: The compression option none was added to allow for the disabling of SSTable compression. This option is disabled by default, but can can be used with any of the three existing cluster settings that control SSTable compression: storage.sstable.compression_algorithm, storage.sstable.compression_algorithm_backup_storage, and storage.sstable.compression_algorithm_backup_transport. #126508
Settings with new aliases
  • changefeed.batch_reduction_retry.enabled is aliased to changefeed.batch_reduction_retry_enabled.
  • kv.closed_timestamp.follower_reads.enabled is aliased to kv.closed_timestamp.follower_reads_enabled.
  • kv.range_split.by_load.enabled is aliased to kv.range_split.by_load_enabled.
  • kv.transaction.write_pipelining.enabled is aliased to kv.transaction.write_pipelining_enabled.
  • kv.transaction.write_pipelining.max_batch_size is aliased to kv.transaction.write_pipelining_max_batch_size.
  • physical_replication.consumer.minimum_flush_interval is aliased to builkio.stream_ingestion.minimum_flush_interval.
  • server.clock.forward_jump_check.enabled is aliased to server.clock.forward_jump_check_enabled.
  • server.oidc_authentication.autologin.enabled is aliased to server.oidc_authentication.autologin.
  • server.shutdown.connections.timeout is aliased to server.shutdown.connection_wait.
  • server.shutdown.initial_wait is aliased to server.shutdown.drain_wait.
  • server.shutdown.jobs.timeout is aliased to server.shutdown.jobs_wait.
  • server.shutdown.lease_transfer_iteration.timeout is aliased to server.shutdown.lease_transfer_wait.
  • server.shutdown.transactions.timeout is aliased to server.shutdown.query_wait.
  • server.web_session.timeout is aliased to server.web_session_timeout.
  • spanconfig.range_coalescing.application.enabled is aliased to spanconfig.tenant_coalesce_adjacent.enabled.
  • spanconfig.range_coalescing.system.enabled is aliased to spanconfig.storage_coalesce_adjacent.enabled.
  • sql.log.all_statements.enabled is aliased to sql.trace.log_statement_execute.
  • sql.metrics.statement_details.dump_to_logs.enabled is aliased to sql.metrics.statement_details.dump_to_logs.
  • trace.debug_http_endpoint.enabled is aliased to trace.debug.enable.

Known limitations

For information about new and unresolved limitations in CockroachDB v24.2, with suggested workarounds where applicable, refer to Known Limitations.

Additional resources

Resource Topic Description
Cockroach University Introduction to Distributed SQL and CockroachDB 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 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 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 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 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 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 The page summarizes the standard SQL features CockroachDB supports as well as common extensions to the standard.
Docs Change Data Capture Overview 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 This page describes the backup job workflow with a high-level overview, diagrams, and more details on each phase of the job.

v24.2.0-rc.1

Release Date: August 7, 2024

Downloads

Warning:

CockroachDB v24.2.0-rc.1 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.

Note:

Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.

Operating System Architecture Full executable SQL-only executable
Linux Intel cockroach-v24.2.0-rc.1.linux-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-rc.1.linux-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-rc.1.linux-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-rc.1.linux-arm64.tgz
(SHA256)
Mac
(Experimental)
Intel cockroach-v24.2.0-rc.1.darwin-10.9-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-rc.1.darwin-10.9-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-rc.1.darwin-11.0-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-rc.1.darwin-11.0-arm64.tgz
(SHA256)
Windows
(Experimental)
Intel cockroach-v24.2.0-rc.1.windows-6.2-amd64.zip
(SHA256)
cockroach-sql-v24.2.0-rc.1.windows-6.2-amd64.zip
(SHA256)

Docker image

Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are generally available for production use.

To download the Docker image:

icon/buttons/copy

docker pull cockroachdb/cockroach-unstable:v24.2.0-rc.1

Source tag

To view or download the source code for CockroachDB v24.2.0-rc.1 on Github, visit v24.2.0-rc.1 source tag.

Changelog

View a detailed changelog on GitHub: v24.2.0-beta.3...v24.2.0-rc.1

Enterprise edition changes

DB Console changes

  • The Databases and Tables pages in the DB Console will show a loading state while loading information for databases and tables including size and range counts. #127696
  • On the Database details page, the table name will no longer appear with quotes around the schema and table name. #127770

Bug fixes

  • Fixed a bug that caused a memory leak when executing SQL statements with comments, for example, SELECT /* comment */ 1;. Memory owned by a SQL session would continue to grow as these types of statements were executed. The memory would only be released when closing the SQL session. This bug has been present since v23.1. #127760
  • Fixed a bug in debug zip generation where an error was produced while fetching unstructured/malformed logs. #127883
  • Fixed small memory leaks that occur during changefeed creation. #127899
  • Fixed a known limitation in which fast cutback could fail. Users can now protect data for the default protection window of 4 hours on both the primary and the standby clusters. #127892

Contributors

This release includes 29 merged PRs by 21 authors.

v24.2.0-beta.3

Release Date: August 1, 2024

Downloads

Warning:

CockroachDB v24.2.0-beta.3 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.

Note:

Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.

Operating System Architecture Full executable SQL-only executable
Linux Intel cockroach-v24.2.0-beta.3.linux-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.3.linux-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-beta.3.linux-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.3.linux-arm64.tgz
(SHA256)
Mac
(Experimental)
Intel cockroach-v24.2.0-beta.3.darwin-10.9-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.3.darwin-10.9-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-beta.3.darwin-11.0-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.3.darwin-11.0-arm64.tgz
(SHA256)
Windows
(Experimental)
Intel cockroach-v24.2.0-beta.3.windows-6.2-amd64.zip
(SHA256)
cockroach-sql-v24.2.0-beta.3.windows-6.2-amd64.zip
(SHA256)

Docker image

Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are generally available for production use.

To download the Docker image:

icon/buttons/copy

docker pull cockroachdb/cockroach-unstable:v24.2.0-beta.3

Source tag

To view or download the source code for CockroachDB v24.2.0-beta.3 on Github, visit v24.2.0-beta.3 source tag.

Changelog

View a detailed changelog on GitHub: v24.2.0-beta.2...v24.2.0-beta.3

Command-line changes

Bug fixes

  • Fixed a formatting issue with the sql_sequence_cached_node value of the serial_normalization setting. This could lead to an error connecting to CockroachDB if this value was set as the default for serial_normalization via cluster setting sql.defaults.serial_normalization. [#127674][#127674]
  • Dropping ENUM-type values which were referenced by index expressions could fail with an error. [#127455][#127455]

This release includes 13 merged PRs by 7 authors.

v24.2.0-beta.2

Release Date: July 24, 2024

Downloads

Warning:

CockroachDB v24.2.0-beta.2 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.

Note:

Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.

Operating System Architecture Full executable SQL-only executable
Linux Intel cockroach-v24.2.0-beta.2.linux-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.2.linux-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-beta.2.linux-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.2.linux-arm64.tgz
(SHA256)
Mac
(Experimental)
Intel cockroach-v24.2.0-beta.2.darwin-10.9-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.2.darwin-10.9-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-beta.2.darwin-11.0-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.2.darwin-11.0-arm64.tgz
(SHA256)
Windows
(Experimental)
Intel cockroach-v24.2.0-beta.2.windows-6.2-amd64.zip
(SHA256)
cockroach-sql-v24.2.0-beta.2.windows-6.2-amd64.zip
(SHA256)

Docker image

Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are generally available for production use.

To download the Docker image:

icon/buttons/copy

docker pull cockroachdb/cockroach-unstable:v24.2.0-beta.2

Source tag

To view or download the source code for CockroachDB v24.2.0-beta.2 on Github, visit v24.2.0-beta.2 source tag.

Changelog

View a detailed changelog on GitHub: v24.2.0-beta.1...v24.2.0-beta.2

Security updates

SQL language changes

  • The new cluster setting sql.auth.grant_option_for_owner.enabled controls whether the owner of an object has permission to grant permission on the object to other users. When set to true (the default), the GRANT OPTION is is implicitly granted to the object owner, who can grant permissions on the object to other users, preserving the existing behavior of CockroachDB. When set to false, the GRANT OPTION is not implicitly given to the owner of an object. The owner's permissions do not change, but they can no longer grant permissions to others unless the GRANT OPTION is granted to them explicitly. #126960
  • Fixed a bug in which the DISCARD statement was disallowed when the session setting default_transaction_read_only = on. cockroachdb/cockroach#127364

Bug fixes

Contributors

This release includes 45 merged PRs by 18 authors.

v24.2.0-beta.1

Release Date: July 18, 2024

Downloads

Warning:

CockroachDB v24.2.0-beta.1 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.

Note:

Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.

Operating System Architecture Full executable SQL-only executable
Linux Intel cockroach-v24.2.0-beta.1.linux-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.1.linux-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-beta.1.linux-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.1.linux-arm64.tgz
(SHA256)
Mac
(Experimental)
Intel cockroach-v24.2.0-beta.1.darwin-10.9-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.1.darwin-10.9-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-beta.1.darwin-11.0-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-beta.1.darwin-11.0-arm64.tgz
(SHA256)
Windows
(Experimental)
Intel cockroach-v24.2.0-beta.1.windows-6.2-amd64.zip
(SHA256)
cockroach-sql-v24.2.0-beta.1.windows-6.2-amd64.zip
(SHA256)

Docker image

Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are generally available for production use.

To download the Docker image:

icon/buttons/copy

docker pull cockroachdb/cockroach-unstable:v24.2.0-beta.1

Source tag

To view or download the source code for CockroachDB v24.2.0-beta.1 on Github, visit v24.2.0-beta.1 source tag.

Changelog

View a detailed changelog on GitHub: v24.2.0-alpha.2...v24.2.0-beta.1

Security updates

  • Added support for a custom certificate authority (CA) to verify certificates from the JWT issuer domain, which hosts the JSON Web Key Set (JWKS) configuration that is fetched to validate JWT, along with the new cluster setting server.jwt_authentication.issuer_custom_ca to set the custom root CA. #126062

General changes

  • Job status changes now log events to the OPS channel, to indicate the previous and new status of the job. #125319

Enterprise edition changes

  • The new cluster setting server.oidc_authentication.client.timeout allows configuration of the HTTP client timeout for external calls made during OIDC authentication. The default timeout is 30 seconds. #125767
  • The Kafka sink for changefeeds now supports authentication using AWS IAM roles, providing a more secure method for connecting to AWS Managed Streaming for Apache Kafka (MSK) clusters. #125745

SQL language changes

  • Added pgvector encoding, decoding, and operators, without index acceleration. #124292
  • Added support for generic query plans to the optimizer to reduce the computational burden of query optimization by caching and reusing plans in later executions of the same statement. "Custom" query plans are optimized on every execution, while "generic" plans are optimized once and reused on future executions. Generic query plans are beneficial in cases where query optimization contributes significant overhead to the total cost of executing a query. #126528 #127012
    • When the session setting plan_cache_mode is set to auto, the system automatically determines whether to use custom or generic query plans for the execution of a prepared statement.
    • When the session setting plan_cache_mode is set to force_generic_plan, prepared statements will reuse optimized query plans without re-optimization, as long as the plans do not become stale due to schema changes or new table statistics.
    • The setting is used during EXECUTE commands and the EXPLAIN ANALYZE output includes a plan type field that displays: generic, re-optimized if the plan is optimized for the current execution, generic, reused if the plan is reused without re-optimization, or custom for other plans.
  • The output of SHOW GRANTS for a role now includes privileges inherited from the public role, which is a default role defined on every cluster. #127086

Operational changes

  • For the TELEMETRY channel, TCL sampled_query events will now be sampled at the rate specified by the setting sql.telemetry.query_sampling.max_event_frequency, which is already used to limit the rate of sampling DML statements. #126484
  • The encode-uri command now supports the --certs-dir option as an alternative to passing individual certificate paths. #126793

Command-line changes

  • The new --shutdown flag of the cockroach node drain command shuts down the node automatically after draining successfully completes. #126950

Bug fixes

  • Fixed a bug on the node list of the Cluster overview page where the icons present on certain tables to expand and collapse expandable rows did not work. #126639
  • Fixed a bug that prevented fast path inserts into regional by row tables with uniqueness constraints under READ COMMITTED isolation. #126504
  • Fixed a bug where the sql.stats.discarded.current metric omitted discarded statements from its count. Both discarded statements and transactions are included in the metric. #126585
  • Fixed a bug where the Database page could crash if range information is not available. #126419
  • Fixed a bug that caused background jobs to incorrectly respect a statement timeout. #126336
  • Fixed a bug when creating partial statistics with the USING EXTREMES option (disabled by default) where the merged statistic could contain inaccurate DISTINCT counts. #126830
  • Fixed bug where a replication zone configuration for a partition key could disappear during truncation. #126531

Performance improvements

  • The efficiency of merging partial statistics into existing statistics has been improved. #126830
  • The optimizer now generates more efficient plans for queries with clauses like ORDER BY col ASC NULLS LAST and ORDER BY col DESC NULLS FIRST when col is guaranteed to not be NULL. #126685

Contributors

This release includes 96 merged PRs by 49 authors.

v24.2.0-alpha.2

Release Date: July 10, 2024

Downloads

Warning:

CockroachDB v24.2.0-alpha.2 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.

Note:

Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.

Operating System Architecture Full executable SQL-only executable
Linux Intel cockroach-v24.2.0-alpha.2.linux-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-alpha.2.linux-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-alpha.2.linux-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-alpha.2.linux-arm64.tgz
(SHA256)
Mac
(Experimental)
Intel cockroach-v24.2.0-alpha.2.darwin-10.9-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-alpha.2.darwin-10.9-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-alpha.2.darwin-11.0-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-alpha.2.darwin-11.0-arm64.tgz
(SHA256)
Windows
(Experimental)
Intel cockroach-v24.2.0-alpha.2.windows-6.2-amd64.zip
(SHA256)
cockroach-sql-v24.2.0-alpha.2.windows-6.2-amd64.zip
(SHA256)

Docker image

Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are generally available for production use.

To download the Docker image:

icon/buttons/copy

docker pull cockroachdb/cockroach-unstable:v24.2.0-alpha.2

Source tag

To view or download the source code for CockroachDB v24.2.0-alpha.2 on Github, visit v24.2.0-alpha.2 source tag.

Changelog

View a detailed changelog on GitHub: v24.2.0-alpha.1...v24.2.0-alpha.2

General changes

SQL language changes

  • Added the sql.auth.grant_option_inheritance.enabled cluster setting. The default value is true, which maintains consistency with CockroachDB's previous behavior: users granted a privilege with WITH GRANT OPTION can in turn grant that privilege to others. When sql.auth.grant_option_inheritance.enabled is set to false, the GRANT OPTION is not inherited through role membership, thereby preventing descendant roles from granting the privilege to others. However, the privilege itself continues to be inherited through role membership. #125590
  • The pg_catalog.pg_attribute table now has a column named attishidden, which indicates if the table column or attribute is NOT VISIBLE. #126397

Bug fixes

Performance improvements

Contributors

This release includes 130 merged PRs by 42 authors.

v24.2.0-alpha.1

Release Date: July 1, 2024

Downloads

Warning:

CockroachDB v24.2.0-alpha.1 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.

Note:

Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.

Operating System Architecture Full executable SQL-only executable
Linux Intel cockroach-v24.2.0-alpha.1.linux-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-alpha.1.linux-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-alpha.1.linux-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-alpha.1.linux-arm64.tgz
(SHA256)
Mac
(Experimental)
Intel cockroach-v24.2.0-alpha.1.darwin-10.9-amd64.tgz
(SHA256)
cockroach-sql-v24.2.0-alpha.1.darwin-10.9-amd64.tgz
(SHA256)
ARM cockroach-v24.2.0-alpha.1.darwin-11.0-arm64.tgz
(SHA256)
cockroach-sql-v24.2.0-alpha.1.darwin-11.0-arm64.tgz
(SHA256)
Windows
(Experimental)
Intel cockroach-v24.2.0-alpha.1.windows-6.2-amd64.zip
(SHA256)
cockroach-sql-v24.2.0-alpha.1.windows-6.2-amd64.zip
(SHA256)

Docker image

Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are generally available for production use.

To download the Docker image:

icon/buttons/copy

docker pull cockroachdb/cockroach-unstable:v24.2.0-alpha.1

Source tag

To view or download the source code for CockroachDB v24.2.0-alpha.1 on Github, visit v24.2.0-alpha.1 source tag.

General changes

  • The following metrics were added for observability into the source of disk writes:
    • storage.category-pebble-wal.bytes-written
    • storage.category-pebble-compaction.bytes-written
    • storage.category-pebble-ingestion.bytes-written
    • storage.category-pebble-memtable-flush.bytes-written
    • storage.category-raft-snapshot.bytes-written
    • storage.category-encryption-registry.bytes-written
    • storage.category-crdb-log.bytes-written
    • storage.category-sql-row-spill.bytes-written
    • storage.category-sql-col-spill.bytes-written
    • storage.category-unspecified.bytes-written #119024
  • The storage.value_blocks.enabled cluster setting has been removed; value blocks are always enabled. #122164
  • The following metrics were added for improved observability into disk bandwidth:
    • storage.disk.read-max.bytespersecond
    • storage.disk.write-max.bytespersecond #121553
  • Added two new cluster settings, storage.sstable.compression_algorithm_backup_storage and storage.sstable.compression_algorithm_backup_transport, which in addition to the existing cluster setting storage.sstable.compression_algorithm, can be used to alter the compression algorithm used for various types of SSTs. #124245

Enterprise edition changes

  • SHOW CHANGEFEED JOB, SHOW CHANGEFEED JOBS, and SHOW JOBS no longer expose user sensitive information like client_key. #122529
  • Added the new option encode_json_value_null_as_object to JSON-formatted changefeeds that outputs 'null'::jsonb as {"__crdb_json_null__": true} instead of null, to disambiguate between SQL-null and JSON-null. With this option enabled, if the literal value {"__crdb_json_null__": true} is present in a JSON value, it will have the same representation as JSON-null with this option enabled. If such a value is encountered in a changefeed, a (rate-limited) warning will be printed to the DEV channel. #122848
  • Added an error message for changefeed options and parameters that are not supported by the Apache Pulsar sink. #124581
  • Scheduled changefeeds now pause after being restored onto a different cluster, and after completion of physical cluster replication to avoid inadvertent concurrent execution of the same schedule on multiple clusters. #124631
  • The DEBUG_PAUSE_ON option has been removed and replaced with the restore.restore_after_failure pause point to match other pause points used throughout CockroachDB. You can set this pause point by running: SET CLUSTER SETTING jobs.debug.pausepoints = 'restore.after_restore_failure'. #125158

SQL language changes

  • Default schema privilege changes will now be reflected and can be monitored in the pg_default_acl table. #121506
  • The schema of the pg_catalog.pg_proc virtual table now matches exactly that of PostgreSQL versions 14–16. The following changes are applied:
    • proisagg and proiswindow columns are removed (done in v11).
    • protransform column is removed (done in v12).
    • prosqlbody column is added (done in v14).
    • prosupport and prokind columns are moved into their correct spot (these were incorrectly present at the end of the columns list). #121966
  • Added SHOW EXTERNAL CONNECTIONS and SHOW EXTERNAL CONNECTION <connection name>. These queries display redacted connection URIs and other useful information, such as the connection type. Access to these queries is restricted to the owner of the connection or users with USAGE privilege. admin or root users will have unrestricted access to all connections. #123545
  • Using the CREATE STATISTICS query without the AS OF SYSTEM TIME option could contend with concurrent transactions and cost performance. Running CREATE STATISTICS without specifying AS OF SYSTEM TIME now uses a default of -1us. #124488
  • The nodes field of the EXPLAIN ANALYZE output has been renamed to sql nodes to clarify that this field describes SQL processing and it does not include any information about KV nodes that might have participated in the query execution. #124681
  • EXPLAIN ANALYZE output now has a new field KV nodes that includes all KV nodes that were used to serve read requests by a particular SQL operator. #124681
  • Fixed the Regions field in the EXPLAIN ANALYZE output to include regions of KV nodes. Previously, only regions of SQL nodes involved in query processing were included. #124888
  • Allow foreign keys to be created over stored computed columns. However, most ON UPDATE and ON DELETE options for foreign key constraints are not allowed with computed columns. Only ON UPDATE (NO ACTION|RESTRICT) and ON DELETE (NO ACTION|RESTRICT|CASCADE) are supported. #124851
  • EXPLAIN ANALYZE output now has a new field used follower read to SQL operators whenever their reads were served by the follower replicas. Previously, this information was only available in the trace. #125152
  • The new attribute historical: AS OF SYSTEM TIME ... is now included in EXPLAIN ANALYZE output whenever the query performs historical reads. #125152
  • EXPLAIN ANALYZE statements are now supported when executed via UI SQL shell. #125455
  • Histograms are no longer constructed using a default sample size of 10k. Samples are now dynamically sized based on table size unless the sample count has been set in the table or cluster settings. #125345
  • The optimizer will now generate plans utilizing partial indexes with IS NOT NULL predicates in more cases. #125487
  • The SHOW TYPES statement now includes user-defined composite types. It omitted those types ever since composite types were added in v23.1. #124730
  • Added the COMMENT ON TYPE statement for implicit transactions. #124942

Operational changes

  • Added a distinction between row updates (row) and resolved timestamp (resolved) messages in some changefeed metrics. #122645
  • Modified the default Grafana dashboards to include a breakdown by message type for the changefeed_emitted_rows metric. #122802
  • Updated the generated doc descriptions for system visible cluster settings to reflect these are read-only for CockroachDB Serverless and read-write for the other deployments. #124028
  • Added the cluster setting debug.zip.redact_addresses.enabled that allows the user to enable or disable redaction of fields like hostname and IP addresses. #123544
  • Improved disk usage metric reporting over volumes that dynamically change their size over the life of the cockroach process. #124999
  • crdb_internal.cluster_execution_insights.txt and crdb_internal.cluster_txn_execution_insights.txt have been removed from the debug zip. These files contained cluster-wide insights for statements and transactions. Users can still rely on the per-node execution insights in crdb_internal.node_execution_insights.txt and crdb_internal.node_txn_execution_insights.txt. #125654
  • Removed the stuck rangefeed cancel feature and its related cluster setting kv.rangefeed.range_stuck_threshold, because it was only available in non-mux rangefeeds. Previously, the stuck rangefeed cancel feature was introduced to restart single rangefeeds automatically if they had not received KV updates for some time. #125663
  • Fixed a bug where collection of debug information for very long-running jobs could use excessive space in the job_info system table and/or cause some interactions with the jobs system to become slow. #126084
  • All system tables are now visible in application virtual clusters that were created before v24.1. #125979

DB Console changes

  • The Goroutine Scheduling Latency graph has been added to the Runtime dasboard. #121369
  • Updated the time format to use a . (dot) as separation between seconds and milliseconds, which affects many pages in the DB Console. #121456
  • The Storage dashboard now contains a graph categorizing disk writes that contribute to sys.host.disk.write.bytes according to the source of the write (WAL, compactions, SSTable ingestion, memtable flushes, raft snapshots, encryption registry, logs, SQL columnar spill, or SQL row spill). #119024
  • The favicon now renders properly for the DB Console along with other image files. #121380
  • The color of Unavailable Ranges in the Summary panel of the Replication dashboard is now red when nonzero. #123120
  • Removed the $ sign on the Databases and Jobs pages in the DB Console. #125370
  • Added two graphs to the Storage dashboard that display count and size of L0 SSTables in Pebble. This provides increased visibility into L0 compaction issues. #125653
  • Removed the p95 metrics from the tooltip on the Job Latency graph of the TTL dashboard, because there are no p95 values computed for any of the metrics. #122345
  • Updated the Storage dashboard graphs to show most metrics on a per-store basis when viewing a single node's metrics. This provides increased visibility into issues caused by specific stores on each node. #125699

Bug fixes

  • Fixed a crash introduced in v23.2.5 and v24.1.0-beta.2 that could occur when planning statistics collection on a table with a virtual computed column using a user-defined type when the newly introduced cluster setting sql.stats.virtual_computed_columns.enabled is set to true. This setting was introduced in v23.2.4 and v24.1.0-alpha.1. #123926
  • Fixed handling in the declarative schema changer when columns are included in the STORING() clause of CREATE INDEX. It now checks if the column is virtual beforehand, and properly detects when a column is already handled by an existing index when the column name has UTF-8 characters. #124981
  • Fixed an issue where adding a column with a default value of an empty array would not succeed. #125284
  • ALTER TABLE ... ADD CONSTRAINT UNIQUE will now fail with a well-formed error message and code 42601 if a statement tries to add a UNIQUE constraint on an expression. #125282
  • Resolved a log message that read: expiration of liveness record ... is not greater than expiration of the previous lease ... after liveness heartbeat. This message is no longer possible. #124885
  • Fixed a bug in v24.1, v23.2, and v23.1 where using the changefeed.aggregator.flush_jitter cluster setting with min_checkpoint_frequency set to 0 could cause panics. #125317
  • Fixed a bug where the public schema would be created with the wrong owner. Previously, the admin role would own the public schema. Now the database owner is also the owner of the public schema. The ownership can be altered after the schema is created. #124894
  • Previously, CockroachDB would hit an internal error when evaluating inserts into REGIONAL BY ROW tables where the source is a VALUES clause with a single row and at least one boolean expression. The bug was introduced in v23.2.0 and is now fixed. #125492
  • Fixed a bug in logging where an error code was misreported for canceled queries. This bug affected the SQL_PERF (slow query logs) and SQL_EXEC (sql exec logs) logging channels. #124371
  • Fixed a bug in which constant LIKE patterns containing certain sequences of backslashes did not become constrained scans. This bug has been present since v21.1.13 when support for building constrained scans from LIKE patterns containing backslashes was added. #125507
  • Fixed a bug introduced in v22.1 where cockroach-sql does not recognize the --format flag. #124735
  • Fixed a bug where CREATE TABLE with index expressions could hit undefined column errors on transaction retries. #125910
  • Fixed a bug where some DDL and administrative statements used within a common table expression would fail with an unrecognized relational expression type internal error. #125959
  • Fixed a bug in cockroach debug tsdump where the command fails when a custom SQL port is used and the --format=raw flag is provided. #125626
  • Attempts to alter the data type of a column used in a computed column expression are now blocked. #125870
  • Fixed the statistics estimation code in the optimizer so it does not use the empty histograms produced if histogram collection has been disabled during stats collection due to excessive memory utilization. Now the optimizer will rely on distinct counts instead of the empty histograms and should produce better plans as a result. This bug has existed since CockroachDB v22.1. #125968

Performance improvements

  • More efficient query plans are now generated for queries with text similarity filters, e.g., text_col % 'foobar'. These plans are generated if the optimizer_use_trigram_similarity_optimization session setting is enabled, which it is by default. This setting is disabled by default in previous versions. #121973
  • Schema changes that cause a data backfill, such as adding a non-nullable column or changing the primary key, will now split and scatter the temporary indexes used to perform the change. This reduces the chance of causing a write hotspot that can slow down foreground traffic. #120736
  • Multiple or large numbers of grants on tables and types within one transaction now run faster. #123414
  • Lock operations are now removed from query plans when the optimizer can prove that no rows would be locked. #124830
  • Some privilege checks when scanning the crdb_internal.system_jobs internal table now happen once before the scan, instead of once for each row. This will improve performance for queries that read from crdb_internal.system_jobs. #117438
  • Improved the initial range descriptor scan on startup. Node startup should now be faster on larger stores. #123959
  • Previously, concurrent transactions that constructed large write batches could cause hotspots. This was because the transaction record for all ranges would coalesce on a single range, which would then cause this range's leaseholder to perform all intent resolution work. This is fixed by distributing transaction records randomly across the ranges the write batch touches. In turn, hotspots are prevented. #125744

Contributors

This release includes 1234 merged PRs by 97 authors.


Yes No
On this page

Yes No