logic

package
v1.4.448 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2015 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MasterRecoveryGTID         MasterRecoveryType = "MasterRecoveryGTID"
	MasterRecoveryPseudoGTID                      = "MasterRecoveryPseudoGTID"
	MasterRecoveryBinlogServer                    = "MasterRecoveryBinlogServer"
)

Variables

This section is empty.

Functions

func AttemptFailureDetectionRegistration added in v1.4.196

func AttemptFailureDetectionRegistration(analysisEntry *inst.ReplicationAnalysis) (bool, error)

AttemptFailureDetectionRegistration tries to add a failure-detection entry; if this fails that means the problem has already been detected

func BeginAsyncRequest added in v1.4.424

func BeginAsyncRequest(asyncRequest *AsyncRequest) (bool, error)

func CheckAndRecover

func CheckAndRecover(specificInstance *inst.InstanceKey, candidateInstanceKey *inst.InstanceKey, skipFilters bool, skipProcesses bool) (recoveryAttempted bool, promotedSlaveKey *inst.InstanceKey, err error)

CheckAndRecover is the main entry point for the recovery mechanism

func ClearActiveFailureDetections added in v1.4.196

func ClearActiveFailureDetections() error

ClearActiveFailureDetections clears the "in_active_period" flag for old-enough detections, thereby allowing for further detections on cleared instances.

func ClearActiveRecoveries

func ClearActiveRecoveries() error

ClearActiveRecoveries clears the "in_active_period" flag for old-enough recoveries, thereby allowing for further recoveries on cleared instances.

func ContinuousAgentsPoll

func ContinuousAgentsPoll()

ContinuousAgentsPoll starts an asynchronuous infinite process where agents are periodically investigated and their status captured, and long since unseen agents are purged and forgotten.

func ContinuousDiscovery

func ContinuousDiscovery()

ContinuousDiscovery starts an asynchronuous infinite discovery process where instances are periodically investigated and their status captured, and long since unseen instances are purged and forgotten.

func ExpireAsyncRequests added in v1.4.424

func ExpireAsyncRequests() error

ExpireAsyncRequests will mark "lost" entries as being completed

func GetCandidateSiblingOfIntermediateMaster

func GetCandidateSiblingOfIntermediateMaster(intermediateMasterInstance *inst.Instance) (*inst.Instance, error)

GetCandidateSiblingOfIntermediateMaster chooses the best sibling of a dead intermediate master to whom the IM's slaves can be moved.

func RecoverDeadCoMaster added in v1.4.437

func RecoverDeadCoMaster(topologyRecovery *TopologyRecovery, skipProcesses bool) (otherCoMaster *inst.Instance, lostSlaves [](*inst.Instance), err error)

RecoverDeadCoMaster recovers a dead co-master, complete logic inside

func RecoverDeadIntermediateMaster

func RecoverDeadIntermediateMaster(topologyRecovery *TopologyRecovery, skipProcesses bool) (successorInstance *inst.Instance, err error)

RecoverDeadIntermediateMaster performs intermediate master recovery; complete logic inside

func RecoverDeadMaster

func RecoverDeadMaster(topologyRecovery *TopologyRecovery, skipProcesses bool) (promotedSlave *inst.Instance, lostSlaves [](*inst.Instance), err error)

RecoverDeadMaster recovers a dead master, complete logic inside

func ResolveRecovery

func ResolveRecovery(topologyRecovery *TopologyRecovery, successorInstance *inst.Instance) error

ResolveRecovery is called on completion of a recovery process and updates the recovery status. It does not clear the "active period" as this still takes place in order to avoid flapping.

func StartDiscovery

func StartDiscovery(instanceKey inst.InstanceKey)

Start discovery begins a one time asynchronuous discovery process for the given instance and all of its topology connected instances. That is, the instance will be investigated for master and slaves, and the routines will follow on each and every such found master/slave. In essense, assuming all slaves in a replication topology are running, and given a single instance in such topology, this function will detect the entire topology.

func WriteAsyncRequest added in v1.4.424

func WriteAsyncRequest(asyncRequest *AsyncRequest) error

AttemptFailureDetectionRegistration tries to add a failure-detection entry; if this fails that means the problem has already been detected

Types

type AsyncRequest added in v1.4.424

type AsyncRequest struct {
	Id                  int64
	Story               string
	Command             string
	OperatedInstanceKey *inst.InstanceKey
	DestinationKey      *inst.InstanceKey
	Pattern             string
	GTIDHint            inst.OperationGTIDHint
}

AsyncRequest represents an entry in the async_request table

func NewAsyncRequest added in v1.4.424

func NewAsyncRequest(story string, command string, instanceKey *inst.InstanceKey, destinationKey *inst.InstanceKey, pattern string, gtidHint inst.OperationGTIDHint) *AsyncRequest

func NewEmptyAsyncRequest added in v1.4.424

func NewEmptyAsyncRequest() *AsyncRequest

func NewSimpleAsyncRequest added in v1.4.424

func NewSimpleAsyncRequest(story string, command string, instanceKey *inst.InstanceKey) *AsyncRequest

func ReadPendingAsyncRequests added in v1.4.424

func ReadPendingAsyncRequests(limit int) (res [](*AsyncRequest), err error)

type InstancesByCountSlaves

type InstancesByCountSlaves [](*inst.Instance)

InstancesByCountSlaves sorts instances by umber of slaves, descending

func (InstancesByCountSlaves) Len

func (this InstancesByCountSlaves) Len() int

func (InstancesByCountSlaves) Less

func (this InstancesByCountSlaves) Less(i, j int) bool

func (InstancesByCountSlaves) Swap

func (this InstancesByCountSlaves) Swap(i, j int)

type MasterRecoveryType added in v1.4.392

type MasterRecoveryType string

type TopologyRecovery

type TopologyRecovery struct {
	inst.PostponedFunctionsContainer

	Id                        int64
	AnalysisEntry             inst.ReplicationAnalysis
	SuccessorKey              *inst.InstanceKey
	IsActive                  bool
	IsSuccessful              bool
	LostSlaves                inst.InstanceKeyMap
	ParticipatingInstanceKeys inst.InstanceKeyMap
	AllErrors                 []string
	RecoveryStartTimestamp    string
	RecoveryEndTimestamp      string
	ProcessingNodeHostname    string
	ProcessingNodeToken       string
	PostponedFunctions        [](func() error)
}

TopologyRecovery represents an entry in the topology_recovery table

func AttemptRecoveryRegistration

func AttemptRecoveryRegistration(analysisEntry *inst.ReplicationAnalysis) (*TopologyRecovery, error)

AttemptRecoveryRegistration tries to add a recovery entry; if this fails that means recovery is already in place.

func NewTopologyRecovery added in v1.4.421

func NewTopologyRecovery(replicationAnalysis inst.ReplicationAnalysis) *TopologyRecovery

func ReadActiveClusterRecovery

func ReadActiveClusterRecovery(clusterName string) ([]TopologyRecovery, error)

ReadActiveRecoveries reads active recovery entry/audit entires from topology_recovery

func ReadActiveRecoveries

func ReadActiveRecoveries() ([]TopologyRecovery, error)

ReadActiveRecoveries reads active recovery entry/audit entires from topology_recovery

func ReadCompletedRecoveries

func ReadCompletedRecoveries(page int) ([]TopologyRecovery, error)

ReadCompletedRecoveries reads completed recovery entry/audit entires from topology_recovery

func ReadRecentFailureDetections added in v1.4.204

func ReadRecentFailureDetections(page int) ([]TopologyRecovery, error)

ReadCRecoveries reads latest recovery entreis from topology_recovery

func ReadRecentRecoveries

func ReadRecentRecoveries(clusterName string, page int) ([]TopologyRecovery, error)

ReadCRecoveries reads latest recovery entreis from topology_recovery

func ReadRecentlyActiveClusterRecovery

func ReadRecentlyActiveClusterRecovery(clusterName string) ([]TopologyRecovery, error)

ReadRecentlyActiveClusterRecovery reads recently completed entries for a given cluster

func ReadRecentlyActiveInstanceRecovery

func ReadRecentlyActiveInstanceRecovery(instanceKey *inst.InstanceKey) ([]TopologyRecovery, error)

ReadRecentlyActiveInstanceRecovery reads recently completed entries for a given instance

func (*TopologyRecovery) AddError added in v1.4.421

func (this *TopologyRecovery) AddError(err error) error

func (*TopologyRecovery) AddErrors added in v1.4.421

func (this *TopologyRecovery) AddErrors(errs []error)

Jump to

Keyboard shortcuts

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