Documentation ¶
Overview ¶
Package hakeeper implements MO's hakeeper component.
Index ¶
- Constants
- func GetAllocateIDCmd(allocID pb.CNAllocateID) []byte
- func GetCNStoreHeartbeatCmd(data []byte) []byte
- func GetDeleteCNStoreCmd(cnStore pb.DeleteCNStore) []byte
- func GetInitialClusterRequestCmd(numOfLogShards uint64, numOfTNShards uint64, numOfLogReplicas uint64, ...) []byte
- func GetLogStoreHeartbeatCmd(data []byte) []byte
- func GetPatchCNStoreCmd(stateLabel pb.CNStateLabel) []byte
- func GetSetStateCmd(state pb.HAKeeperState) []byte
- func GetSetTaskSchedulerStateCmd(state pb.TaskSchedulerState) []byte
- func GetTNStoreHeartbeatCmd(data []byte) []byte
- func GetTaskTableUserCmd(user pb.TaskTableUser) []byte
- func GetTickCmd() []byte
- func GetUpdateCNLabelCmd(label pb.CNStoreLabel) []byte
- func GetUpdateCNWorkStateCmd(state pb.CNWorkState) []byte
- func GetUpdateCommandsCmd(term uint64, cmds []pb.ScheduleCommand) []byte
- func NewStateMachine(shardID uint64, replicaID uint64) sm.IStateMachine
- type BootstrapManager
- type Checker
- type ClusterDetailsQuery
- type Config
- func (cfg Config) CNStoreExpired(start, current uint64) bool
- func (cfg Config) ExpiredTick(start uint64, timeout time.Duration) uint64
- func (cfg *Config) Fill()
- func (cfg Config) LogStoreExpired(start, current uint64) bool
- func (cfg Config) TNStoreExpired(start, current uint64) bool
- func (cfg Config) Validate() error
- type IDAllocator
- type IndexQuery
- type ScheduleCommandQuery
- type StateQuery
- type TaskScheduler
Constants ¶
View Source
const ( DefaultTickPerSecond = 10 DefaultLogStoreTimeout = 5 * time.Minute DefaultTNStoreTimeout = 10 * time.Second DefaultCNStoreTimeout = 30 * time.Second )
View Source
const ( K8SIDRangeStart uint64 = 131072 K8SIDRangeEnd uint64 = 262144 // CheckDuration defines how often HAKeeper checks the health state of the cluster CheckDuration = 3 * time.Second // DefaultHAKeeperShardID is the shard ID assigned to the special HAKeeper // shard. DefaultHAKeeperShardID uint64 = 0 )
Variables ¶
This section is empty.
Functions ¶
func GetAllocateIDCmd ¶ added in v0.8.0
func GetAllocateIDCmd(allocID pb.CNAllocateID) []byte
func GetCNStoreHeartbeatCmd ¶
func GetDeleteCNStoreCmd ¶ added in v1.0.0
func GetDeleteCNStoreCmd(cnStore pb.DeleteCNStore) []byte
func GetLogStoreHeartbeatCmd ¶
func GetPatchCNStoreCmd ¶ added in v1.0.0
func GetPatchCNStoreCmd(stateLabel pb.CNStateLabel) []byte
func GetSetStateCmd ¶
func GetSetStateCmd(state pb.HAKeeperState) []byte
func GetSetTaskSchedulerStateCmd ¶ added in v0.7.0
func GetSetTaskSchedulerStateCmd(state pb.TaskSchedulerState) []byte
func GetTNStoreHeartbeatCmd ¶ added in v1.0.0
func GetTaskTableUserCmd ¶ added in v0.6.0
func GetTaskTableUserCmd(user pb.TaskTableUser) []byte
func GetTickCmd ¶
func GetTickCmd() []byte
func GetUpdateCNLabelCmd ¶ added in v0.8.0
func GetUpdateCNLabelCmd(label pb.CNStoreLabel) []byte
func GetUpdateCNWorkStateCmd ¶ added in v1.0.0
func GetUpdateCNWorkStateCmd(state pb.CNWorkState) []byte
func GetUpdateCommandsCmd ¶
func GetUpdateCommandsCmd(term uint64, cmds []pb.ScheduleCommand) []byte
func NewStateMachine ¶
func NewStateMachine(shardID uint64, replicaID uint64) sm.IStateMachine
Types ¶
type BootstrapManager ¶
type BootstrapManager interface { Bootstrap(util.IDAllocator, pb.TNState, pb.LogState) ([]pb.ScheduleCommand, error) CheckBootstrap(pb.LogState) bool }
BootstrapManager is the interface suppose to be implemented by HAKeeper's bootstrap manager.
type Checker ¶
type Checker interface { // Check is periodically called by the HAKeeper for checking the cluster // health status, a list of Operator instances will be returned describing // actions required to ensure the high availability of the cluster. Check(alloc util.IDAllocator, state pb.CheckerState) []pb.ScheduleCommand }
Checker is the interface suppose to be implemented by HAKeeper's coordinator. Checker is supposed to be stateless - Checker is free to maintain whatever internal states, but those states should never be assumed to be persistent across reboots.
type ClusterDetailsQuery ¶ added in v0.5.1
type ClusterDetailsQuery struct{ Cfg Config }
type Config ¶ added in v0.6.0
type Config struct { // TickPerSecond indicates how many ticks every second. // In HAKeeper, we do not use actual time to measure time elapse. // Instead, we use ticks. TickPerSecond int // LogStoreTimeout is the actual time limit between a log store's heartbeat. // If HAKeeper does not receive two heartbeat within LogStoreTimeout, // it regards the log store as down. LogStoreTimeout time.Duration // TNStoreTimeout is the actual time limit between a tn store's heartbeat. // If HAKeeper does not receive two heartbeat within TNStoreTimeout, // it regards the tn store as down. TNStoreTimeout time.Duration // CNStoreTimeout is the actual time limit between a cn store's heartbeat. // If HAKeeper does not receive two heartbeat within CNStoreTimeout, // it regards the tn store as down. CNStoreTimeout time.Duration }
func (Config) CNStoreExpired ¶ added in v0.6.0
func (Config) ExpiredTick ¶ added in v0.6.0
func (Config) LogStoreExpired ¶ added in v0.6.0
func (Config) TNStoreExpired ¶ added in v1.0.0
type IDAllocator ¶
type IndexQuery ¶ added in v1.0.0
type IndexQuery struct{}
type ScheduleCommandQuery ¶
type ScheduleCommandQuery struct{ UUID string }
type StateQuery ¶
type StateQuery struct{}
type TaskScheduler ¶ added in v0.6.0
type TaskScheduler interface { Schedule(cnState pb.CNState, currentTick uint64) // StartScheduleCronTask start schedule cron tasks. A timer will be started to pull the latest CronTask // from the TaskStore at regular intervals, and a timer will be maintained in memory for all Cron's to be // triggered at regular intervals. StartScheduleCronTask() // StopScheduleCronTask stop schedule cron tasks. StopScheduleCronTask() }
Click to show internal directories.
Click to hide internal directories.