feat: Support atomic replica takeover (#1314)

* fix(server): Initialize ServerFamily with all listeners.

- Add a test for CLIENT LIST which is the visible result of this.

* use std move

* feat: Implement replicas take over

* Basic test

* Address CR comments

* Write a better test. Sadly it fails

* chore: Expose AwaitDispatches for reuse in takeover

* Ensure that no commands can execute during or after a takeover

* CR progress

* Actually disable the expiration

* Improve tests coverage

* Fix the dispatch waiting code

* Improve testing coverage and fix a shutdown snaphot bug

* don't replicate a replica
This commit is contained in:
Roy Jacobson 2023-07-02 16:11:28 +02:00 committed by GitHub
parent e71fae7eea
commit 4babed54d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 392 additions and 68 deletions

View file

@ -134,6 +134,7 @@ enum class GlobalState : uint8_t {
LOADING,
SAVING,
SHUTTING_DOWN,
TAKEN_OVER,
};
enum class TimeUnit : uint8_t { SEC, MSEC };