package cindex

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

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

Index

Functions

func UpdateConsistentIndexForce

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

Types

type Backend

type Backend interface {
	ReadTx() backend.ReadTx
}

type ConsistentIndexer

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.UnsafeReadWriter)

	// SetBackend set the available backend.BatchTx for ConsistentIndexer.
	SetBackend(be Backend)
}

ConsistentIndexer is an interface that wraps the Get/Set/Save method for consistentIndex.

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

Source Files

cindex.go doc.go

Version
v3.6.0 (latest)
Published
May 15, 2025
Platform
linux/amd64
Imports
4 packages
Last checked
4 minutes ago

Tools for package owners.