Documentation ¶
Index ¶
- Constants
- type Allocator
- type GlobalTSOAllocator
- func (gta *GlobalTSOAllocator) Alloc(count uint32) (typeutil.Timestamp, error)
- func (gta *GlobalTSOAllocator) AllocOne() (typeutil.Timestamp, error)
- func (gta *GlobalTSOAllocator) GenerateTSO(count uint32) (uint64, error)
- func (gta *GlobalTSOAllocator) GetLastSavedTime() time.Time
- func (gta *GlobalTSOAllocator) Initialize() error
- func (gta *GlobalTSOAllocator) Reset()
- func (gta *GlobalTSOAllocator) SetLimitMaxLogic(flag bool)
- func (gta *GlobalTSOAllocator) SetTSO(tso uint64) error
- func (gta *GlobalTSOAllocator) UpdateTSO() error
- type MockAllocator
Constants ¶
const ( // UpdateTimestampStep is used to update timestamp. UpdateTimestampStep = 50 * time.Millisecond )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Allocator ¶
type Allocator interface { // Initialize is used to initialize a TSO allocator. // It will synchronize TSO with etcd and initialize the // memory for later allocation work. Initialize() error // UpdateTSO is used to update the TSO in memory and the time window in etcd. UpdateTSO() error // SetTSO sets the physical part with given tso. It's mainly used for BR restore // and can not forcibly set the TSO smaller than now. SetTSO(tso uint64) error // GenerateTSO is used to generate a given number of TSOs. // Make sure you have initialized the TSO allocator before calling. GenerateTSO(count uint32) (uint64, error) // Reset is used to reset the TSO allocator. Reset() GetLastSavedTime() time.Time }
Allocator is a Timestamp Oracle allocator.
type GlobalTSOAllocator ¶
type GlobalTSOAllocator struct { LimitMaxLogic bool // contains filtered or unexported fields }
GlobalTSOAllocator is the global single point TSO allocator.
func NewGlobalTSOAllocator ¶
func NewGlobalTSOAllocator(key string, txnKV kv.TxnKV) *GlobalTSOAllocator
NewGlobalTSOAllocator creates a new global TSO allocator.
func (*GlobalTSOAllocator) Alloc ¶
func (gta *GlobalTSOAllocator) Alloc(count uint32) (typeutil.Timestamp, error)
Alloc allocates a batch of timestamps. What is returned is the starting timestamp.
func (*GlobalTSOAllocator) AllocOne ¶
func (gta *GlobalTSOAllocator) AllocOne() (typeutil.Timestamp, error)
AllocOne only allocates one timestamp.
func (*GlobalTSOAllocator) GenerateTSO ¶
func (gta *GlobalTSOAllocator) GenerateTSO(count uint32) (uint64, error)
GenerateTSO is used to generate a given number of TSOs. Make sure you have initialized the TSO allocator before calling.
func (*GlobalTSOAllocator) GetLastSavedTime ¶
func (gta *GlobalTSOAllocator) GetLastSavedTime() time.Time
GetLastSavedTime get the last saved time for tso.
func (*GlobalTSOAllocator) Initialize ¶
func (gta *GlobalTSOAllocator) Initialize() error
Initialize will initialize the created global TSO allocator.
func (*GlobalTSOAllocator) Reset ¶
func (gta *GlobalTSOAllocator) Reset()
Reset is used to reset the TSO allocator.
func (*GlobalTSOAllocator) SetLimitMaxLogic ¶
func (gta *GlobalTSOAllocator) SetLimitMaxLogic(flag bool)
SetLimitMaxLogic is to enable or disable the maximum limit on the logical part of the hybrid timestamp. When enabled, if the logical part of the hybrid timestamp exceeds the maximum limit, GlobalTSOAllocator will sleep for a period and try to allocate the timestamp again.
func (*GlobalTSOAllocator) SetTSO ¶
func (gta *GlobalTSOAllocator) SetTSO(tso uint64) error
SetTSO sets the physical part with given tso.
func (*GlobalTSOAllocator) UpdateTSO ¶
func (gta *GlobalTSOAllocator) UpdateTSO() error
UpdateTSO is used to update the TSO in memory and the time window in etcd.
type MockAllocator ¶
type MockAllocator struct { Allocator InitializeF func() error UpdateTSOF func() error SetTSOF func(tso uint64) error GenerateTSOF func(count uint32) (uint64, error) ResetF func() GetLastSavedTimeF func() time.Time }
func NewMockAllocator ¶
func NewMockAllocator() *MockAllocator
func (MockAllocator) GenerateTSO ¶
func (m MockAllocator) GenerateTSO(count uint32) (uint64, error)
func (MockAllocator) GetLastSavedTime ¶
func (m MockAllocator) GetLastSavedTime() time.Time
func (MockAllocator) Initialize ¶
func (m MockAllocator) Initialize() error
func (MockAllocator) Reset ¶
func (m MockAllocator) Reset()
func (MockAllocator) SetTSO ¶
func (m MockAllocator) SetTSO(tso uint64) error
func (MockAllocator) UpdateTSO ¶
func (m MockAllocator) UpdateTSO() error