Xline
Xline copied to clipboard
A geo-distributed KV store for metadata management
Currently, heartbeat and append entries are separated -- heartbeat will be triggered every 150ms. However, when the server is busy, there will be many append entries triggered in between two...
Create `CurpGroup` wrapper that will generate a curp group with n nodes. Provide many utils for testing, such as `enable_noded`, `get_latest_term`, `get_leader`.
Add a test to cover the situation in this PR. _Originally posted by @rogercloud in https://github.com/datenlord/Xline/issues/86#issuecomment-1324927732_
Command duplication can occur in many situations: client retry, optimistic recovery, etc. We need to add a mechanism to prevent the command from being executed twice. _Originally posted by @rogercloud...
In the current implementation, we traverse a `KeyRange` vector that may have duplicates
In concurrent tests of Curp, add verification instead of just observing logs. _Originally posted by @rogercloud in https://github.com/datenlord/Xline/pull/66#discussion_r1020330882_
Currently, we use a big RwLock to protect the state. Replace it with fine-grained locking.
Garbage collection logic is still missing.
Create a testing framework that will allow us to manually crash and recover servers as needed, as well as evaluate their consistency.