| 12345678910111213141516171819202122232425262728293031323334353637 |
- package cfg
- // ClusterConfig represents cluster-wide configuration settings.
- type ClusterConfig struct {
- // ActiveSize is the maximum number of node that can join as Raft followers.
- // Nodes that join the cluster after the limit is reached are standbys.
- ActiveSize int `json:"activeSize"`
- // RemoveDelay is the amount of time, in seconds, after a node is
- // unreachable that it will be swapped out as a standby node.
- RemoveDelay float64 `json:"removeDelay"`
- // SyncInterval is the amount of time, in seconds, between
- // cluster sync when it runs in standby mode.
- SyncInterval float64 `json:"syncInterval"`
- }
- // NewClusterConfig returns a cluster configuration with default settings.
- func NewClusterConfig() *ClusterConfig {
- return &ClusterConfig{
- ActiveSize: DefaultActiveSize,
- RemoveDelay: DefaultRemoveDelay,
- SyncInterval: DefaultSyncInterval,
- }
- }
- func (c *ClusterConfig) Sanitize() {
- if c.ActiveSize < MinActiveSize {
- c.ActiveSize = MinActiveSize
- }
- if c.RemoveDelay < MinRemoveDelay {
- c.RemoveDelay = MinRemoveDelay
- }
- if c.SyncInterval < MinSyncInterval {
- c.SyncInterval = MinSyncInterval
- }
- }
|