Documentation ¶
Overview ¶
Package raftstore implements a storage backend for raft on top of LevelDB.
LevelDBStore implements the LogStore and StableStore interfaces of https://godoc.org/github.com/hashicorp/raft by using https://godoc.org/github.com/syndtr/goleveldb as a storage backend.
Index ¶
- type LevelDBStore
- func (s *LevelDBStore) Close() error
- func (s *LevelDBStore) ConvertToProto() error
- func (s *LevelDBStore) DeleteRange(min, max uint64) error
- func (s *LevelDBStore) FirstIndex() (uint64, error)
- func (s *LevelDBStore) Get(key []byte) ([]byte, error)
- func (s *LevelDBStore) GetBulkIterator(start, limit uint64) iterator.Iterator
- func (s *LevelDBStore) GetLog(index uint64, rlog *raft.Log) error
- func (s *LevelDBStore) GetUint64(key []byte) (uint64, error)
- func (s *LevelDBStore) LastIndex() (uint64, error)
- func (s *LevelDBStore) Set(key []byte, val []byte) error
- func (s *LevelDBStore) SetUint64(key []byte, val uint64) error
- func (s *LevelDBStore) StoreLog(entry *raft.Log) error
- func (s *LevelDBStore) StoreLogProto(msg *pb.RaftLog) error
- func (s *LevelDBStore) StoreLogs(logs []*raft.Log) error
- func (s *LevelDBStore) WriteBatch(batch *leveldb.Batch) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LevelDBStore ¶
type LevelDBStore struct {
// contains filtered or unexported fields
}
LevelDBStore implements the raft.LogStore and raft.StableStore interfaces on top of leveldb.
func NewLevelDBStore ¶
func NewLevelDBStore(dir string, errorIfExist bool, useProtobuf bool) (*LevelDBStore, error)
NewLevelDBStore opens a leveldb at the given directory to be used as a log- and stable storage for raft.
func (*LevelDBStore) Close ¶
func (s *LevelDBStore) Close() error
Close closes the LevelDBStore. No other methods may be called after this.
func (*LevelDBStore) ConvertToProto ¶
func (s *LevelDBStore) ConvertToProto() error
convertToProto converts the database to use protobuf-encoded values instead of json-encoded values. This is a no-op once the database has been converted.
func (*LevelDBStore) DeleteRange ¶
func (s *LevelDBStore) DeleteRange(min, max uint64) error
DeleteRange implements raft.LogStore.
func (*LevelDBStore) FirstIndex ¶
func (s *LevelDBStore) FirstIndex() (uint64, error)
FirstIndex implements raft.LogStore.
func (*LevelDBStore) Get ¶
func (s *LevelDBStore) Get(key []byte) ([]byte, error)
Get implements raft.StableStore.
func (*LevelDBStore) GetBulkIterator ¶
func (s *LevelDBStore) GetBulkIterator(start, limit uint64) iterator.Iterator
GetBulkIterator returns an iterator which can be used to read the database entries in [start, limit). It performs much better than looping over GetLog.
func (*LevelDBStore) GetLog ¶
func (s *LevelDBStore) GetLog(index uint64, rlog *raft.Log) error
GetLog implements raft.LogStore.
func (*LevelDBStore) GetUint64 ¶
func (s *LevelDBStore) GetUint64(key []byte) (uint64, error)
GetUint64 implements raft.StableStore.
func (*LevelDBStore) LastIndex ¶
func (s *LevelDBStore) LastIndex() (uint64, error)
LastIndex implements raft.LogStore.
func (*LevelDBStore) Set ¶
func (s *LevelDBStore) Set(key []byte, val []byte) error
Set implements raft.StableStore.
func (*LevelDBStore) SetUint64 ¶
func (s *LevelDBStore) SetUint64(key []byte, val uint64) error
SetUint64 implements raft.StableStore.
func (*LevelDBStore) StoreLog ¶
func (s *LevelDBStore) StoreLog(entry *raft.Log) error
StoreLog implements raft.LogStore.
func (*LevelDBStore) StoreLogProto ¶
func (s *LevelDBStore) StoreLogProto(msg *pb.RaftLog) error
func (*LevelDBStore) StoreLogs ¶
func (s *LevelDBStore) StoreLogs(logs []*raft.Log) error
StoreLogs implements raft.LogStore.
func (*LevelDBStore) WriteBatch ¶
func (s *LevelDBStore) WriteBatch(batch *leveldb.Batch) error