mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-21 00:50:35 +00:00
This is the first phase of providing strong exception safety guarantees by the generic `compaction_backlog_tracker::replace_sstables`. Once all compaction strategies backlog trackers' replace_sstables provide strong exception safety guarantees (i.e. they may throw an exception but must revert on error any intermediate changes they made to restore the tracker to the pre-update state). Once this series is merged and ICS replace_sstables is also made strongly exception safe (using infrastructure from size_tiered_backlog_tracker introduced here), `compaction_backlog_tracker::replace_sstables` may allow exceptions to propagate back to the caller rather than disabling the backlog tracker on errors. Closes #14104 * github.com:scylladb/scylladb: leveled_compaction_backlog_tracker: replace_sstables: provide strong exception safety guarantees time_window_backlog_tracker: replace_sstables: provide strong exception safety guarantees size_tiered_backlog_tracker: replace_sstables: provide strong exception safety guarantees size_tiered_backlog_tracker: provide static calculate_sstables_backlog_contribution size_tiered_backlog_tracker: make log4 helper static size_tiered_backlog_tracker: define struct sstables_backlog_contribution size_tiered_backlog_tracker: update_sstables: update total_bytes only if set changed compaction_backlog_tracker: replace_sstables: pass old and new sstables vectors by ref compaction_backlog_tracker: replace_sstables: add FIXME comments about strong exception safety