aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2017-04-19 09:34:48 -0700
committerPieter Wuille <pieter.wuille@gmail.com>2017-06-26 10:45:48 -0700
commit0580ee08ff413f729bd34e5a5ce0fb75894f0256 (patch)
tree1aa759b02f0d8210a079a06b9535a3120f1f5238
parent013a56aa1af985894b3eaf7c325647b0b74e4456 (diff)
Adapt memory usage estimation for flushing
-rw-r--r--src/txdb.h4
-rw-r--r--src/validation.cpp2
2 files changed, 2 insertions, 4 deletions
diff --git a/src/txdb.h b/src/txdb.h
index fa6bce2140..e5c0516a38 100644
--- a/src/txdb.h
+++ b/src/txdb.h
@@ -19,10 +19,8 @@ class CBlockIndex;
class CCoinsViewDBCursor;
class uint256;
-//! Compensate for extra memory peak (x1.5-x1.9) at flush time.
-static constexpr int DB_PEAK_USAGE_FACTOR = 2;
//! No need to periodic flush if at least this much space still available.
-static constexpr int MAX_BLOCK_COINSDB_USAGE = 10 * DB_PEAK_USAGE_FACTOR;
+static constexpr int MAX_BLOCK_COINSDB_USAGE = 10;
//! -dbcache default (MiB)
static const int64_t nDefaultDbCache = 450;
//! -dbbatchsize default (bytes)
diff --git a/src/validation.cpp b/src/validation.cpp
index f5e31e0a0b..77b96be1e5 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -1781,7 +1781,7 @@ bool static FlushStateToDisk(const CChainParams& chainparams, CValidationState &
nLastSetChain = nNow;
}
int64_t nMempoolSizeMax = GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000;
- int64_t cacheSize = pcoinsTip->DynamicMemoryUsage() * DB_PEAK_USAGE_FACTOR;
+ int64_t cacheSize = pcoinsTip->DynamicMemoryUsage();
int64_t nTotalSpace = nCoinCacheUsage + std::max<int64_t>(nMempoolSizeMax - nMempoolUsage, 0);
// The cache is large and we're within 10% and 10 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 - MAX_BLOCK_COINSDB_USAGE * 1024 * 1024);