added etcd support

This commit is contained in:
ston1th 2020-11-15 18:39:16 +01:00
commit 85a8ba23bd
21 changed files with 767 additions and 247 deletions

View file

@ -10,21 +10,21 @@ import (
var ErrNotLeader = errors.New("not leader")
type kv map[string][]byte
type kvm map[string][]byte
type KV struct {
type kv struct {
mu sync.Mutex
m kv
m kvm
r *raft.Raft
}
func (kv *KV) Get(k string) []byte {
func (kv *kv) Get(k string) []byte {
kv.mu.Lock()
defer kv.mu.Unlock()
return kv.m[k]
}
func (kv *KV) Set(k string, v []byte) error {
func (kv *kv) Set(k string, v []byte) error {
if kv.r.State() != raft.Leader {
return ErrNotLeader
}
@ -40,7 +40,7 @@ func (kv *KV) Set(k string, v []byte) error {
}
// Delete deletes the given key.
func (kv *KV) Delete(k string) error {
func (kv *kv) Delete(k string) error {
if kv.r.State() != raft.Leader {
return ErrNotLeader
}