Documentation ¶
Index ¶
- Constants
- func AttemptFailureDetectionRegistration(analysisEntry *inst.ReplicationAnalysis) (bool, error)
- func BeginAsyncRequest(asyncRequest *AsyncRequest) (bool, error)
- func CheckAndRecover(specificInstance *inst.InstanceKey, candidateInstanceKey *inst.InstanceKey, ...) (recoveryAttempted bool, promotedSlaveKey *inst.InstanceKey, err error)
- func ClearActiveFailureDetections() error
- func ClearActiveRecoveries() error
- func ContinuousAgentsPoll()
- func ContinuousDiscovery()
- func ExpireAsyncRequests() error
- func GetCandidateSiblingOfIntermediateMaster(intermediateMasterInstance *inst.Instance) (*inst.Instance, error)
- func RecoverDeadCoMaster(topologyRecovery *TopologyRecovery, skipProcesses bool) (otherCoMaster *inst.Instance, lostSlaves [](*inst.Instance), err error)
- func RecoverDeadIntermediateMaster(topologyRecovery *TopologyRecovery, skipProcesses bool) (successorInstance *inst.Instance, err error)
- func RecoverDeadMaster(topologyRecovery *TopologyRecovery, skipProcesses bool) (promotedSlave *inst.Instance, lostSlaves [](*inst.Instance), err error)
- func ResolveRecovery(topologyRecovery *TopologyRecovery, successorInstance *inst.Instance) error
- func StartDiscovery(instanceKey inst.InstanceKey)
- func WriteAsyncRequest(asyncRequest *AsyncRequest) error
- type AsyncRequest
- func NewAsyncRequest(story string, command string, instanceKey *inst.InstanceKey, ...) *AsyncRequest
- func NewEmptyAsyncRequest() *AsyncRequest
- func NewSimpleAsyncRequest(story string, command string, instanceKey *inst.InstanceKey) *AsyncRequest
- func ReadPendingAsyncRequests(limit int) (res [](*AsyncRequest), err error)
- type InstancesByCountSlaves
- type MasterRecoveryType
- type TopologyRecovery
- func AttemptRecoveryRegistration(analysisEntry *inst.ReplicationAnalysis) (*TopologyRecovery, error)
- func NewTopologyRecovery(replicationAnalysis inst.ReplicationAnalysis) *TopologyRecovery
- func ReadActiveClusterRecovery(clusterName string) ([]TopologyRecovery, error)
- func ReadActiveRecoveries() ([]TopologyRecovery, error)
- func ReadCompletedRecoveries(page int) ([]TopologyRecovery, error)
- func ReadRecentFailureDetections(page int) ([]TopologyRecovery, error)
- func ReadRecentRecoveries(clusterName string, page int) ([]TopologyRecovery, error)
- func ReadRecentlyActiveClusterRecovery(clusterName string) ([]TopologyRecovery, error)
- func ReadRecentlyActiveInstanceRecovery(instanceKey *inst.InstanceKey) ([]TopologyRecovery, error)
Constants ¶
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 ¶
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)