schema

package
v3.0.0-...-eac99ac Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 4, 2022 License: Apache-2.0 Imports: 19 Imported by: 3

Documentation

Index

Constants

View Source
const (
	MemberAttributesSuffix     = "attributes"
	MemberRaftAttributesSuffix = "raftAttributes"
)

Variables

View Source
var (
	Key     = backend.Bucket(bucket{id: 1, name: keyBucketName, safeRangeBucket: true})
	Meta    = backend.Bucket(bucket{id: 2, name: metaBucketName, safeRangeBucket: false})
	Lease   = backend.Bucket(bucket{id: 3, name: leaseBucketName, safeRangeBucket: false})
	Alarm   = backend.Bucket(bucket{id: 4, name: alarmBucketName, safeRangeBucket: false})
	Cluster = backend.Bucket(bucket{id: 5, name: clusterBucketName, safeRangeBucket: false})

	Members        = backend.Bucket(bucket{id: 10, name: membersBucketName, safeRangeBucket: false})
	MembersRemoved = backend.Bucket(bucket{id: 11, name: membersRemovedBucketName, safeRangeBucket: false})

	Auth      = backend.Bucket(bucket{id: 20, name: authBucketName, safeRangeBucket: false})
	AuthUsers = backend.Bucket(bucket{id: 21, name: authUsersBucketName, safeRangeBucket: false})
	AuthRoles = backend.Bucket(bucket{id: 22, name: authRolesBucketName, safeRangeBucket: false})

	Test = backend.Bucket(bucket{id: 100, name: testBucketName, safeRangeBucket: false})
)
View Source
var (
	// Pre v3.5
	ScheduledCompactKeyName    = []byte("scheduledCompactRev")
	FinishedCompactKeyName     = []byte("finishedCompactRev")
	MetaConsistentIndexKeyName = []byte("consistent_index")
	AuthEnabledKeyName         = []byte("authEnabled")
	AuthRevisionKeyName        = []byte("authRevision")
	// Since v3.5
	MetaTermKeyName              = []byte("term")
	MetaConfStateName            = []byte("confState")
	ClusterClusterVersionKeyName = []byte("clusterVersion")
	ClusterDowngradeKeyName      = []byte("downgrade")
	// Since v3.6
	MetaStorageVersionName = []byte("storageVersion")
)

Functions

func BackendMemberKey

func BackendMemberKey(id types.ID) []byte

func CreateMetaBucket

func CreateMetaBucket(tx backend.BatchTx)

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

func DefaultIgnores

func DefaultIgnores(bucket, key []byte) bool

DefaultIgnores defines buckets & keys to ignore in hash checking.

func DetectSchemaVersion

func DetectSchemaVersion(lg *zap.Logger, tx backend.ReadTx) (v semver.Version, err error)

DetectSchemaVersion returns version of storage schema. Returned value depends on etcd version that created the backend. For * v3.6 and newer will return storage version. * v3.5 will return it's version if it includes all storage fields added in v3.5 (might require a snapshot). * v3.4 and older is not supported and will return error.

func Migrate

func Migrate(lg *zap.Logger, tx backend.BatchTx, w WALVersion, target semver.Version) error

Migrate updates storage schema to provided target version. Downgrading requires that provided WAL doesn't contain unsupported entries.

func MustUnsafeGetAllLeases

func MustUnsafeGetAllLeases(tx backend.ReadTx) []*leasepb.Lease

func MustUnsafeGetLease

func MustUnsafeGetLease(tx backend.BatchTx, leaseID int64) *leasepb.Lease

func MustUnsafePutLease

func MustUnsafePutLease(tx backend.BatchTx, lpb *leasepb.Lease)

func MustUnsafeSaveConfStateToBackend

func MustUnsafeSaveConfStateToBackend(lg *zap.Logger, tx backend.BatchTx, confState *raftpb.ConfState)

MustUnsafeSaveConfStateToBackend persists confState using given transaction (tx). confState in backend is persisted since etcd v3.5.

func NewAlarmBackend

func NewAlarmBackend(lg *zap.Logger, be backend.Backend) *alarmBackend

func NewAuthBackend

func NewAuthBackend(lg *zap.Logger, be backend.Backend) *authBackend

func NewMembershipBackend

func NewMembershipBackend(lg *zap.Logger, be backend.Backend) *membershipBackend

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 ReadStorageVersion

func ReadStorageVersion(tx backend.ReadTx) *semver.Version

ReadStorageVersion loads storage version from given backend transaction. Populated since v3.6

func ReadStorageVersionFromSnapshot

func ReadStorageVersionFromSnapshot(tx *bbolt.Tx) *semver.Version

ReadStorageVersionFromSnapshot loads storage version from given bbolt transaction. Populated since v3.6

func UnsafeClearStorageVersion

func UnsafeClearStorageVersion(tx backend.BatchTx)

UnsafeClearStorageVersion removes etcd storage version in backend.

func UnsafeConfStateFromBackend

func UnsafeConfStateFromBackend(lg *zap.Logger, tx backend.ReadTx) *raftpb.ConfState

UnsafeConfStateFromBackend retrieves ConfState from the backend. Returns nil if confState in backend is not persisted (e.g. backend writen by <v3.5).

func UnsafeCreateAuthRolesBucket

func UnsafeCreateAuthRolesBucket(tx backend.BatchTx)

func UnsafeCreateLeaseBucket

func UnsafeCreateLeaseBucket(tx backend.BatchTx)

func UnsafeCreateMetaBucket

func UnsafeCreateMetaBucket(tx backend.BatchTx)

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

func UnsafeDeleteLease

func UnsafeDeleteLease(tx backend.BatchTx, lpb *leasepb.Lease)

func UnsafeDetectSchemaVersion

func UnsafeDetectSchemaVersion(lg *zap.Logger, tx backend.ReadTx) (v semver.Version, err error)

UnsafeDetectSchemaVersion non-threadsafe version of DetectSchemaVersion.

func UnsafeMigrate

func UnsafeMigrate(lg *zap.Logger, tx backend.BatchTx, w WALVersion, target semver.Version) error

UnsafeMigrate is non thread-safe version of Migrate.

func UnsafeReadConsistentIndex

func UnsafeReadConsistentIndex(tx backend.ReadTx) (uint64, uint64)

UnsafeReadConsistentIndex loads consistent index & term from given transaction. returns 0,0 if the data are not found. Term is persisted since v3.5.

func UnsafeReadStorageVersion

func UnsafeReadStorageVersion(tx backend.ReadTx) *semver.Version

UnsafeReadStorageVersion loads storage version from given backend transaction. Populated since v3.6

func UnsafeSetStorageVersion

func UnsafeSetStorageVersion(tx backend.BatchTx, v *semver.Version)

UnsafeSetStorageVersion updates etcd storage version in backend. Populated since v3.6

func UnsafeUpdateConsistentIndex

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

func UnsafeUpdateConsistentIndexForce

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

func Validate

func Validate(lg *zap.Logger, tx backend.ReadTx) error

Validate checks provided backend to confirm that schema used is supported.

Types

type ActionList

type ActionList []action

type WALVersion

type WALVersion interface {
	// MinimalEtcdVersion returns minimal etcd version able to interpret WAL log.
	MinimalEtcdVersion() *semver.Version
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL