Fixes: SCYLLADB-1416
Adds an optional replay_position to the (transient) replay history, and provides this (when available) to tombstone_gc gc_min_time callback checks.
When updating repair history, we set a commitlog cleanup record preventing replay of data lower than current flush position, and add said flush position to the local repair history.
The idea is that when set (not zero rp), this can be used to limit the commitlog segments from which we check timestamps, potentially filtering out older ones. This will allow tombstone gc repair case to potentially filter out some commitlog data, and thus reducing the retention window for tombstones.
Note: this does not affect the persisted repair history, only node-local, transient data.
Feature improvement. No backport needed.
Closesscylladb/scylladb#29854
* github.com:scylladb/scylladb:
test_...data_resurrection: Add test case for repair CL truncation
test.py: Make --log-level work again.
repair: Set commitlog cleanup record and store replay pos in history
tombstone_gc: Add optional replay_position to repair_history
main/cql_test_env: Make tombstone gc_time_min_source use just table CL
table: Add ready_for_writes attribute
db::commitlog: Add optional replay_position sieve to min_gc_time
db::replay_position: Add attribute valid()