This commit introduces a new chord.KVProvider implementation that will
persist most kv mutations to disk with append-only logs, and restoring
the in-memory state on start-up by replaying the logs. Lease operations
are not persisted as they are deemed volatile, and the new KV
implementation is meant for persisting SimpleKV and PrefixKV which they
are much more useful in case the node crashes.
This commit introduces a new chord.KVProvider implementation that will persist most kv mutations to disk with append-only logs, and restoring the in-memory state on start-up by replaying the logs. Lease operations are not persisted as they are deemed volatile, and the new KV implementation is meant for persisting SimpleKV and PrefixKV which they are much more useful in case the node crashes.