func CreateMetaBucket(tx backend.BatchTx)
CreateMetaBucket creates the `meta` bucket (if it does not exists yet).
func ReadConsistentIndex(tx backend.ReadTx) (uint64, uint64)
ReadConsistentIndex loads consistent index and term from given transaction. returns 0 if the data are not found.
func UnsafeCreateMetaBucket(tx backend.BatchTx)
UnsafeCreateMetaBucket creates the `meta` bucket (if it does not exists yet).
func UnsafeUpdateConsistentIndex(tx backend.BatchTx, index uint64, term uint64)
func UpdateConsistentIndex(tx backend.BatchTx, index uint64, term uint64)
type Backend interface { BatchTx() backend.BatchTx ReadTx() backend.ReadTx }
ConsistentIndexer is an interface that wraps the Get/Set/Save method for consistentIndex.
type ConsistentIndexer interface { // ConsistentIndex returns the consistent index of current executing entry. ConsistentIndex() uint64 // ConsistentApplyingIndex returns the consistent applying index of current executing entry. ConsistentApplyingIndex() (uint64, uint64) // UnsafeConsistentIndex is similar to ConsistentIndex, but it doesn't lock the transaction. UnsafeConsistentIndex() uint64 // SetConsistentIndex set the consistent index of current executing entry. SetConsistentIndex(v uint64, term uint64) // SetConsistentApplyingIndex set the consistent applying index of current executing entry. SetConsistentApplyingIndex(v uint64, term uint64) // UnsafeSave must be called holding the lock on the tx. // It saves consistentIndex to the underlying stable storage. UnsafeSave(tx backend.BatchTx) // SetBackend set the available backend.BatchTx for ConsistentIndexer. SetBackend(be Backend) }
func NewConsistentIndex(be Backend) ConsistentIndexer
NewConsistentIndex creates a new consistent index. If `be` is nil, it must be set (SetBackend) before first access using `ConsistentIndex()`.
func NewFakeConsistentIndex(index uint64) ConsistentIndexer