mirror of
https://github.com/wownero/wownero.git
synced 2026-10-17 15:41:44 +02:00
lmdb: round map sizes up to page boundaries
Round requested LMDB map sizes upward to the next page boundary. This avoids producing incorrectly aligned map sizes when the requested size is not already page-aligned.
This commit is contained in:
@@ -561,7 +561,9 @@ void BlockchainLMDB::do_resize(uint64_t increase_size)
|
||||
if (increase_size > 0)
|
||||
new_mapsize = mei.me_mapsize + increase_size;
|
||||
|
||||
new_mapsize += (new_mapsize % mst.ms_psize);
|
||||
const uint64_t remainder = new_mapsize % mst.ms_psize;
|
||||
if (remainder)
|
||||
new_mapsize += mst.ms_psize - remainder;
|
||||
|
||||
mdb_txn_safe::prevent_new_txns();
|
||||
|
||||
|
||||
@@ -123,7 +123,9 @@ static void add_size(MDB_env *env, uint64_t bytes)
|
||||
mdb_env_stat(env, &mst);
|
||||
|
||||
uint64_t new_mapsize = (uint64_t)mei.me_mapsize + bytes;
|
||||
new_mapsize += (new_mapsize % mst.ms_psize);
|
||||
const uint64_t remainder = new_mapsize % mst.ms_psize;
|
||||
if (remainder)
|
||||
new_mapsize += mst.ms_psize - remainder;
|
||||
|
||||
int result = mdb_env_set_mapsize(env, new_mapsize);
|
||||
if (result)
|
||||
|
||||
Reference in New Issue
Block a user