aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2017-03-30 12:05:05 -0700
committerWladimir J. van der Laan <laanwj@gmail.com>2017-03-31 12:07:18 +0200
commit0b5e162b84ec95cb63903dd21e4003a3d4503421 (patch)
treedf4b37b863592d5ed0424586021dd8f8e1292eb9
parentfa6b5fc1ccd50c01a787adbc15f9a4af60f14735 (diff)
downloadbitcoin-0b5e162b84ec95cb63903dd21e4003a3d4503421.tar.xz
Compensate for memory peak at flush time
Github-Pull: #10126 Rebased-From: 7228ce853de5670d559d752f04a7db79578990ea
-rw-r--r--src/validation.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/validation.cpp b/src/validation.cpp
index e8a3736e5d..5643d2ab59 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -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);