Documentation ¶
Index ¶
- Variables
- type BadgerStore
- func (b *BadgerStore) Close() error
- func (b *BadgerStore) DeleteRange(min, max uint64) error
- func (b *BadgerStore) FirstIndex() (uint64, error)
- func (b *BadgerStore) Get(key []byte) ([]byte, error)
- func (b *BadgerStore) GetLog(index uint64, log *raft.Log) error
- func (b *BadgerStore) GetUint64(key []byte) (uint64, error)
- func (b *BadgerStore) LastIndex() (uint64, error)
- func (b *BadgerStore) Set(key []byte, val []byte) error
- func (b *BadgerStore) SetUint64(key []byte, val uint64) error
- func (b *BadgerStore) StoreLog(log *raft.Log) error
- func (b *BadgerStore) StoreLogs(logs []*raft.Log) error
- type Options
Constants ¶
This section is empty.
Variables ¶
var ( // ErrKeyNotFound is an error indicating a given key does not exist ErrKeyNotFound = errors.New("not found") )
Functions ¶
This section is empty.
Types ¶
type BadgerStore ¶
type BadgerStore struct {
// contains filtered or unexported fields
}
BadgerStore provides access to Badger for Raft to store and retrieve log entries. It also provides key/value storage, and can be used as a LogStore and StableStore.
func New ¶
func New(options Options) (*BadgerStore, error)
New uses the supplied options to open the Badger db and prepare it for use as a raft backend.
func NewBadgerStore ¶
func NewBadgerStore(path string) (*BadgerStore, error)
NewBadgerStore takes a file path and returns a connected Raft backend.
func (*BadgerStore) Close ¶
func (b *BadgerStore) Close() error
Close is used to gracefully close the DB connection.
func (*BadgerStore) DeleteRange ¶
func (b *BadgerStore) DeleteRange(min, max uint64) error
DeleteRange deletes logs within a given range inclusively.
func (*BadgerStore) FirstIndex ¶
func (b *BadgerStore) FirstIndex() (uint64, error)
FirstIndex returns the first known index from the Raft log.
func (*BadgerStore) Get ¶
func (b *BadgerStore) Get(key []byte) ([]byte, error)
Get is used to retrieve a value from the k/v store by key
func (*BadgerStore) GetLog ¶
func (b *BadgerStore) GetLog(index uint64, log *raft.Log) error
GetLog gets a log entry from Badger at a given index.
func (*BadgerStore) GetUint64 ¶
func (b *BadgerStore) GetUint64(key []byte) (uint64, error)
GetUint64 is like Get, but handles uint64 values
func (*BadgerStore) LastIndex ¶
func (b *BadgerStore) LastIndex() (uint64, error)
LastIndex returns the last known index from the Raft log.
func (*BadgerStore) Set ¶
func (b *BadgerStore) Set(key []byte, val []byte) error
Set is used to set a key/value set outside of the raft log.
func (*BadgerStore) SetUint64 ¶
func (b *BadgerStore) SetUint64(key []byte, val uint64) error
SetUint64 is like Set, but handles uint64 values
type Options ¶
type Options struct { // Path is the directory path to the Badger db to use. Path string // BadgerOptions contains any specific Badger options you might // want to specify. BadgerOptions *badger.Options // NoSync causes the database to skip fsync calls after each // write to the log. This is unsafe, so it should be used // with caution. NoSync bool // ValueLogGC enables a periodic goroutine that does a garbage // collection of the value log while the underlying Badger is online. ValueLogGC bool // GCInterval is the interval between conditionally running the garbage // collection process, based on the size of the vlog. By default, runs every 1m. GCInterval time.Duration // GCInterval is the interval between mandatory running the garbage // collection process. By default, runs every 10m. MandatoryGCInterval time.Duration // GCThreshold sets threshold in bytes for the vlog size to be included in the // garbage collection cycle. By default, 1GB. GCThreshold int64 }
Options contains all the configuration used to open the Badger db