diff --git a/nano/node/node.cpp b/nano/node/node.cpp index 6f9d457a..8dbd7005 100644 --- a/nano/node/node.cpp +++ b/nano/node/node.cpp @@ -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]() { diff --git a/nano/secure/common.cpp b/nano/secure/common.cpp index 2a18de6c..c49865c0 100644 --- a/nano/secure/common.cpp +++ b/nano/secure/common.cpp @@ -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 diff --git a/nano/secure/common.hpp b/nano/secure/common.hpp index eb577421..3226b8f1 100644 --- a/nano/secure/common.hpp +++ b/nano/secure/common.hpp @@ -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 */