diff --git a/erigon-lib/kv/mdbx/kv_mdbx.go b/erigon-lib/kv/mdbx/kv_mdbx.go index 847f772f2bc..3fc537c9ee9 100644 --- a/erigon-lib/kv/mdbx/kv_mdbx.go +++ b/erigon-lib/kv/mdbx/kv_mdbx.go @@ -70,6 +70,9 @@ type MdbxOpts struct { inMem bool } +const DefaultMapSize = 2 * datasize.TB +const DefaultGrowthStep = 2 * datasize.GB + func NewMDBX(log log.Logger) MdbxOpts { opts := MdbxOpts{ bucketsCfg: WithChaindataTables, @@ -81,8 +84,8 @@ func NewMDBX(log log.Logger) MdbxOpts { // but for reproducibility of benchmarks - please don't rely on Available RAM dirtySpace: 2 * (memory.TotalMemory() / 42), - mapSize: 2 * datasize.TB, - growthStep: 2 * datasize.GB, + mapSize: DefaultMapSize, + growthStep: DefaultGrowthStep, mergeThreshold: 3 * 8192, shrinkThreshold: -1, // default label: kv.InMem, diff --git a/node/node.go b/node/node.go index 60a12240f93..06ba6018126 100644 --- a/node/node.go +++ b/node/node.go @@ -325,7 +325,7 @@ func OpenDatabase(config *nodecfg.Config, label kv.Label, name string, readonly } switch label { - case kv.ChainDB, kv.ConsensusDB: + case kv.ChainDB: if config.MdbxPageSize.Bytes() > 0 { opts = opts.PageSize(config.MdbxPageSize.Bytes()) } @@ -335,6 +335,18 @@ func OpenDatabase(config *nodecfg.Config, label kv.Label, name string, readonly if config.MdbxGrowthStep > 0 { opts = opts.GrowthStep(config.MdbxGrowthStep) } + case kv.ConsensusDB: + if config.MdbxPageSize.Bytes() > 0 { + opts = opts.PageSize(config.MdbxPageSize.Bytes()) + } + // Don't adjust up the consensus DB - this will lead to resource exhaustion lor large map sizes + if config.MdbxDBSizeLimit > 0 && config.MdbxDBSizeLimit < mdbx.DefaultMapSize { + opts = opts.MapSize(config.MdbxDBSizeLimit) + } + // Don't adjust up the consensus DB - to align with db size limit above + if config.MdbxGrowthStep > 0 && config.MdbxGrowthStep < mdbx.DefaultGrowthStep { + opts = opts.GrowthStep(config.MdbxGrowthStep) + } default: opts = opts.GrowthStep(16 * datasize.MB) } diff --git a/params/version.go b/params/version.go index ae8330c9543..317b385977f 100644 --- a/params/version.go +++ b/params/version.go @@ -33,7 +33,7 @@ var ( const ( VersionMajor = 2 // Major version component of the current release VersionMinor = 50 // Minor version component of the current release - VersionMicro = 0 // Patch version component of the current release + VersionMicro = 1 // Patch version component of the current release VersionModifier = "" // Modifier component of the current release VersionKeyCreated = "ErigonVersionCreated" VersionKeyFinished = "ErigonVersionFinished"