package schema
import "go.etcd.io/etcd/server/v3/storage/schema"
Index ¶
- Constants
- Variables
- func BackendMemberKey(id types.ID) []byte
- func CreateMetaBucket(tx backend.BatchTx)
- func DefaultIgnores(bucket, key []byte) bool
- func DetectSchemaVersion(lg *zap.Logger, tx backend.ReadTx) (v semver.Version, err error)
- func Migrate(lg *zap.Logger, tx backend.BatchTx, w wal.Version, target semver.Version) error
- func MustUnsafeGetAllLeases(tx backend.UnsafeReader) []*leasepb.Lease
- func MustUnsafeGetLease(tx backend.UnsafeReader, leaseID int64) *leasepb.Lease
- func MustUnsafePutLease(tx backend.UnsafeWriter, lpb *leasepb.Lease)
- func MustUnsafeSaveConfStateToBackend(lg *zap.Logger, tx backend.UnsafeWriter, confState *raftpb.ConfState)
- func NewAuthBackend(lg *zap.Logger, be backend.Backend) auth.AuthBackend
- func NewMembershipBackend(lg *zap.Logger, be backend.Backend) *membershipBackend
- func ReadConsistentIndex(tx backend.ReadTx) (uint64, uint64)
- func ReadStorageVersion(tx backend.ReadTx) *semver.Version
- func ReadStorageVersionFromSnapshot(tx *bbolt.Tx) *semver.Version
- func UnsafeClearStorageVersion(tx backend.UnsafeWriter)
- func UnsafeConfStateFromBackend(lg *zap.Logger, tx backend.UnsafeReader) *raftpb.ConfState
- func UnsafeCreateAuthRolesBucket(tx backend.UnsafeWriter)
- func UnsafeCreateLeaseBucket(tx backend.UnsafeWriter)
- func UnsafeCreateMetaBucket(tx backend.UnsafeWriter)
- func UnsafeDeleteLease(tx backend.UnsafeWriter, lpb *leasepb.Lease)
- func UnsafeDetectSchemaVersion(lg *zap.Logger, tx backend.UnsafeReader) (v semver.Version, err error)
- func UnsafeMigrate(lg *zap.Logger, tx backend.UnsafeReadWriter, w wal.Version, target semver.Version) error
- func UnsafeReadConsistentIndex(tx backend.UnsafeReader) (uint64, uint64)
- func UnsafeReadStorageVersion(tx backend.UnsafeReader) *semver.Version
- func UnsafeSetStorageVersion(tx backend.UnsafeWriter, v *semver.Version)
- func UnsafeUpdateConsistentIndex(tx backend.UnsafeReadWriter, index uint64, term uint64)
- func UnsafeUpdateConsistentIndexForce(tx backend.UnsafeReadWriter, index uint64, term uint64)
- func Validate(lg *zap.Logger, tx backend.ReadTx) error
- type ActionList
- type AlarmBackend
Constants ¶
const ( MemberAttributesSuffix = "attributes" MemberRaftAttributesSuffix = "raftAttributes" )
Variables ¶
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}) AllBuckets = []backend.Bucket{Key, Meta, Lease, Alarm, Cluster, Members, MembersRemoved, Auth, AuthUsers, AuthRoles} )
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 CreateMetaBucket ¶
CreateMetaBucket creates the `meta` bucket (if it does not exist yet).
func DefaultIgnores ¶
DefaultIgnores defines buckets & keys to ignore in hash checking.
func DetectSchemaVersion ¶
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 ¶
Migrate updates storage schema to provided target version. Downgrading requires that provided WAL doesn't contain unsupported entries.
func MustUnsafeGetAllLeases ¶
func MustUnsafeGetAllLeases(tx backend.UnsafeReader) []*leasepb.Lease
func MustUnsafeGetLease ¶
func MustUnsafeGetLease(tx backend.UnsafeReader, leaseID int64) *leasepb.Lease
func MustUnsafePutLease ¶
func MustUnsafePutLease(tx backend.UnsafeWriter, lpb *leasepb.Lease)
func MustUnsafeSaveConfStateToBackend ¶
func MustUnsafeSaveConfStateToBackend(lg *zap.Logger, tx backend.UnsafeWriter, confState *raftpb.ConfState)
MustUnsafeSaveConfStateToBackend persists confState using given transaction (tx). confState in backend is persisted since etcd v3.5.
func NewAuthBackend ¶
func NewMembershipBackend ¶
func ReadConsistentIndex ¶
ReadConsistentIndex loads consistent index and term from given transaction. returns 0 if the data are not found.
func ReadStorageVersion ¶
ReadStorageVersion loads storage version from given backend transaction. Populated since v3.6
func ReadStorageVersionFromSnapshot ¶
ReadStorageVersionFromSnapshot loads storage version from given bbolt transaction. Populated since v3.6
func UnsafeClearStorageVersion ¶
func UnsafeClearStorageVersion(tx backend.UnsafeWriter)
UnsafeClearStorageVersion removes etcd storage version in backend.
func UnsafeConfStateFromBackend ¶
UnsafeConfStateFromBackend retrieves ConfState from the backend. Returns nil if confState in backend is not persisted (e.g. backend written by <v3.5).
func UnsafeCreateAuthRolesBucket ¶
func UnsafeCreateAuthRolesBucket(tx backend.UnsafeWriter)
func UnsafeCreateLeaseBucket ¶
func UnsafeCreateLeaseBucket(tx backend.UnsafeWriter)
func UnsafeCreateMetaBucket ¶
func UnsafeCreateMetaBucket(tx backend.UnsafeWriter)
UnsafeCreateMetaBucket creates the `meta` bucket (if it does not exist yet).
func UnsafeDeleteLease ¶
func UnsafeDeleteLease(tx backend.UnsafeWriter, lpb *leasepb.Lease)
func UnsafeDetectSchemaVersion ¶
func UnsafeDetectSchemaVersion(lg *zap.Logger, tx backend.UnsafeReader) (v semver.Version, err error)
UnsafeDetectSchemaVersion non-threadsafe version of DetectSchemaVersion.
func UnsafeMigrate ¶
func UnsafeMigrate(lg *zap.Logger, tx backend.UnsafeReadWriter, w wal.Version, target semver.Version) error
UnsafeMigrate is non thread-safe version of Migrate.
func UnsafeReadConsistentIndex ¶
func UnsafeReadConsistentIndex(tx backend.UnsafeReader) (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.UnsafeReader) *semver.Version
UnsafeReadStorageVersion loads storage version from given backend transaction. Populated since v3.6
func UnsafeSetStorageVersion ¶
func UnsafeSetStorageVersion(tx backend.UnsafeWriter, v *semver.Version)
UnsafeSetStorageVersion updates etcd storage version in backend. Populated since v3.6
func UnsafeUpdateConsistentIndex ¶
func UnsafeUpdateConsistentIndex(tx backend.UnsafeReadWriter, index uint64, term uint64)
func UnsafeUpdateConsistentIndexForce ¶
func UnsafeUpdateConsistentIndexForce(tx backend.UnsafeReadWriter, index uint64, term uint64)
func Validate ¶
Validate checks provided backend to confirm that schema used is supported.
Types ¶
type ActionList ¶
type ActionList []action
type AlarmBackend ¶
type AlarmBackend interface { CreateAlarmBucket() MustPutAlarm(member *etcdserverpb.AlarmMember) MustDeleteAlarm(alarm *etcdserverpb.AlarmMember) GetAllAlarms() ([]*etcdserverpb.AlarmMember, error) ForceCommit() }
func NewAlarmBackend ¶
func NewAlarmBackend(lg *zap.Logger, be backend.Backend) AlarmBackend
Source Files ¶
actions.go alarm.go auth.go auth_roles.go auth_users.go bucket.go changes.go cindex.go confstate.go lease.go membership.go migration.go schema.go version.go
- Version
- v3.6.0 (latest)
- Published
- May 15, 2025
- Platform
- linux/amd64
- Imports
- 20 packages
- Last checked
- 2 minutes ago –
Tools for package owners.