You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As discussed in #13962 (comment), we'll need a mechanism to clear obsolete CDC generation data so that raft-topology snapshot size does not grow endlessly as we introduce new generations over time.
The first step to do that is to turn the system.cdc_generations_v3 table into a single-partition table, where different generations are described through different clustering keys (as opposed by different partition keys, as it is today). Then turn generation IDs into timeuuids (currently they are just regular UUIDs), giving them a time-based order.
Thanks to these changes, it will be easy to efficiently clear old generations -- e.g. by inserting a range tombstone covering all timeuuids < current_gen_timeuuid.
We should do this when while we can still change CDC_GENERATIONS_V3 table schema in backward incompatible ways (i.e. before we GA topology-on-raft).
…uid-sorted' from Patryk Jędrzejczak
We make the `CDC_GENERATIONS_V3` table single-partition and change the
clustering key from `range_end` to `(id, range_end)`. We also change the
type of `id` to `timeuuid` and ensure that a new generation always has
the highest `id`. These changes allow efficient clearing of obsolete CDC
generation data, which we need to prevent Raft-topology snapshots from
endlessly growing as we introduce new generations over time.
All this code is protected by an experimental feature flag. It includes
the definition of `CDC_GENERATIONS_V3`. The table is not created unless
the feature flag is enabled.
Fixes#15163Closes#15319
* github.com:scylladb/scylladb:
system_keyspace: rename cdc_generation_id_v2
system_keyspace: change id to timeuuid in CDC_GENERATIONS_V3
cdc: generation: remove topology_description_generator
cdc: do not create uuid in make_new_generation_data
system_kayspace: make CDC_GENERATIONS_V3 single-partition
cdc: generation: introduce get_common_cdc_generation_mutations
cdc: generation: rename get_cdc_generation_mutations
As discussed in #13962 (comment), we'll need a mechanism to clear obsolete CDC generation data so that raft-topology snapshot size does not grow endlessly as we introduce new generations over time.
The first step to do that is to turn the
system.cdc_generations_v3
table into a single-partition table, where different generations are described through different clustering keys (as opposed by different partition keys, as it is today). Then turn generation IDs into timeuuids (currently they are just regular UUIDs), giving them a time-based order.Thanks to these changes, it will be easy to efficiently clear old generations -- e.g. by inserting a range tombstone covering all timeuuids < current_gen_timeuuid.
We should do this when while we can still change CDC_GENERATIONS_V3 table schema in backward incompatible ways (i.e. before we GA topology-on-raft).
cc @margdoc @gleb-cloudius
The text was updated successfully, but these errors were encountered: