actionnode

package
v0.0.0-...-2166858 Latest Latest
Warning

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

Go to latest
Published: May 28, 2016 License: BSD-3-Clause Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// Ping checks a tablet is alive
	TABLET_ACTION_PING = "Ping"

	// Sleep will sleep for a duration (used for tests)
	TABLET_ACTION_SLEEP = "Sleep"

	// ExecuteHook will execute the provided hook remotely
	TABLET_ACTION_EXECUTE_HOOK = "ExecuteHook"

	// SetReadOnly makes the mysql instance read-only
	TABLET_ACTION_SET_RDONLY = "SetReadOnly"

	// SetReadWrite makes the mysql instance read-write
	TABLET_ACTION_SET_RDWR = "SetReadWrite"

	// ChangeType changes the type of the tablet
	TABLET_ACTION_CHANGE_TYPE = "ChangeType"

	// Scrap scraps the live running tablet
	TABLET_ACTION_SCRAP = "Scrap"

	// DemoteMaster tells the current master it's about to not be a master
	// any more, and should go read-only.
	TABLET_ACTION_DEMOTE_MASTER = "DemoteMaster"

	// PromoteSlave tells the tablet it is going to be the master.
	TABLET_ACTION_PROMOTE_SLAVE = "PromoteSlave"

	// SlaveWasPromoted tells a tablet this previously slave
	// tablet is now the master. The tablet will update its
	// own topology record.
	TABLET_ACTION_SLAVE_WAS_PROMOTED = "SlaveWasPromoted"

	// RestartSlave tells the remote tablet it has a new master.
	TABLET_ACTION_RESTART_SLAVE = "RestartSlave"

	// SlaveWasRestarted tells a tablet the mysql master was changed.
	// The tablet will check it is indeed the case, and update its own
	// topology record.
	TABLET_ACTION_SLAVE_WAS_RESTARTED = "SlaveWasRestarted"

	// BreakSlaves will tinker with the replication stream in a way
	// that will stop all the slaves.
	TABLET_ACTION_BREAK_SLAVES = "BreakSlaves"

	// StopSlave will stop MySQL replication.
	TABLET_ACTION_STOP_SLAVE = "StopSlave"

	// StopSlave will stop MySQL replication after it reaches a
	// minimum point.
	TABLET_ACTION_STOP_SLAVE_MINIMUM = "StopSlaveMinimum"

	// StartSlave will start MySQL replication.
	TABLET_ACTION_START_SLAVE = "StartSlave"

	// TabletExternallyReparented is sent directly to the new master
	// tablet when it becomes the master. It is functionnaly equivalent
	// to calling "ShardExternallyReparented" on the topology.
	TABLET_ACTION_EXTERNALLY_REPARENTED = "TabletExternallyReparented"

	// MasterPosition returns the current master position
	TABLET_ACTION_MASTER_POSITION = "MasterPosition"

	// ReparentPosition returns the data for a slave to use to reparent
	// to the target tablet at the given position.
	TABLET_ACTION_REPARENT_POSITION = "ReparentPosition"

	// SlaveStatus returns the current slave status
	TABLET_ACTION_SLAVE_STATUS = "SlaveStatus"

	// WaitSlavePosition waits until the slave reaches a
	// replication position in MySQL replication
	TABLET_ACTION_WAIT_SLAVE_POSITION = "WaitSlavePosition"

	// WaitBlpPosition waits until the slave reaches a
	// replication position in filtered replication
	TABLET_ACTION_WAIT_BLP_POSITION = "WaitBlpPosition"

	// Stop and Start filtered replication
	TABLET_ACTION_STOP_BLP  = "StopBlp"
	TABLET_ACTION_START_BLP = "StartBlp"

	// RunBlpUntil will run filtered replication until it reaches
	// the provided stop position.
	TABLET_ACTION_RUN_BLP_UNTIL = "RunBlpUntil"

	// GetSchema returns the tablet current schema.
	TABLET_ACTION_GET_SCHEMA = "GetSchema"

	// RefreshState tells the tablet to refresh its tablet record from
	// the topo server.
	TABLET_ACTION_REFRESH_STATE = "RefreshState"

	// RunHealthCheck tells the tablet to refresh its tablet record from
	// the topo server.
	TABLET_ACTION_RUN_HEALTH_CHECK = "RunHealthCheck"

	// ReloadSchema tells the tablet to reload its schema.
	TABLET_ACTION_RELOAD_SCHEMA = "ReloadSchema"

	// PreflightSchema will check a schema change works
	TABLET_ACTION_PREFLIGHT_SCHEMA = "PreflightSchema"

	// ApplySchema will actually apply the schema change
	TABLET_ACTION_APPLY_SCHEMA = "ApplySchema"

	// ExecuteFetch uses the DBA connection pool to run queries.
	TABLET_ACTION_EXECUTE_FETCH = "ExecuteFetch"

	// GetPermissions returns the mysql permissions set
	TABLET_ACTION_GET_PERMISSIONS = "GetPermissions"

	// GetSlaves returns the current set of mysql replication slaves.
	TABLET_ACTION_GET_SLAVES = "GetSlaves"

	// Snapshot takes a db snapshot
	TABLET_ACTION_SNAPSHOT = "Snapshot"

	// SnapshotSourceEnd restarts the mysql server
	TABLET_ACTION_SNAPSHOT_SOURCE_END = "SnapshotSourceEnd"

	// ReserveForRestore will prepare a server for restore
	TABLET_ACTION_RESERVE_FOR_RESTORE = "ReserveForRestore"

	// Restore will restore a backup
	TABLET_ACTION_RESTORE = "Restore"

	SHARD_ACTION_REPARENT              = "ReparentShard"
	SHARD_ACTION_EXTERNALLY_REPARENTED = "ShardExternallyReparented"
	// Recompute derived shard-wise data
	SHARD_ACTION_REBUILD = "RebuildShard"
	// Generic read lock for inexpensive shard-wide actions.
	SHARD_ACTION_CHECK = "CheckShard"
	// Apply a schema change on an entire shard
	SHARD_ACTION_APPLY_SCHEMA = "ApplySchemaShard"
	// Changes the ServedTypes inside a shard
	SHARD_ACTION_SET_SERVED_TYPES = "SetShardServedTypes"
	// Migrate served types from one shard to another
	SHARD_ACTION_MIGRATE_SERVED_TYPES = "MigrateServedTypes"
	// Update the Shard object (Cells, ...)
	SHARD_ACTION_UPDATE_SHARD = "UpdateShard"

	KEYSPACE_ACTION_REBUILD             = "RebuildKeyspace"
	KEYSPACE_ACTION_APPLY_SCHEMA        = "ApplySchemaKeyspace"
	KEYSPACE_ACTION_SET_SHARDING_INFO   = "SetKeyspaceShardingInfo"
	KEYSPACE_ACTION_MIGRATE_SERVED_FROM = "MigrateServedFrom"
	KEYSPACE_ACTION_SET_SERVED_FROM     = "SetKeyspaceServedFrom"

	SRV_SHARD_ACTION_REBUILD = "RebuildSrvShard"

	ACTION_STATE_QUEUED  = ActionState("")        // All actions are queued initially
	ACTION_STATE_RUNNING = ActionState("Running") // Running inside vtaction process
	ACTION_STATE_FAILED  = ActionState("Failed")  // Ended with a failure
	ACTION_STATE_DONE    = ActionState("Done")    // Ended with no failure
)

Variables

View Source
var (
	// DefaultLockTimeout is a good value to use as a default for
	// locking a shard / keyspace.
	DefaultLockTimeout = 30 * time.Second
)

Functions

This section is empty.

Types

type ActionNode

type ActionNode struct {
	Action     string
	ActionGuid string
	Error      string
	State      ActionState
	Pid        int // only != 0 if State == ACTION_STATE_RUNNING

	// do not serialize the next fields
	// path in topology server representing this action
	Path  string      `json:"-"`
	Args  interface{} `json:"-"`
	Reply interface{} `json:"-"`
}

ActionNode describes a long-running action on a tablet, or an action on a shard or keyspace that locks it.

func ApplySchemaKeyspace

func ApplySchemaKeyspace(change string, simple bool) *ActionNode

func ApplySchemaShard

func ApplySchemaShard(masterTabletAlias topo.TabletAlias, change string, simple bool) *ActionNode

func CheckShard

func CheckShard() *ActionNode

func MigrateServedFrom

func MigrateServedFrom(servedType topo.TabletType) *ActionNode

func MigrateServedTypes

func MigrateServedTypes(servedType topo.TabletType) *ActionNode

func RebuildKeyspace

func RebuildKeyspace() *ActionNode

func RebuildShard

func RebuildShard() *ActionNode

func RebuildSrvShard

func RebuildSrvShard() *ActionNode

func ReparentShard

func ReparentShard(tabletAlias topo.TabletAlias) *ActionNode

func SetKeyspaceServedFrom

func SetKeyspaceServedFrom() *ActionNode

func SetKeyspaceShardingInfo

func SetKeyspaceShardingInfo() *ActionNode

func SetShardServedTypes

func SetShardServedTypes(cells []string, servedType topo.TabletType) *ActionNode

func ShardExternallyReparented

func ShardExternallyReparented(tabletAlias topo.TabletAlias) *ActionNode

func UpdateShard

func UpdateShard() *ActionNode

func (*ActionNode) LockKeyspace

func (n *ActionNode) LockKeyspace(ctx context.Context, ts topo.Server, keyspace string, lockTimeout time.Duration, interrupted chan struct{}) (lockPath string, err error)

LockKeyspace will lock the keyspace in the topology server. UnlockKeyspace should be called if this returns no error.

func (*ActionNode) LockShard

func (n *ActionNode) LockShard(ctx context.Context, ts topo.Server, keyspace, shard string, lockTimeout time.Duration, interrupted chan struct{}) (lockPath string, err error)

LockShard will lock the shard in the topology server. UnlockShard should be called if this returns no error.

func (*ActionNode) LockSrvShard

func (n *ActionNode) LockSrvShard(ctx context.Context, ts topo.Server, cell, keyspace, shard string, lockTimeout time.Duration, interrupted chan struct{}) (lockPath string, err error)

LockSrvShard will lock the serving shard in the topology server. UnlockSrvShard should be called if this returns no error.

func (*ActionNode) SetGuid

func (n *ActionNode) SetGuid() *ActionNode

SetGuid will set the ActionGuid field for the action node and return the action node.

func (*ActionNode) ToJson

func (n *ActionNode) ToJson() string

ToJson returns a JSON representation of the object.

func (*ActionNode) UnlockKeyspace

func (n *ActionNode) UnlockKeyspace(ctx context.Context, ts topo.Server, keyspace string, lockPath string, actionError error) error

UnlockKeyspace unlocks a previously locked keyspace.

func (*ActionNode) UnlockShard

func (n *ActionNode) UnlockShard(ctx context.Context, ts topo.Server, keyspace, shard string, lockPath string, actionError error) error

UnlockShard unlocks a previously locked shard.

func (*ActionNode) UnlockSrvShard

func (n *ActionNode) UnlockSrvShard(ctx context.Context, ts topo.Server, cell, keyspace, shard string, lockPath string, actionError error) error

UnlockSrvShard unlocks a previously locked serving shard.

type ActionState

type ActionState string

ActionState is the state an ActionNode

type ApplySchemaKeyspaceArgs

type ApplySchemaKeyspaceArgs struct {
	Change string
	Simple bool
}

type ApplySchemaShardArgs

type ApplySchemaShardArgs struct {
	MasterTabletAlias topo.TabletAlias
	Change            string
	Simple            bool
}

type MigrateServedFromArgs

type MigrateServedFromArgs struct {
	ServedType topo.TabletType
}

type MigrateServedTypesArgs

type MigrateServedTypesArgs struct {
	ServedType topo.TabletType
}

type ReserveForRestoreArgs

type ReserveForRestoreArgs struct {
	SrcTabletAlias topo.TabletAlias
}

type RestartSlaveData

type RestartSlaveData struct {
	ReplicationStatus *myproto.ReplicationStatus
	WaitPosition      myproto.ReplicationPosition
	TimePromoted      int64 // used to verify replication - a row will be inserted with this timestamp
	Parent            topo.TabletAlias
	Force             bool
}

func (*RestartSlaveData) String

func (rsd *RestartSlaveData) String() string

type RestoreArgs

type RestoreArgs struct {
	SrcTabletAlias        topo.TabletAlias
	SrcFilePath           string
	ParentAlias           topo.TabletAlias
	FetchConcurrency      int
	FetchRetryCount       int
	WasReserved           bool
	DontWaitForSlaveStart bool
}

type SetShardServedTypesArgs

type SetShardServedTypesArgs struct {
	Cells      []string
	ServedType topo.TabletType
}

type SlaveWasRestartedArgs

type SlaveWasRestartedArgs struct {
	Parent topo.TabletAlias
}

type SnapshotArgs

type SnapshotArgs struct {
	Concurrency         int
	ServerMode          bool
	ForceMasterSnapshot bool
}

type SnapshotReply

type SnapshotReply struct {
	ParentAlias  topo.TabletAlias
	ManifestPath string

	// these two are only used for ServerMode=true full snapshot
	SlaveStartRequired bool
	ReadOnly           bool
}

type SnapshotSourceEndArgs

type SnapshotSourceEndArgs struct {
	SlaveStartRequired bool
	ReadOnly           bool
	OriginalType       topo.TabletType
}

Jump to

Keyboard shortcuts

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