diff --git a/server/mvcc/backend/backend.go b/server/mvcc/backend/backend.go index f156ae994..a986921e2 100644 --- a/server/mvcc/backend/backend.go +++ b/server/mvcc/backend/backend.go @@ -151,6 +151,8 @@ type BackendConfig struct { Hooks Hooks } +type BackendConfigOption func(*BackendConfig) + func DefaultBackendConfig() BackendConfig { return BackendConfig{ BatchInterval: defaultBatchInterval, @@ -163,9 +165,19 @@ func New(bcfg BackendConfig) Backend { return newBackend(bcfg) } -func NewDefaultBackend(path string) Backend { +func WithMmapSize(size uint64) BackendConfigOption { + return func(bcfg *BackendConfig) { + bcfg.MmapSize = size + } +} + +func NewDefaultBackend(path string, opts ...BackendConfigOption) Backend { bcfg := DefaultBackendConfig() bcfg.Path = path + for _, opt := range opts { + opt(&bcfg) + } + return newBackend(bcfg) }