...

Package cindex

import "go.etcd.io/etcd/server/v3/etcdserver/cindex"
Overview
Index

Overview ▾

Package cindex provides an interface and implementation for getting/saving consistentIndex.

func CreateMetaBucket

func CreateMetaBucket(tx backend.BatchTx)

CreateMetaBucket creates the `meta` bucket (if it does not exists yet).

func ReadConsistentIndex

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

func UnsafeCreateMetaBucket(tx backend.BatchTx)

UnsafeCreateMetaBucket creates the `meta` bucket (if it does not exists yet).

func UnsafeUpdateConsistentIndex

func UnsafeUpdateConsistentIndex(tx backend.BatchTx, index uint64, term uint64)

func UpdateConsistentIndex

func UpdateConsistentIndex(tx backend.BatchTx, index uint64, term uint64)

type Backend

type Backend interface {
    BatchTx() backend.BatchTx
    ReadTx() backend.ReadTx
}

type ConsistentIndexer

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

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

func NewFakeConsistentIndex(index uint64) ConsistentIndexer