mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-24 18:40:38 +00:00
An instance of `cdc::topology_description` can be quite big. The vector it consists of stores as many `token_range_description`s as there are vnodes, and the size of each `token_range_description` is O(#shards). Because of that, copying an instance of the type can lead to reactor stalls. To prevent that, we introduce an asynchronous function copying the contents on the object. Reactor stalls were detected in the call to `map_reduce` in `generation_service::legacy_do_handle_cdc_generation`, so let's start using the new function there. A similar scenario occurs in `generation_service::handle_cdc_generation`, so we modify it too. Unfortunately, it doesn't seem viable to provide a reproducer of said problem. Fixes scylladb/scylladb#24522 Backport: none. Reactor stalls are not critical. Closes scylladb/scylladb#25730 * github.com:scylladb/scylladb: cdc/generation: Delete copy constructors of topology_description cdc/generation: Clone topology_description asynchronously