Unchecked cleanup tuning (#2336)

* increase max deleted records count
* more often unchecked cleanup
This commit is contained in:
Sergey Kroshnin 2019-10-11 21:32:42 +03:00 committed by GitHub
commit d4f4a8e499
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 9 deletions

View file

@ -653,7 +653,10 @@ void nano::node::start ()
}
else if (!flags.disable_unchecked_cleanup)
{
ongoing_unchecked_cleanup ();
auto this_l (shared ());
worker.push_task ([this_l]() {
this_l->ongoing_unchecked_cleanup ();
});
}
ongoing_store_flush ();
rep_crawler.start ();
@ -902,8 +905,8 @@ void nano::node::unchecked_cleanup ()
{
auto now (nano::seconds_since_epoch ());
auto transaction (store.tx_begin_read ());
// Max 128k records to clean, max 2 minutes reading to prevent slow i/o systems start issues
for (auto i (store.unchecked_begin (transaction)), n (store.unchecked_end ()); i != n && cleaning_list.size () < 128 * 1024 && nano::seconds_since_epoch () - now < 120; ++i)
// Max 1M records to clean, max 2 minutes reading to prevent slow i/o systems issues
for (auto i (store.unchecked_begin (transaction)), n (store.unchecked_end ()); i != n && cleaning_list.size () < 1024 * 1024 && nano::seconds_since_epoch () - now < 120; ++i)
{
nano::unchecked_key const & key (i->first);
nano::unchecked_info const & info (i->second);
@ -933,10 +936,7 @@ void nano::node::unchecked_cleanup ()
void nano::node::ongoing_unchecked_cleanup ()
{
if (!bootstrap_initiator.in_progress ())
{
unchecked_cleanup ();
}
unchecked_cleanup ();
auto this_l (shared ());
alarm.add (std::chrono::steady_clock::now () + network_params.node.unchecked_cleaning_interval, [this_l]() {
this_l->worker.push_task ([this_l]() {

View file

@ -122,7 +122,7 @@ nano::node_constants::node_constants (nano::network_constants & network_constant
backup_interval = std::chrono::minutes (5);
search_pending_interval = network_constants.is_test_network () ? std::chrono::seconds (1) : std::chrono::seconds (5 * 60);
peer_interval = search_pending_interval;
unchecked_cleaning_interval = std::chrono::hours (2);
unchecked_cleaning_interval = std::chrono::minutes (30);
process_confirmed_interval = network_constants.is_test_network () ? std::chrono::milliseconds (50) : std::chrono::milliseconds (500);
max_weight_samples = network_constants.is_live_network () ? 4032 : 864;
weight_period = 5 * 60; // 5 minutes

View file

@ -392,7 +392,7 @@ public:
std::chrono::minutes backup_interval;
std::chrono::seconds search_pending_interval;
std::chrono::seconds peer_interval;
std::chrono::hours unchecked_cleaning_interval;
std::chrono::minutes unchecked_cleaning_interval;
std::chrono::milliseconds process_confirmed_interval;
/** The maximum amount of samples for a 2 week period on live or 3 days on beta */