Files
scylladb/docs
Kamil Braun 67d4e5576d sys_dist_ks: split CDC streams table partitions into clustered rows
Until now, the lists of streams in the `cdc_streams_descriptions` table
for a given generation were stored in a single collection. This solution
has multiple problems when dealing with large clusters (which produce
large lists of streams):
1. large allocations
2. reactor stalls
3. mutations too large to even fit in commitlog segments

This commit changes the schema of the table as described in issue #7993.
The streams are grouped according to token ranges, each token range
being represented by a separate clustering row. Rows are inserted in
reasonably large batches for efficiency.

The table is renamed to enable easy upgrade. On upgrade, the latest CDC
generation's list of streams will be (re-)inserted into the new table.

Yet another table is added: one that contains only the generation
timestamps clustered in a single partition. This makes it easy for CDC
clients to learn about new generations. It also enables an elegant
two-phase insertion procedure of the generation description: first we
insert the streams; only after ensuring that a quorum of replicas
contains them, we insert the timestamp. Thus, if any client observes a
timestamp in the timestamps table (even using a ONE query),
it means that a quorum of replicas must contain the list of streams.
2021-02-18 11:44:59 +01:00
..
2021-01-13 11:07:29 +02:00
2021-02-14 22:09:24 +02:00
2021-01-13 11:07:29 +02:00
2020-12-22 15:33:31 +02:00
2020-12-03 17:37:18 +01:00
2020-12-03 17:37:18 +01:00

Scylla Developer Documentation

This documentation targets developers who are interested in contributing to Scylla codebase.

Contents

  • Alternator - The open source DynamoDB-compatible API reference.
  • Design notes - Explanations describing how new features work for other contributors and exploratory research.
  • Guides - Instructions on how to build, run, test and debug the Scylla codebase.
  • Contribute - Guidelines on how to contribute and maintain the project.