Documentation ¶
Index ¶
- Constants
- func GetDispatchPolicy(p DispatchPolicy) string
- func GetValidDispatchPolicy() []string
- func InitGlobalTopoFetcher(typ string, addr string, clusterID string, isFixedPool bool) (err error)
- func IsValidAutoScalerConfig(typ string) bool
- type AWSTopoFetcher
- type DispatchPolicy
- type MockTopoFetcher
- type TestTopoFetcher
- type TopoFetcher
Constants ¶
const ( // DispatchPolicyRRStr is string value for DispatchPolicyRR. DispatchPolicyRRStr = "round_robin" // DispatchPolicyConsistentHashStr is string value for DispatchPolicyConsistentHash. DispatchPolicyConsistentHashStr = "consistent_hash" // DispatchPolicyInvalidStr is string value for DispatchPolicyInvalid. DispatchPolicyInvalidStr = "invalid" )
const ( // MockASStr is string value for mock AutoScaler. MockASStr = "mock" // AWSASStr is string value for aws AutoScaler. AWSASStr = "aws" // GCPASStr is string value for gcp AutoScaler. GCPASStr = "gcp" // TestASStr is string value for test AutoScaler. TestASStr = "test" // InvalidASStr is string value for invalid AutoScaler. InvalidASStr = "invalid" )
const ( // MockASType is int value for mock AutoScaler. MockASType int = iota // AWSASType is int value for aws AutoScaler. AWSASType // GCPASType is int value for gcp AutoScaler. GCPASType // TestASType is for local tidb test AutoScaler. TestASType // InvalidASType is int value for invalid check. InvalidASType )
const ( // DefAWSAutoScalerAddr is the default address for AWS AutoScaler. DefAWSAutoScalerAddr = "tiflash-autoscale-lb.tiflash-autoscale.svc.cluster.local:8081" // DefASStr default AutoScaler. DefASStr = AWSASStr )
Variables ¶
This section is empty.
Functions ¶
func GetDispatchPolicy ¶
func GetDispatchPolicy(p DispatchPolicy) string
GetDispatchPolicy return corresponding policy string.
func GetValidDispatchPolicy ¶
func GetValidDispatchPolicy() []string
GetValidDispatchPolicy return all valid policy string.
func InitGlobalTopoFetcher ¶
InitGlobalTopoFetcher init globalTopoFetcher if is in disaggregated-tiflash mode. It's not thread-safe.
func IsValidAutoScalerConfig ¶
IsValidAutoScalerConfig return true if user config of autoscaler type is valid.
Types ¶
type AWSTopoFetcher ¶
type AWSTopoFetcher struct {
// contains filtered or unexported fields
}
AWSTopoFetcher will fetch topo from AWSAutoScaler.
func NewAWSAutoScalerFetcher ¶
func NewAWSAutoScalerFetcher(addr string, clusterID string, isFixed bool) *AWSTopoFetcher
NewAWSAutoScalerFetcher create a new AWSTopoFetcher.
func (*AWSTopoFetcher) AssureAndGetTopo ¶
func (*AWSTopoFetcher) AssureAndGetTopo() ([]string, error)
AssureAndGetTopo implements TopoFetcher interface.
func (*AWSTopoFetcher) FetchAndGetTopo ¶
func (f *AWSTopoFetcher) FetchAndGetTopo() (curTopo []string, err error)
FetchAndGetTopo implements TopoFetcher interface.
type DispatchPolicy ¶
type DispatchPolicy int
DispatchPolicy means different policy to dispatching task to tiflash_compute nods.
const ( // DispatchPolicyRR means dispatching by RoundRobin. DispatchPolicyRR DispatchPolicy = iota // DispatchPolicyConsistentHash means dispatching by ConsistentHash. DispatchPolicyConsistentHash // DispatchPolicyInvalid is invalid policy. DispatchPolicyInvalid )
func GetDispatchPolicyByStr ¶
func GetDispatchPolicyByStr(str string) (DispatchPolicy, error)
GetDispatchPolicyByStr return corresponding policy.
type MockTopoFetcher ¶
type MockTopoFetcher struct {
// contains filtered or unexported fields
}
MockTopoFetcher will fetch topo from MockAutoScaler. MockScaler can run in local environment.
func NewMockAutoScalerFetcher ¶
func NewMockAutoScalerFetcher(addr string) *MockTopoFetcher
NewMockAutoScalerFetcher create a new MockTopoFetcher.
func (*MockTopoFetcher) AssureAndGetTopo ¶
func (f *MockTopoFetcher) AssureAndGetTopo() ([]string, error)
AssureAndGetTopo implements TopoFetcher interface.
func (*MockTopoFetcher) FetchAndGetTopo ¶
func (f *MockTopoFetcher) FetchAndGetTopo() ([]string, error)
FetchAndGetTopo implements TopoFetcher interface.
type TestTopoFetcher ¶
type TestTopoFetcher struct{}
TestTopoFetcher will return empty topo list, just for unit test.
func NewTestAutoScalerFetcher ¶
func NewTestAutoScalerFetcher() *TestTopoFetcher
NewTestAutoScalerFetcher returns TestTopoFetcher.
func (*TestTopoFetcher) AssureAndGetTopo ¶
func (*TestTopoFetcher) AssureAndGetTopo() ([]string, error)
AssureAndGetTopo implements TopoFetcher interface.
func (*TestTopoFetcher) FetchAndGetTopo ¶
func (*TestTopoFetcher) FetchAndGetTopo() ([]string, error)
FetchAndGetTopo implements TopoFetcher interface.
type TopoFetcher ¶
type TopoFetcher interface { // Return tiflash compute topo cache, if topo is empty, will fetch topo from AutoScaler. // If topo is empty after fetch, will return error. AssureAndGetTopo() ([]string, error) // Always fetch topo from AutoScaler, then return topo. // If topo is empty, will not return error. You can call AssureAndGetTopo() to make sure topo is not empty. FetchAndGetTopo() ([]string, error) }
TopoFetcher is interface for fetching topo from AutoScaler. We support the following kinds of AutoScaler for now:
- MockAutoScaler: Normally for test, can run in local environment.
- AWSAutoScaler: AutoScaler runs on AWS.
- GCPAutoScaler: AutoScaler runs on GCP.
- TestAutoScaler: AutoScaler just for unit test.
func GetGlobalTopoFetcher ¶
func GetGlobalTopoFetcher() TopoFetcher
GetGlobalTopoFetcher return global topo fetcher, not thread safe.