tiflashcompute

package
v1.1.0-beta.0...-c0b86a3 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
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"
)
View Source
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"
)
View Source
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
)
View Source
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

func InitGlobalTopoFetcher(typ string, addr string, clusterID string, isFixedPool bool) (err error)

InitGlobalTopoFetcher init globalTopoFetcher if is in disaggregated-tiflash mode. It's not thread-safe.

func IsValidAutoScalerConfig

func IsValidAutoScalerConfig(typ string) bool

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:

  1. MockAutoScaler: Normally for test, can run in local environment.
  2. AWSAutoScaler: AutoScaler runs on AWS.
  3. GCPAutoScaler: AutoScaler runs on GCP.
  4. TestAutoScaler: AutoScaler just for unit test.

func GetGlobalTopoFetcher

func GetGlobalTopoFetcher() TopoFetcher

GetGlobalTopoFetcher return global topo fetcher, not thread safe.

Jump to

Keyboard shortcuts

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