tidb: github.com/pingcap/tidb/domain/infosync Index | Files

package infosync

import "github.com/pingcap/tidb/domain/infosync"


Package Files



const (
    // ServerInformationPath store server information such as IP, port and so on.
    ServerInformationPath = "/tidb/server/info"
    // ServerMinStartTSPath store the server min start timestamp.
    ServerMinStartTSPath = "/tidb/server/minstartts"
    // TiFlashTableSyncProgressPath store the tiflash table replica sync progress.
    TiFlashTableSyncProgressPath = "/tiflash/table/sync"

    // InfoSessionTTL is the ETCD session's TTL in seconds.
    InfoSessionTTL = 10 * 60
    // ReportInterval is interval of infoSyncerKeeper reporting min startTS.
    ReportInterval = 30 * time.Second
    // TopologyInformationPath means etcd path for storing topology info.
    TopologyInformationPath = "/topology/tidb"
    // TopologySessionTTL is ttl for topology, ant it's the ETCD session's TTL in seconds.
    TopologySessionTTL = 45
    // TopologyTimeToRefresh means time to refresh etcd.
    TopologyTimeToRefresh = 30 * time.Second
    // TopologyPrometheus means address of prometheus.
    TopologyPrometheus = "/topology/prometheus"
    // TablePrometheusCacheExpiry is the expiry time for prometheus address cache.
    TablePrometheusCacheExpiry = 10 * time.Second


var ErrPrometheusAddrIsNotSet = terror.ClassDomain.New(errno.ErrPrometheusAddrIsNotSet, errno.MySQLErrName[errno.ErrPrometheusAddrIsNotSet])

ErrPrometheusAddrIsNotSet is the error that Prometheus address is not set in PD and etcd

func DeleteTiFlashTableSyncProgress Uses

func DeleteTiFlashTableSyncProgress(tid int64) error

DeleteTiFlashTableSyncProgress is used to delete the tiflash table replica sync progress.

func GetAllServerInfo Uses

func GetAllServerInfo(ctx context.Context) (map[string]*ServerInfo, error)

GetAllServerInfo gets all servers static information from etcd.

func GetPlacementRules Uses

func GetPlacementRules(ctx context.Context) ([]*placement.RuleOp, error)

GetPlacementRules is used to retrieve placement rules from PD.

func GetPrometheusAddr Uses

func GetPrometheusAddr() (string, error)

GetPrometheusAddr gets prometheus Address

func GetTiFlashTableSyncProgress Uses

func GetTiFlashTableSyncProgress(ctx context.Context) (map[int64]float64, error)

GetTiFlashTableSyncProgress uses to get all the tiflash table replica sync progress.

func UpdatePlacementRules Uses

func UpdatePlacementRules(ctx context.Context, rules []*placement.RuleOp) error

UpdatePlacementRules is used to notify PD changes of placement rules.

func UpdateTiFlashTableSyncProgress Uses

func UpdateTiFlashTableSyncProgress(ctx context.Context, tid int64, progress float64) error

UpdateTiFlashTableSyncProgress is used to update the tiflash table replica sync progress.

type InfoSyncer Uses

type InfoSyncer struct {
    // contains filtered or unexported fields

InfoSyncer stores server info to etcd when the tidb-server starts and delete when tidb-server shuts down.

func GlobalInfoSyncerInit Uses

func GlobalInfoSyncerInit(ctx context.Context, id string, etcdCli *clientv3.Client, skipRegisterToDashBoard bool) (*InfoSyncer, error)

GlobalInfoSyncerInit return a new InfoSyncer. It is exported for testing.

func (*InfoSyncer) Done Uses

func (is *InfoSyncer) Done() <-chan struct{}

Done returns a channel that closes when the info syncer is no longer being refreshed.

func (*InfoSyncer) GetMinStartTS Uses

func (is *InfoSyncer) GetMinStartTS() uint64

GetMinStartTS get min start timestamp. Export for testing.

func (*InfoSyncer) RemoveMinStartTS Uses

func (is *InfoSyncer) RemoveMinStartTS()

RemoveMinStartTS removes self server min start timestamp from etcd.

func (*InfoSyncer) RemoveServerInfo Uses

func (is *InfoSyncer) RemoveServerInfo()

RemoveServerInfo remove self server static information from etcd.

func (*InfoSyncer) ReportMinStartTS Uses

func (is *InfoSyncer) ReportMinStartTS(store kv.Storage)

ReportMinStartTS reports self server min start timestamp to ETCD.

func (*InfoSyncer) Restart Uses

func (is *InfoSyncer) Restart(ctx context.Context) error

Restart restart the info syncer with new session leaseID and store server info to etcd again.

func (*InfoSyncer) RestartTopology Uses

func (is *InfoSyncer) RestartTopology(ctx context.Context) error

RestartTopology restart the topology syncer with new session leaseID and store server info to etcd again.

func (*InfoSyncer) SetSessionManager Uses

func (is *InfoSyncer) SetSessionManager(manager util2.SessionManager)

SetSessionManager set the session manager for InfoSyncer.

func (*InfoSyncer) StoreTopologyInfo Uses

func (is *InfoSyncer) StoreTopologyInfo(ctx context.Context) error

StoreTopologyInfo stores the topology of tidb to etcd.

func (*InfoSyncer) TopologyDone Uses

func (is *InfoSyncer) TopologyDone() <-chan struct{}

TopologyDone returns a channel that closes when the topology syncer is no longer being refreshed.

type ServerInfo Uses

type ServerInfo struct {
    ID             string            `json:"ddl_id"`
    IP             string            `json:"ip"`
    Port           uint              `json:"listening_port"`
    StatusPort     uint              `json:"status_port"`
    Lease          string            `json:"lease"`
    BinlogStatus   string            `json:"binlog_status"`
    StartTimestamp int64             `json:"start_timestamp"`
    Labels         map[string]string `json:"labels"`

ServerInfo is server static information. It will not be updated when tidb-server running. So please only put static information in ServerInfo struct.

func GetServerInfo Uses

func GetServerInfo() (*ServerInfo, error)

GetServerInfo gets self server static information.

func GetServerInfoByID Uses

func GetServerInfoByID(ctx context.Context, id string) (*ServerInfo, error)

GetServerInfoByID gets specified server static information from etcd.

type ServerVersionInfo Uses

type ServerVersionInfo struct {
    Version string `json:"version"`
    GitHash string `json:"git_hash"`

ServerVersionInfo is the server version and git_hash.

Package infosync imports 34 packages (graph) and is imported by 19 packages. Updated 2020-09-20. Refresh now. Tools for package owners.