autoid

package
v0.0.0-...-3903214 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2021 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Error instances.

Functions

func GenLocalSchemaID

func GenLocalSchemaID() int64

GenLocalSchemaID generates a local schema ID.

func GetStep

func GetStep() int64

GetStep is only used by tests

func NextStep

func NextStep(curStep int64, consumeDur time.Duration) int64

NextStep return new auto id step according to previous step and consuming time.

func SetStep

func SetStep(s int64)

SetStep is only used by tests

Types

type Allocator

type Allocator interface {
	// Alloc allocs N consecutive autoID for table with tableID, returning (min, max] of the allocated autoID batch.
	// It gets a batch of autoIDs at a time. So it does not need to access storage for each call.
	// The consecutive feature is used to insert multiple rows in a statement.
	Alloc(tableID int64, n uint64) (int64, int64, error)
	// Rebase rebases the autoID base for table with tableID and the new base value.
	// If allocIDs is true, it will allocate some IDs and save to the cache.
	// If allocIDs is false, it will not allocate IDs.
	Rebase(tableID, newBase int64, allocIDs bool) error
	// Base return the current base of Allocator.
	Base() int64
	// End is only used for test.
	End() int64
	// NextGlobalAutoID returns the next global autoID.
	NextGlobalAutoID(tableID int64) (int64, error)
}

Allocator is an auto increment id generator. Just keep id unique actually.

func NewAllocator

func NewAllocator(store kv.Storage, dbID int64, isUnsigned bool) Allocator

NewAllocator returns a new auto increment id generator on the store.

Jump to

Keyboard shortcuts

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