validation: write chainstate to disk every hour

Remove the 24 hour periodic flush interval and
write the chainstate along with blocks and block
index every hour
This commit is contained in:
Andrew Toth
2024-08-31 11:13:11 -04:00
parent 0ad7d7abdb
commit d73bd9fbe4
3 changed files with 35 additions and 43 deletions

View File

@@ -25,17 +25,18 @@ BOOST_FIXTURE_TEST_CASE(chainstate_write_interval, TestingSetup)
auto& chainstate{Assert(m_node.chainman)->ActiveChainstate()};
BlockValidationState state_dummy{};
// The first periodic flush sets m_last_flush and does not flush
// The first periodic flush sets m_last_write and does not flush
chainstate.FlushStateToDisk(state_dummy, FlushStateMode::PERIODIC);
m_node.validation_signals->SyncWithValidationInterfaceQueue();
BOOST_CHECK(!sub->m_did_flush);
SetMockTime(GetTime<std::chrono::minutes>() + 23h + 59min);
// The periodic flush interval is 1 hour
SetMockTime(GetTime<std::chrono::minutes>() + 59min);
chainstate.FlushStateToDisk(state_dummy, FlushStateMode::PERIODIC);
m_node.validation_signals->SyncWithValidationInterfaceQueue();
BOOST_CHECK(!sub->m_did_flush);
SetMockTime(GetTime<std::chrono::minutes>() + 24h);
SetMockTime(GetTime<std::chrono::minutes>() + 1h);
chainstate.FlushStateToDisk(state_dummy, FlushStateMode::PERIODIC);
m_node.validation_signals->SyncWithValidationInterfaceQueue();
BOOST_CHECK(sub->m_did_flush);