Browse Source

Compensate for memory peak at flush time

Github-Pull: #10126
Rebased-From: 7228ce853d
0.14
Pieter Wuille 8 years ago committed by Wladimir J. van der Laan
parent
commit
0b5e162b84
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 2
      src/validation.cpp

2
src/validation.cpp

@ -2027,7 +2027,7 @@ bool static FlushStateToDisk(CValidationState &state, FlushStateMode mode, int n @@ -2027,7 +2027,7 @@ bool static FlushStateToDisk(CValidationState &state, FlushStateMode mode, int n
nLastSetChain = nNow;
}
int64_t nMempoolSizeMax = GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000;
int64_t cacheSize = pcoinsTip->DynamicMemoryUsage();
int64_t cacheSize = pcoinsTip->DynamicMemoryUsage() * 2; // Compensate for extra memory peak (x1.5-x1.9) at flush time.
int64_t nTotalSpace = nCoinCacheUsage + std::max<int64_t>(nMempoolSizeMax - nMempoolUsage, 0);
// The cache is large and we're within 10% and 100 MiB of the limit, but we have time now (not in the middle of a block processing).
bool fCacheLarge = mode == FLUSH_STATE_PERIODIC && cacheSize > std::max((9 * nTotalSpace) / 10, nTotalSpace - 100 * 1024 * 1024);

Loading…
Cancel
Save