Merge #152699 152699: kvserver: add ReplicateQueueMaxSize r=tbg a=wenyihu6 Informs: https://github.com/cockroachdb/cockroach/issues/151775 Release note: none --- **kvserver: add ReplicateQueueDroppedDueToSize** Previously, we had limited observability into when queues drop replicas due to reaching their maximum size. This commit adds a metric to track and observe such events. --- **kvserver: add BaseQueueMaxSize and ReplicateQueueMaxSize** Previously, the max base queue size was hardcoded to defaultQueueMaxSize (10000). Since replica item structs in the priority queue are small, we don’t see a strong reason for this fixed limit. As an incremental and backport friendly change, this commit makes the queue size configurable via a cluster setting. The replicate queue uses its own setting, allowing its size to be increased independently while leaving other queues unchanged. --- **kvserver: add TestBaseQueueMaxSize** This commit adds tests to (1) verify metric updates when replicas are dropped from the queue, and (2) ensure the cluster setting for configuring the base queue’s max size works correctly. --- **Revert "kvserver: add TestBaseQueueMaxSize"** This reverts commit a5f01e5d165694ac03cacc5924f6c1e33f4c3d6d. --- **Revert "kvserver: add BaseQueueMaxSize and ReplicateQueueMaxSize"** This reverts commit d89eaa746c58f06ccaae4ac729438c2d10c1db0c. --- **kvserver: add ReplicateQueueMaxSize** Previously, the maximum base queue size was hardcoded to defaultQueueMaxSize (10000). Since replica item structs are small, there’s little reason to enforce a fixed limit. This commit makes the replicate queue size configurable via a cluster setting ReplicateQueueMaxSize, allowing incremental and backport-friendly adjustments. Note that reducing the setting does not drop replicas appropirately; future commits will address this behavior. --- **kvserver: add TestReplicateQueueMaxSize** This commit adds tests to (1) verify metric updates when replicas are dropped from the queue, and (2) ensure the cluster setting for ReplicateQueueMaxSize works correctly. --- **kvserver: drop excess replicas when lowering ReplicateQueueMaxSize** Previously, the ReplicateQueueMaxSize cluster setting allowed dynamic adjustment of the replicate queue’s maximum size. However, decreasing this setting did not properly drop excess replicas. This commit fixes that by removing replicas when the queue’s max size is lowered. --- **kvserver: rename ReplicateQueueDroppedDueToSize to ReplicateQueueFull** This commit improves the clarity around the naming and description of the metrics. Co-authored-by: wenyihu6 <wenyi@cockroachlabs.com>
22 часов назад История
README.md


CockroachDB is a cloud-native distributed SQL database designed to build, scale, and manage modern, data-intensive applications.

What is CockroachDB?

CockroachDB is a distributed SQL database built on a transactional and strongly-consistent key-value store. It scales horizontally; survives disk, machine, rack, and even datacenter failures with minimal latency disruption and no manual intervention; supports strongly-consistent ACID transactions; and provides a familiar SQL API for structuring, manipulating, and querying data.

For more details, see our FAQ or architecture document.

Docs

For guidance on installation, development, deployment, and administration, see our User Documentation.

Starting with CockroachCloud

We can run CockroachDB for you, so you don’t have to run your own cluster.

See our online documentation: Quickstart with CockroachCloud

Starting with CockroachDB

  1. Install CockroachDB: using a pre-built executable or build it from source.
  2. Start a local cluster and connect to it via the built-in SQL client.
  3. Learn more about CockroachDB SQL.
  4. Use a PostgreSQL-compatible driver or ORM to build an app with CockroachDB.
  5. Explore core features, such as data replication, automatic rebalancing, and fault tolerance and recovery.

Client Drivers

CockroachDB supports the PostgreSQL wire protocol, so you can use any available PostgreSQL client drivers to connect from various languages.

Deployment

  • CockroachCloud - Steps to create a free CockroachCloud cluster on your preferred Cloud platform.
  • Manual - Steps to deploy a CockroachDB cluster manually on multiple machines.
  • Cloud - Guides for deploying CockroachDB on various cloud platforms.
  • Orchestration - Guides for running CockroachDB with popular open-source orchestration systems.

Need Help?

Building from source

See our wiki for more details.

Contributing

We welcome your contributions! If you’re looking for issues to work on, try looking at the good first issue list. We do our best to tag issues suitable for new external contributors with that label, so it’s a great way to find something you can help with!

See our wiki for more details.

Engineering discussions take place on our public mailing list, cockroach-db@googlegroups.com. Also please join our Community Slack (there’s a dedicated #contributors channel!) to ask questions, discuss your ideas, and connect with other contributors.

Design

For an in-depth discussion of the CockroachDB architecture, see our Architecture Guide. For the original design motivation, see our design doc.

Licensing

All versions released after November 18, 2024, including patch fixes for prior versions 23.1 onward, are published under the CockroachDB Software License (CSL). Source code in a given file is licensed under the CSL and the copyright belongs to The Cockroach Authors unless otherwise noted in the file or in a LICENSE or README file located in the same or parent directory of the file.

Comparison with Other Databases

To see how key features of CockroachDB stack up against other databases, check out CockroachDB in Comparison.

See Also

Описание

CockroachDB - the open source, cloud-native distributed SQL database.

Конвейеры
0 успешных
0 с ошибкой