Files
scylladb/test
Botond Dénes 3b95f4f107 Merge 'Sanitize view-update-generator start-stop sequence' from Pavel Emelyanov
The v.u.g. start stop is now spread over main() code heavily.

1. sharded<v.u.g.>.start() happens early enough to allow depending services register staging sstables on it
2. after the system is "more-or-less" alive the invoke_on_all(v.u.g.::start()) is called (conditionally) to activate the generator background fiber. Not 100% sure why it happens _that_ late, but somehow it's required that while scylla is joining the cluster the generation doesn't happen
3. early on stop the v.u.g. is fully stopped

The 3rd step is pretty nasty. It may happen that v.u.g. is not stopped if scylla start aborts before the last action is defer-scheduled. Also, when it happens, it leaves stopping dependencies with non-initialized v.u.g.'s local instances, which is not symmetrical to how they start.

Said that, this PR fixes the stopping sequence to happen later, i.e. -- being defer-scheduled right after sharded<v.u.g.> is started. Also it makes sure that terminating the background fiber happens as early as it is now. This is done the compaction_manager-style -- the v.u.g. subscribes on stop signal abort source and kicks the fiber to stop when it fires.

Closes scylladb/scylladb#15466

* github.com:scylladb/scylladb:
  view_update_generator: Stop for real later
  view_update_generator: Add logging to do_abort()
  view_update_generator: Move abort kicking to do_abort()
  view_update_generator: Add early abort subscription
2023-09-21 17:01:27 +03:00
..
2023-09-14 05:25:14 -04:00
2023-09-19 11:20:02 +03:00
2023-08-30 15:34:25 +02:00
2023-06-06 13:29:16 +03:00
2023-09-19 11:20:02 +03:00