mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 02:15:43 +03:00
core: switch to go.etc.io/bbolt
This PR swaps the underlying BoltDB implementation from boltdb/bolt to go.etc.io/bbolt. In addition, the Server has a new configuration option for disabling NoFreelistSync on the underlying database. Freelist option: https://github.com/etcd-io/bbolt/blob/master/db.go#L81 Consul equivelent PR: https://github.com/hashicorp/consul/pull/11720
This commit is contained in:
@@ -444,6 +444,11 @@ func convertServerConfig(agentConfig *Config) (*nomad.Config, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// Set the raft bolt parameters
|
||||
if bolt := agentConfig.Server.RaftBoltConfig; bolt != nil {
|
||||
conf.RaftBoltNoFreelistSync = bolt.NoFreelistSync
|
||||
}
|
||||
|
||||
return conf, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -516,11 +516,26 @@ type ServerConfig struct {
|
||||
// ExtraKeysHCL is used by hcl to surface unexpected keys
|
||||
ExtraKeysHCL []string `hcl:",unusedKeys" json:"-"`
|
||||
|
||||
// Search configures UI search features.
|
||||
Search *Search `hcl:"search"`
|
||||
|
||||
// DeploymentQueryRateLimit is in queries per second and is used by the
|
||||
// DeploymentWatcher to throttle the amount of simultaneously deployments
|
||||
DeploymentQueryRateLimit float64 `hcl:"deploy_query_rate_limit"`
|
||||
|
||||
// RaftBoltConfig configures boltdb as used by raft.
|
||||
RaftBoltConfig *RaftBoltConfig `hcl:"raft_boltdb"`
|
||||
}
|
||||
|
||||
// RaftBoltConfig is used in servers to configure parameters of the boltdb
|
||||
// used for raft consensus.
|
||||
type RaftBoltConfig struct {
|
||||
// NoFreelistSync toggles whether the underlying raft storage should sync its
|
||||
// freelist to disk within the bolt .db file. When disabled, IO performance
|
||||
// will be improved but at the expense of longer startup times.
|
||||
//
|
||||
// Default: false.
|
||||
NoFreelistSync bool `hcl:"no_freelist_sync"`
|
||||
}
|
||||
|
||||
// Search is used in servers to configure search API options.
|
||||
@@ -1599,6 +1614,12 @@ func (s *ServerConfig) Merge(b *ServerConfig) *ServerConfig {
|
||||
}
|
||||
}
|
||||
|
||||
if b.RaftBoltConfig != nil {
|
||||
result.RaftBoltConfig = &RaftBoltConfig{
|
||||
NoFreelistSync: b.RaftBoltConfig.NoFreelistSync,
|
||||
}
|
||||
}
|
||||
|
||||
// Add the schedulers
|
||||
result.EnabledSchedulers = append(result.EnabledSchedulers, b.EnabledSchedulers...)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user