grpctmclient

package
v0.20.2 Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2024 License: Apache-2.0 Imports: 26 Imported by: 8

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client implements tmclient.TabletManagerClient.

Connections are produced by the dialer implementation, which is either the grpcClient implementation, which reuses connections only for ExecuteFetchAs{Dba,App} CheckThrottler, and FullStatus, otherwise making single-purpose connections that are closed after use.

In order to more efficiently use the underlying tcp connections, you can instead use the cachedConnDialer implementation by specifying

--tablet_manager_protocol "grpc-cached"

The cachedConnDialer keeps connections to up to --tablet_manager_grpc_connpool_size distinct tablets open at any given time, for faster per-RPC call time, and less connection churn.

func NewCachedConnClient added in v0.12.0

func NewCachedConnClient(capacity int) *Client

NewCachedConnClient returns a grpc Client that caches connections to the different tablets.

func NewClient

func NewClient() *Client

NewClient returns a new gRPC client.

func (*Client) ApplySchema

func (client *Client) ApplySchema(ctx context.Context, tablet *topodatapb.Tablet, change *tmutils.SchemaChange) (*tabletmanagerdatapb.SchemaChangeResult, error)

ApplySchema is part of the tmclient.TabletManagerClient interface.

func (*Client) Backup

Backup is part of the tmclient.TabletManagerClient interface.

func (*Client) ChangeType

func (client *Client) ChangeType(ctx context.Context, tablet *topodatapb.Tablet, dbType topodatapb.TabletType, semiSync bool) error

ChangeType is part of the tmclient.TabletManagerClient interface.

func (*Client) CheckThrottler added in v0.18.0

CheckThrottler is part of the tmclient.TabletManagerClient interface. It always tries to use a cached client via the dialer pool as this is called very frequently between tablets when the throttler is enabled in a keyspace and the overhead of creating a new gRPC connection/channel and dialing the other tablet every time is not practical.

func (*Client) Close

func (client *Client) Close()

Close is part of the tmclient.TabletManagerClient interface.

func (*Client) DemotePrimary added in v0.12.0

func (client *Client) DemotePrimary(ctx context.Context, tablet *topodatapb.Tablet) (*replicationdatapb.PrimaryStatus, error)

DemotePrimary is part of the tmclient.TabletManagerClient interface.

func (*Client) ExecuteFetchAsAllPrivs

func (client *Client) ExecuteFetchAsAllPrivs(ctx context.Context, tablet *topodatapb.Tablet, req *tabletmanagerdatapb.ExecuteFetchAsAllPrivsRequest) (*querypb.QueryResult, error)

ExecuteFetchAsAllPrivs is part of the tmclient.TabletManagerClient interface.

func (*Client) ExecuteFetchAsApp

func (client *Client) ExecuteFetchAsApp(ctx context.Context, tablet *topodatapb.Tablet, usePool bool, req *tabletmanagerdatapb.ExecuteFetchAsAppRequest) (*querypb.QueryResult, error)

ExecuteFetchAsApp is part of the tmclient.TabletManagerClient interface.

func (*Client) ExecuteFetchAsDba

func (client *Client) ExecuteFetchAsDba(ctx context.Context, tablet *topodatapb.Tablet, usePool bool, req *tabletmanagerdatapb.ExecuteFetchAsDbaRequest) (*querypb.QueryResult, error)

ExecuteFetchAsDba is part of the tmclient.TabletManagerClient interface.

func (*Client) ExecuteHook

func (client *Client) ExecuteHook(ctx context.Context, tablet *topodatapb.Tablet, hk *hook.Hook) (*hook.HookResult, error)

ExecuteHook is part of the tmclient.TabletManagerClient interface.

func (*Client) ExecuteMultiFetchAsDba added in v0.20.0

func (client *Client) ExecuteMultiFetchAsDba(ctx context.Context, tablet *topodatapb.Tablet, usePool bool, req *tabletmanagerdatapb.ExecuteMultiFetchAsDbaRequest) ([]*querypb.QueryResult, error)

ExecuteFetchAsDba is part of the tmclient.TabletManagerClient interface.

func (*Client) ExecuteQuery added in v0.11.0

ExecuteQuery is part of the tmclient.TabletManagerClient interface.

func (*Client) FullStatus added in v0.14.0

func (client *Client) FullStatus(ctx context.Context, tablet *topodatapb.Tablet) (*replicationdatapb.FullStatus, error)

FullStatus is part of the tmclient.TabletManagerClient interface. It always tries to use a cached client via the dialer pool as this is called very frequently from VTOrc, and the overhead of creating a new gRPC connection/channel and dialing the other tablet every time is not practical.

func (*Client) GetGlobalStatusVars added in v0.20.0

func (client *Client) GetGlobalStatusVars(ctx context.Context, tablet *topodatapb.Tablet, variables []string) (map[string]string, error)

GetGlobalStatusVars is part of the tmclient.TabletManagerClient interface.

func (*Client) GetPermissions

func (client *Client) GetPermissions(ctx context.Context, tablet *topodatapb.Tablet) (*tabletmanagerdatapb.Permissions, error)

GetPermissions is part of the tmclient.TabletManagerClient interface.

func (*Client) GetReplicas

func (client *Client) GetReplicas(ctx context.Context, tablet *topodatapb.Tablet) ([]string, error)

GetReplicas is part of the tmclient.TabletManagerClient interface.

func (*Client) GetSchema

GetSchema is part of the tmclient.TabletManagerClient interface.

func (*Client) HasVReplicationWorkflows added in v0.20.0

func (*Client) InitPrimary added in v0.12.0

func (client *Client) InitPrimary(ctx context.Context, tablet *topodatapb.Tablet, semiSync bool) (string, error)

InitPrimary is part of the tmclient.TabletManagerClient interface.

func (*Client) InitReplica

func (client *Client) InitReplica(ctx context.Context, tablet *topodatapb.Tablet, parent *topodatapb.TabletAlias, replicationPosition string, timeCreatedNS int64, semiSync bool) error

InitReplica is part of the tmclient.TabletManagerClient interface.

func (*Client) LockTables

func (client *Client) LockTables(ctx context.Context, tablet *topodatapb.Tablet) error

LockTables is part of the tmclient.TabletManagerClient interface.

func (*Client) Ping

func (client *Client) Ping(ctx context.Context, tablet *topodatapb.Tablet) error

Ping is part of the tmclient.TabletManagerClient interface.

func (*Client) PopulateReparentJournal

func (client *Client) PopulateReparentJournal(ctx context.Context, tablet *topodatapb.Tablet, timeCreatedNS int64, actionName string, tabletAlias *topodatapb.TabletAlias, pos string) error

PopulateReparentJournal is part of the tmclient.TabletManagerClient interface.

func (*Client) PreflightSchema

func (client *Client) PreflightSchema(ctx context.Context, tablet *topodatapb.Tablet, changes []string) ([]*tabletmanagerdatapb.SchemaChangeResult, error)

PreflightSchema is part of the tmclient.TabletManagerClient interface.

func (*Client) PrimaryPosition added in v0.12.0

func (client *Client) PrimaryPosition(ctx context.Context, tablet *topodatapb.Tablet) (string, error)

PrimaryPosition is part of the tmclient.TabletManagerClient interface.

func (*Client) PrimaryStatus added in v0.12.0

func (client *Client) PrimaryStatus(ctx context.Context, tablet *topodatapb.Tablet) (*replicationdatapb.PrimaryStatus, error)

PrimaryStatus is part of the tmclient.TabletManagerClient interface.

func (*Client) PromoteReplica

func (client *Client) PromoteReplica(ctx context.Context, tablet *topodatapb.Tablet, semiSync bool) (string, error)

PromoteReplica is part of the tmclient.TabletManagerClient interface.

func (*Client) ReadVReplicationWorkflow added in v0.18.0

func (*Client) ReadVReplicationWorkflows added in v0.20.0

func (*Client) RefreshState

func (client *Client) RefreshState(ctx context.Context, tablet *topodatapb.Tablet) error

RefreshState is part of the tmclient.TabletManagerClient interface.

func (*Client) ReloadSchema

func (client *Client) ReloadSchema(ctx context.Context, tablet *topodatapb.Tablet, waitPosition string) error

ReloadSchema is part of the tmclient.TabletManagerClient interface.

func (*Client) ReplicaWasPromoted

func (client *Client) ReplicaWasPromoted(ctx context.Context, tablet *topodatapb.Tablet) error

ReplicaWasPromoted is part of the tmclient.TabletManagerClient interface.

func (*Client) ReplicaWasRestarted

func (client *Client) ReplicaWasRestarted(ctx context.Context, tablet *topodatapb.Tablet, parent *topodatapb.TabletAlias) error

ReplicaWasRestarted is part of the tmclient.TabletManagerClient interface.

func (*Client) ReplicationStatus

func (client *Client) ReplicationStatus(ctx context.Context, tablet *topodatapb.Tablet) (*replicationdatapb.Status, error)

ReplicationStatus is part of the tmclient.TabletManagerClient interface.

func (*Client) ResetReplication

func (client *Client) ResetReplication(ctx context.Context, tablet *topodatapb.Tablet) error

ResetReplication is part of the tmclient.TabletManagerClient interface.

func (*Client) ResetReplicationParameters added in v0.14.0

func (client *Client) ResetReplicationParameters(ctx context.Context, tablet *topodatapb.Tablet) error

ResetReplicationParameters is part of the tmclient.TabletManagerClient interface.

func (*Client) ResetSequences added in v0.18.0

func (client *Client) ResetSequences(ctx context.Context, tablet *topodatapb.Tablet, tables []string) error

func (*Client) RestoreFromBackup

RestoreFromBackup is part of the tmclient.TabletManagerClient interface.

func (*Client) RunHealthCheck

func (client *Client) RunHealthCheck(ctx context.Context, tablet *topodatapb.Tablet) error

RunHealthCheck is part of the tmclient.TabletManagerClient interface.

func (*Client) SetReadOnly

func (client *Client) SetReadOnly(ctx context.Context, tablet *topodatapb.Tablet) error

SetReadOnly is part of the tmclient.TabletManagerClient interface.

func (*Client) SetReadWrite

func (client *Client) SetReadWrite(ctx context.Context, tablet *topodatapb.Tablet) error

SetReadWrite is part of the tmclient.TabletManagerClient interface.

func (*Client) SetReplicationSource added in v0.12.0

func (client *Client) SetReplicationSource(ctx context.Context, tablet *topodatapb.Tablet, parent *topodatapb.TabletAlias, timeCreatedNS int64, waitPosition string, forceStartReplication bool, semiSync bool, heartbeatInterval float64) error

SetReplicationSource is part of the tmclient.TabletManagerClient interface.

func (*Client) Sleep

func (client *Client) Sleep(ctx context.Context, tablet *topodatapb.Tablet, duration time.Duration) error

Sleep is part of the tmclient.TabletManagerClient interface.

func (*Client) StartReplication

func (client *Client) StartReplication(ctx context.Context, tablet *topodatapb.Tablet, semiSync bool) error

StartReplication is part of the tmclient.TabletManagerClient interface.

func (*Client) StartReplicationUntilAfter

func (client *Client) StartReplicationUntilAfter(ctx context.Context, tablet *topodatapb.Tablet, position string, waitTime time.Duration) error

StartReplicationUntilAfter is part of the tmclient.TabletManagerClient interface.

func (*Client) StopReplication

func (client *Client) StopReplication(ctx context.Context, tablet *topodatapb.Tablet) error

StopReplication is part of the tmclient.TabletManagerClient interface.

func (*Client) StopReplicationAndGetStatus

func (client *Client) StopReplicationAndGetStatus(ctx context.Context, tablet *topodatapb.Tablet, stopReplicationMode replicationdatapb.StopReplicationMode) (status *replicationdatapb.StopReplicationStatus, err error)

StopReplicationAndGetStatus is part of the tmclient.TabletManagerClient interface.

func (*Client) StopReplicationMinimum

func (client *Client) StopReplicationMinimum(ctx context.Context, tablet *topodatapb.Tablet, minPos string, waitTime time.Duration) (string, error)

StopReplicationMinimum is part of the tmclient.TabletManagerClient interface.

func (*Client) UndoDemotePrimary added in v0.12.0

func (client *Client) UndoDemotePrimary(ctx context.Context, tablet *topodatapb.Tablet, semiSync bool) error

UndoDemotePrimary is part of the tmclient.TabletManagerClient interface.

func (*Client) UnlockTables

func (client *Client) UnlockTables(ctx context.Context, tablet *topodatapb.Tablet) error

UnlockTables is part of the tmclient.TabletManagerClient interface.

func (*Client) VDiff added in v0.14.0

VDiff is part of the tmclient.TabletManagerClient interface.

func (*Client) VReplicationExec

func (client *Client) VReplicationExec(ctx context.Context, tablet *topodatapb.Tablet, query string) (*querypb.QueryResult, error)

VReplicationExec is part of the tmclient.TabletManagerClient interface.

func (*Client) VReplicationWaitForPos

func (client *Client) VReplicationWaitForPos(ctx context.Context, tablet *topodatapb.Tablet, id int32, pos string) error

VReplicationWaitForPos is part of the tmclient.TabletManagerClient interface.

func (*Client) WaitForPosition

func (client *Client) WaitForPosition(ctx context.Context, tablet *topodatapb.Tablet, pos string) error

WaitForPosition is part of the tmclient.TabletManagerClient interface.

type DialPoolGroup added in v0.19.2

type DialPoolGroup int

Jump to

Keyboard shortcuts

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