Don't call lsn_reset at periodic time
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
This commit is contained in:
parent
b14c7bb3be
commit
6eaeeb2648
2 changed files with 6 additions and 5 deletions
|
@ -469,10 +469,10 @@ bool BerkeleyEnvironment::Salvage(const std::string& strFile, bool fAggressive,
|
|||
}
|
||||
|
||||
|
||||
void BerkeleyEnvironment::CheckpointLSN(const std::string& strFile)
|
||||
void BerkeleyEnvironment::CheckpointLSN(const std::string& strFile, bool lsnReset)
|
||||
{
|
||||
dbenv->txn_checkpoint(0, 0, 0);
|
||||
if (fMockDb)
|
||||
if (fMockDb || !lsnReset)
|
||||
return;
|
||||
dbenv->lsn_reset(strFile.c_str(), 0);
|
||||
}
|
||||
|
@ -799,9 +799,10 @@ bool BerkeleyBatch::PeriodicFlush(BerkeleyDatabase& database)
|
|||
|
||||
// Flush wallet file so it's self contained
|
||||
env->CloseDb(strFile);
|
||||
env->CheckpointLSN(strFile);
|
||||
// don't call lsn_reset at periodic time
|
||||
// it causes performace issues on big wallets
|
||||
env->CheckpointLSN(strFile, /* lsnReset */ false);
|
||||
|
||||
env->mapFileUseCount.erase(mi++);
|
||||
LogPrint(BCLog::DB, "Flushed %s %dms\n", strFile, GetTimeMillis() - nStart);
|
||||
ret = true;
|
||||
}
|
||||
|
|
|
@ -83,7 +83,7 @@ public:
|
|||
bool Open(bool retry);
|
||||
void Close();
|
||||
void Flush(bool fShutdown);
|
||||
void CheckpointLSN(const std::string& strFile);
|
||||
void CheckpointLSN(const std::string& strFile, bool lsnReset = true);
|
||||
|
||||
void CloseDb(const std::string& strFile);
|
||||
void ReloadDbEnv();
|
||||
|
|
Loading…
Reference in a new issue