CockroachDB v24.2 is an Innovation Release, which is optional for CockroachDB Dedicated and CockroachDB Self-Hosted clusters but is required for CockroachDB Serverless.
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
- For key feature enhancements in v24.2 and other upgrade considerations, refer to the notes for v24.2.0.
- For details about release types, naming, and licensing, refer to the Releases page.
- Be sure to also review the Release Support Policy.
- After downloading a supported CockroachDB binary, learn how to install CockroachDB or upgrade your cluster.
Get future release notes emailed to you:
v24.2.3
Release Date: September 25, 2024
Downloads
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:
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 ifchangefeed.protect_timestamp.lag
has passed between the last PTS and the changefeed high-water mark. #129580 - Added two network metrics,
changefeed.network.bytes_in
andchangefeed.network.bytes_out
. These metrics track the number of bytes sent by individual changefeeds to the following sinks:- Kafka sinks. If child metrics are enabled, the metric will have a
kafka
label. - Webhook sinks. If child metrics are enabled, the metric will have a
webhook
label. - Pub/Sub sinks. If child metrics are enabled, the metric will have a
pubsub
label. - SQL sink. If child metrics are enabled, the metric will have a
sql
label. #130582
- Kafka sinks. If child metrics are enabled, the metric will have a
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
andsql.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
- Users with the
VIEWACTIVITY
system privilege can now download statement bundles from the DB Console. #129504 - Users with the
VIEWACTIVITY
system privilege can now request, view, and cancel statement bundles from the DB Console. #129809 - The DB Console now displays a notification to alert customers without an Enterprise license to upcoming license changes. #130511
Bug fixes
- Fixed a bug where
NaN
orInf
could not be used as the default value for a parameter inCREATE FUNCTION
statements. #129087 - Fix a bug in which
SELECT ... FOR UPDATE
orSELECT ... FOR SHARE
queries usingSKIP LOCKED
and aLIMIT
and/or anOFFSET
could return incorrect results underREAD COMMITTED
isolation. This bug was present when support forSKIP LOCKED
underREAD COMMITTED
isolation was introduced in v24.1.0. #128102 - Fixed a bug in which some
SELECT ... FOR UPDATE
orSELECT ... FOR SHARE
queries usingSKIP LOCKED
could still block on locked rows when usingoptimizer_use_lock_op_for_serializable
underSERIALIZABLE
isolation. This bug was present whenoptimizer_use_lock_op_for_serializable
was introduced in v23.2.0. #128102 - Fixed a bug in which
SHOW CLUSTER SETTING FOR VIRTUAL CLUSTER
would erroneously returnNULL
for some settings. #128784 - Function input parameters can no longer have the
VOID
type. #129275 - Fixed a bug in WAL failover that could prevent a node from starting if it crashed during a failover. #129364
- Fixed a bug where starting up nodes could fail with
could not insert session ...: unexpected value
if an ambiguous result error was hit while inserting into thesqlliveness
table. #129235 - Internally issued queries that are not initiated within a SQL session no longer respect a statement timeout. This includes: background jobs, queries issued by the DB Console that perform introspection, and the Cloud SQL shell. #129513
- Fixed a rare bug in
SHOW CLUSTER SETTING
that could cause it to fail with an error liketimed out: value differs between local setting and KV
. #129745 - Fixed a bug where the
schema_locked
table parameter did not prevent a table from being referenced by a foreign key. #129755 - Fixed a bug that could cause
RESTORE
to hang after encountering transient errors from the storage layer. #129895 - Fixed a bug where the
require_explicit_primary_keys
session variable would overly aggressively prevent allCREATE TABLE
statements from working. #129908 - Fixed a slow-building memory leak that could occur when using Kerberos authentication. #130319
- Fixed a bug that could result in the inability to garbage collect an MVCC range tombstone within a global table. #130951
- Fixed a potential memory leak in changefeeds using a cloud storage sink. The memory leak could occur if both
changefeed.fast_gzip.enabled
andchangefeed.cloudstorage.async_flush.enabled
are true and the changefeed received an error while attempting to write to the cloud storage sink. #130625
Contributors
This release includes 94 merged PRs by 38 authors.
v24.2.2
Release Date: September 23, 2024
Downloads
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:
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
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 toserver.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 whereserver.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- Simple string that Go can parse as a valid issuer URL:
Enterprise edition changes
- The new Kafka changefeed sink is now enabled by default. To disable it, set the cluster setting
changefeed.new_kafka_sink_enabled
tofalse
. #128700 - The new Kafka sink and the Google Cloud Pub/Sub sink now display the topics that a changefeed will emit to. #128332
Operational changes
- The cluster setting
storage.ingestion.value_blocks.enabled
can be set tofalse
if a pathological huge range happens to occur in a cluster, and incoming snapshots of that range are causing OOMs. #128098 - Two new structured logging events report connection breakage during node shutdown. Previously, these logs existed but were unstructured. These logs appear in the
OPS
logging channel.- The
node_shutdown_connection_timeout
event is logged after the timeout defined byserver.shutdown.connections.timeout
transpires, if there are still open SQL connections. - The
node_shutdown_transaction_timeout
event is logged after the timeout defined byserver.shutdown.transactions.timeout
transpires, if there are still open transactions on those SQL connections. #128712
- The
DB Console changes
- Corrected the series names in the legend for the
Admission Queueing Delay p99 – Background (Elastic) CPU
graph on the Overload dashboard by removing the `KV write ' prefix. #128891 - Hovering on graphs on Metrics dashboards now highlights the line under the mouse pointer and displays the corresponding value near the mouse pointer. #128412
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 usingDESCENDING
. #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 variousCREATE
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 asCREATE 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
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:
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.
Feature categories
Additional information
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 |
24.2 |
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 |
All★★ | |||
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★★ |
SQL
Feature | Availability | |||
---|---|---|---|---|
Ver. | Self-Hosted | Dedicated | Serverless | |
Vector search
Users can now store
|
24.2 | |||
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 | |||
COMMENT ON TYPE CockroachDB users can now annotate a type with a comment and reference the comment later for documentation purposes. |
24.2 |
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★★ | |||
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 | (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★ | |||
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 |
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. |
Feature is available for this deployment method of CockroachDB as specified in the icon’s column: CockroachDB Self-Hosted, CockroachDB Dedicated, or CockroachDB Serverless. | |
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.
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
- Settings removed
- Settings with changed defaults
- Settings with new options
- Settings with new aliases
Settings added
debug.zip.redact_addresses
: Added the cluster settingdebug.zip.redact_addresses.enabled
that allows the user to enable or disable redaction of fields likehostname
and IP addresses. #123544kv.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. #125744server.oidc_authentication.client.timeout
: The new cluster settingserver.oidc_authentication.client.timeout
allows configuration of the HTTP client timeout for external requests made during OIDC authentication. The default timeout is 30 seconds. #125767sql.auth.grant_option_for_owner.enabled
: The new cluster settingsql.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 totrue
(the default), theGRANT 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 tofalse
, theGRANT 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 theGRANT OPTION
is granted to them explicitly. #126960sql.auth.grant_option_inheritance.enabled
: Added thesql.auth.grant_option_inheritance.enabled
cluster setting. The default value istrue
, which maintains consistency with CockroachDB's previous behavior: users granted a privilege withWITH GRANT OPTION
can in turn grant that privilege to others. Whensql.auth.grant_option_inheritance.enabled
is set tofalse
, theGRANT 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. #125590storage.sstable.compression_algorithm_backup_storage
,storage.sstable.compression_algorithm_backup_transport
: Added two new cluster settings,storage.sstable.compression_algorithm_backup_storage
andstorage.sstable.compression_algorithm_backup_transport
, which in addition to the existing cluster settingstorage.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 settingkv.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. #125663storage.value_blocks.enabled
: Thestorage.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 toliveness range only = 1
.sql.defaults.results_buffer.size
has had its default changed to512 KiB
: The default value of thesql.defaults.results_buffer.size
cluster setting has been changed from 16KiB to 512KiB. This reduces the chance that clients usingREAD COMMITTED
transactions will encounter errors that cannot automatically be retried within CockroachDB. #124633sql.metrics.max_mem_stmt_fingerprints
andsql.metrics.max_mem_txn_fingerprints
have had their defaults changed to7500
: The default values for the cluster settingssql.metrics.max_mem_stmt_fingerprints
andsql.metrics.max_mem_txn_fingerprints
have been changed from100000
to7500
, thus lowering the default limits for in-memory statement and transaction fingerprints. #123430sql.stats.histogram_samples.count
has had its default changed to0
: Histograms are no longer constructed using a default sample size of10k
. Samples are now sized dynamically based on table size unless the sample count has been set in the table or cluster settings. #125345sql.ttl.default_delete_rate_limit
has had its default changed to100
: The storage parameterttl_delete_rate_limit
, which determines the rate limit for deleting expired rows, is now set to100
by default. #124354
Settings with new options
storage.sstable.compression_algorithm
has added the optionnone = 3
: The compression optionnone
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
, andstorage.sstable.compression_algorithm_backup_transport
. #126508
Settings with new aliases
changefeed.batch_reduction_retry.enabled
is aliased tochangefeed.batch_reduction_retry_enabled
.kv.closed_timestamp.follower_reads.enabled
is aliased tokv.closed_timestamp.follower_reads_enabled
.kv.range_split.by_load.enabled
is aliased tokv.range_split.by_load_enabled
.kv.transaction.write_pipelining.enabled
is aliased tokv.transaction.write_pipelining_enabled
.kv.transaction.write_pipelining.max_batch_size
is aliased tokv.transaction.write_pipelining_max_batch_size
.physical_replication.consumer.minimum_flush_interval
is aliased tobuilkio.stream_ingestion.minimum_flush_interval
.server.clock.forward_jump_check.enabled
is aliased toserver.clock.forward_jump_check_enabled
.server.oidc_authentication.autologin.enabled
is aliased toserver.oidc_authentication.autologin
.server.shutdown.connections.timeout
is aliased toserver.shutdown.connection_wait
.server.shutdown.initial_wait
is aliased toserver.shutdown.drain_wait
.server.shutdown.jobs.timeout
is aliased toserver.shutdown.jobs_wait
.server.shutdown.lease_transfer_iteration.timeout
is aliased toserver.shutdown.lease_transfer_wait
.server.shutdown.transactions.timeout
is aliased toserver.shutdown.query_wait
.server.web_session.timeout
is aliased toserver.web_session_timeout
.spanconfig.range_coalescing.application.enabled
is aliased tospanconfig.tenant_coalesce_adjacent.enabled
.spanconfig.range_coalescing.system.enabled
is aliased tospanconfig.storage_coalesce_adjacent.enabled
.sql.log.all_statements.enabled
is aliased tosql.trace.log_statement_execute
.sql.metrics.statement_details.dump_to_logs.enabled
is aliased tosql.metrics.statement_details.dump_to_logs
.trace.debug_http_endpoint.enabled
is aliased totrace.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
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.
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:
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
- Added a new Kafka changefeed sink that uses the
franz-go
library and CockroachDB'sbatching_sink
implementation. The new Kafka sink can be enabled with thechangefeed.new_kafka_sink_enabled
cluster setting, which is disabled by default. #127899 - The v2 Kafka changefeed sink now supports Amazon Managed Streaming for Apache Kafka (MSK) IAM SASL authentication. #127899
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
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.
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:
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
- A
--locality-file
flag is now available on thecockroach start
andcockroach start-single-node
commands. This provides the option of specifing node locality (typically aregion
value) as a file, as an alternative to specifying this using the--locality
flag. [#127476][#127476]
Bug fixes
- Fixed a formatting issue with the
sql_sequence_cached_node
value of theserial_normalization
setting. This could lead to an error connecting to CockroachDB if this value was set as the default forserial_normalization
via cluster settingsql.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
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.
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:
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
- URLs in the following SQL statements are now sanitized of any secrets before being written to unredacted logs. #127360
ALTER BACKUP SCHEDULE
ALTER BACKUP
ALTER CHANGEFEED SET sink
BACKUP
COPY
CREATE CHANGEFEED
CREATE EXTERNAL CONNECTION
CREATE SCHEDULE FOR BACKUP
CREATE SCHEDULE FOR CHANGEFEED
EXPORT
IMPORT INTO
RESTORE
SHOW BACKUPS
SHOW BACKUP
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 totrue
(the default), theGRANT 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 tofalse
, theGRANT 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 theGRANT OPTION
is granted to them explicitly. #126960 - Fixed a bug in which the
DISCARD
statement was disallowed when the session settingdefault_transaction_read_only = on
. cockroachdb/cockroach#127364
Bug fixes
- Fixed a bug that could cause
CREATE INVERTED INDEX
andALTER TABLE ... SET LOCALITY REGIONAL BY ROW
statements to fail if the corresponding table contained columns with non-standard characters in their names, such as tabs or newlines. This bug was introduced along with inverted indexes in v2.0. #126996 - Fixed a bug introduced in v23.2 that could cause a gateway node to crash while executing an
INSERT
statement in aREGIONAL BY ROW
table. #127278 - Fixed a bug where a schema change could hang if the lease rangefeed stopped receiving updates. #127488
Contributors
This release includes 45 merged PRs by 18 authors.
v24.2.0-beta.1
Release Date: July 18, 2024
Downloads
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.
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:
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 toauto
, 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 toforce_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 theEXPLAIN ANALYZE
output includes aplan 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, orcustom
for other plans.
- When the session setting
- The output of
SHOW GRANTS
for a role now includes privileges inherited from thepublic
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 settingsql.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 thecockroach 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
andORDER BY col DESC NULLS FIRST
whencol
is guaranteed to not beNULL
. #126685
Contributors
This release includes 96 merged PRs by 49 authors.
v24.2.0-alpha.2
Release Date: July 10, 2024
Downloads
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.
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:
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
- The compression option
none
was added to allow for the disabling of SSTable compression. This option can be used with any of the three existing cluster settings that control SSTable compression:
SQL language changes
- Added the
sql.auth.grant_option_inheritance.enabled
cluster setting. The default value istrue
, which maintains consistency with CockroachDB's previous behavior: users granted a privilege withWITH GRANT OPTION
can in turn grant that privilege to others. Whensql.auth.grant_option_inheritance.enabled
is set tofalse
, theGRANT 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 namedattishidden
, which indicates if the table column or attribute isNOT VISIBLE
. #126397
Bug fixes
- Fixed a bug that could cause internal errors when a routine had polymorphic parameters or a polymorphic return type or both. The bug has existed since v22.2 when user-defined functions (UDFs) were introduced. #123459
- In
SHOW CREATE
output, the name of an enum type is now formatted as a two-part name (schema.enum_type
) instead of a three-part name (database.schema.enum_type
). This change makes it easier to apply the output with enum types to other databases. #125996 - When altering the data type of columns with the hidden attribute (
NOT VISIBLE
), the alteration now preserves the hidden attribute in the column. Additionally, type alterations for columns withON UPDATE
expressions orDEFAULT
expressions are now allowed. #126033 - Fixed a bug where a user-defined function (UDF) that shared a name with a built-in function would not be resolved, even if the UDF had higher precedence according to the
search_path
variable. #126281 - Expressions of type
BYTES[]
are now correctly formatted inpg_catalog
tables. #126297 - Fixed a bug that could cause spurious user permission errors when multiple databases shared a common schema with a routine referencing a table. The bug has existed since v22.2 when user-defined functions (UDFs) were introduced. #123459 #126349
- Hidden columns are now included in the
indkey
column ofpg_catalog.pg_index
. #126397 - Fixed a bug when inputting
public
role as user name for built-in compatibility functions, such ashas_database_privilege
andhas_schema_privilege
. #126211 - Fixed a bug when restoring a database with a composite type. #126351
- Fixed a bug when creating partial statistics with the
USING EXTREMES
option (which is disabled by default) where it would occasionally use incorrect extreme values and collect no stats. This bug occurred when outer buckets were added to the previous histogram to account for extra distinct count. #126403 - In the DB Console event log,
ALTER ROLE
events now display correctly even when no role options are included in theALTER ROLE
statement. #126354 - Fixed a bug where
ALTER DATABASE ... DROP REGION
could fail if any tables under the given database have indexes on expressions. #126555
Performance improvements
- Starting a
cockroach
process will no longer flush buffered logs to configured logging sinks unless the process is running undersystemd
, wherecockroach
runs with theNOTIFY_SOCKET
environment variable. #125971
Contributors
This release includes 130 merged PRs by 42 authors.
v24.2.0-alpha.1
Release Date: July 1, 2024
Downloads
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.
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:
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
andstorage.sstable.compression_algorithm_backup_transport
, which in addition to the existing cluster settingstorage.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
, andSHOW JOBS
no longer expose user sensitive information likeclient_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 ofnull
, 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 theDEV
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 therestore.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
andproiswindow
columns are removed (done in v11).protransform
column is removed (done in v12).prosqlbody
column is added (done in v14).prosupport
andprokind
columns are moved into their correct spot (these were incorrectly present at the end of the columns list). #121966
- Added
SHOW EXTERNAL CONNECTIONS
andSHOW 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 withUSAGE
privilege.admin
orroot
users will have unrestricted access to all connections. #123545 - Using the
CREATE STATISTICS
query without theAS OF SYSTEM TIME
option could contend with concurrent transactions and cost performance. RunningCREATE STATISTICS
without specifyingAS OF SYSTEM TIME
now uses a default of-1us
. #124488 - The
nodes
field of theEXPLAIN ANALYZE
output has been renamed tosql 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 fieldKV nodes
that includes all KV nodes that were used to serve read requests by a particular SQL operator. #124681- Fixed the
Regions
field in theEXPLAIN 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
andON DELETE
options for foreign key constraints are not allowed with computed columns. OnlyON UPDATE (NO ACTION|RESTRICT)
andON DELETE (NO ACTION|RESTRICT|CASCADE)
are supported. #124851 EXPLAIN ANALYZE
output now has a new fieldused 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 inEXPLAIN 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 likehostname
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
andcrdb_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 incrdb_internal.node_execution_insights.txt
andcrdb_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 totrue
. 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 ofCREATE 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 code42601
if a statement tries to add aUNIQUE
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 withmin_checkpoint_frequency
set to0
could cause panics. #125317 - Fixed a bug where the
public
schema would be created with the wrong owner. Previously, theadmin
role would own thepublic
schema. Now the database owner is also the owner of thepublic
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 aVALUES
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) andSQL_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 fromLIKE
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 theoptimizer_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 fromcrdb_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.