diff --git a/db.go b/db.go index 6ef35ea8..35a56e85 100644 --- a/db.go +++ b/db.go @@ -212,7 +212,7 @@ func (db *DB) munmap() error { // mmapSize determines the appropriate size for the mmap given the current size // of the database. The minimum size is 4MB and doubles until it reaches 1GB. func (db *DB) mmapSize(size int) int { - if size < minMmapSize { + if size <= minMmapSize { return minMmapSize } else if size < maxMmapStep { size *= 2 diff --git a/db_test.go b/db_test.go index e689836b..0b4e840c 100644 --- a/db_test.go +++ b/db_test.go @@ -297,7 +297,8 @@ func TestDB_mmapSize(t *testing.T) { assert.Equal(t, db.mmapSize(0), minMmapSize) assert.Equal(t, db.mmapSize(16384), minMmapSize) assert.Equal(t, db.mmapSize(minMmapSize-1), minMmapSize) - assert.Equal(t, db.mmapSize(minMmapSize), minMmapSize*2) + assert.Equal(t, db.mmapSize(minMmapSize), minMmapSize) + assert.Equal(t, db.mmapSize(minMmapSize+1), (minMmapSize*2)+4096) assert.Equal(t, db.mmapSize(10000000), 20000768) assert.Equal(t, db.mmapSize((1<<30)-1), 2147483648) assert.Equal(t, db.mmapSize(1<<30), 1<<31)