| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package server
- import (
- "time"
- )
- const (
- // DefaultActiveSize is the default number of active followers allowed.
- DefaultActiveSize = 9
- // MinActiveSize is the minimum active size allowed.
- MinActiveSize = 3
- // DefaultPromoteDelay is the default elapsed time before promotion.
- DefaultPromoteDelay = int((30 * time.Minute) / time.Second)
- // MinPromoteDelay is the minimum promote delay allowed.
- MinPromoteDelay = int((2 * time.Second) / time.Second)
- )
- // ClusterConfig represents cluster-wide configuration settings.
- // These settings can only be changed through Raft.
- 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 proxies.
- ActiveSize int `json:"activeSize"`
- // PromoteDelay is the amount of time, in seconds, after a node is
- // unreachable that it will be swapped out for a proxy node, if available.
- PromoteDelay int `json:"promoteDelay"`
- }
- // NewClusterConfig returns a cluster configuration with default settings.
- func NewClusterConfig() *ClusterConfig {
- return &ClusterConfig{
- ActiveSize: DefaultActiveSize,
- PromoteDelay: DefaultPromoteDelay,
- }
- }
|