process

package
v0.19.4 Latest Latest
Warning

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

Go to latest
Published: May 8, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var FirstDiscoveryCycleComplete atomic.Bool
View Source
var LastContinousCheckHealthy int64
View Source
var ThisHostname string
View Source
var ThisNodeHealth = NewNodeHealth()

Functions

func AttemptElection

func AttemptElection() (bool, error)

AttemptElection tries to grab leadership (become active node)

func ContinuousRegistration

func ContinuousRegistration(extraInfo string, command string)

ContinuousRegistration will continuously update the node_health table showing that the current process is still running.

func ExpireAvailableNodes

func ExpireAvailableNodes()

ExpireAvailableNodes is an aggressive purging method to remove node entries who have skipped their keepalive for two times.

func ExpireNodesHistory

func ExpireNodesHistory() error

ExpireNodesHistory cleans up the nodes history and is run by the vtorc active node.

func GrabElection

func GrabElection() error

GrabElection forcibly grabs leadership. Use with care!!

func Reelect

func Reelect() error

Reelect clears the way for re-elections. Active node is immediately demoted.

func RegisterNode

func RegisterNode(nodeHealth *NodeHealth) (healthy bool, err error)

func WriteRegisterNode

func WriteRegisterNode(nodeHealth *NodeHealth) (healthy bool, err error)

WriteRegisterNode writes down this node in the node_health table

Types

type HealthStatus

type HealthStatus struct {
	Healthy            bool
	Hostname           string
	Token              string
	IsActiveNode       bool
	DiscoveredOnce     bool
	ActiveNode         *NodeHealth
	Error              error
	AvailableNodes     [](*NodeHealth)
	RaftLeader         string
	IsRaftLeader       bool
	RaftLeaderURI      string
	RaftAdvertise      string
	RaftHealthyMembers []string
}

func HealthTest

func HealthTest() (health *HealthStatus, err error)

HealthTest attempts to write to the backend database and get a result

type NodeHealth

type NodeHealth struct {
	Hostname        string
	Token           string
	AppVersion      string
	FirstSeenActive string
	LastSeenActive  string
	ExtraInfo       string
	Command         string
	DBBackend       string

	LastReported time.Time
	// contains filtered or unexported fields
}

func ElectedNode

func ElectedNode() (node *NodeHealth, isElected bool, err error)

ElectedNode returns the details of the elected node, as well as answering the question "is this process the elected one"?

func NewNodeHealth

func NewNodeHealth() *NodeHealth

func ReadAvailableNodes

func ReadAvailableNodes(onlyHTTPNodes bool) (nodes [](*NodeHealth), err error)

func (*NodeHealth) Update

func (nodeHealth *NodeHealth) Update() *NodeHealth

type VTOrcExecutionMode

type VTOrcExecutionMode string
const (
	VTOrcExecutionCliMode  VTOrcExecutionMode = "CLIMode"
	VTOrcExecutionHTTPMode VTOrcExecutionMode = "HttpMode"
)

Jump to

Keyboard shortcuts

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