From f14154507ea9c824aa4bd43525288f2831ed347d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wo=CC=81jcik?= <3044353+pwojcikdev@users.noreply.github.com> Date: Mon, 4 Nov 2024 20:36:03 +0100 Subject: [PATCH] Cleanup --- nano/lib/stats_enums.hpp | 3 +++ nano/lib/thread_roles.cpp | 2 +- nano/lib/thread_roles.hpp | 2 +- nano/node/bootstrap/account_sets.cpp | 4 +++- nano/node/bootstrap/bootstrap_service.cpp | 18 +++++++++--------- nano/node/bootstrap/bootstrap_service.hpp | 9 +++++---- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/nano/lib/stats_enums.hpp b/nano/lib/stats_enums.hpp index 5367bc868..3a8da93a8 100644 --- a/nano/lib/stats_enums.hpp +++ b/nano/lib/stats_enums.hpp @@ -145,6 +145,7 @@ enum class detail retry, prioritized, pending, + sync, // processing queue queue, @@ -459,6 +460,7 @@ enum class detail timestamp_reset, processing_frontiers, frontiers_dropped, + sync_accounts, prioritize, prioritize_failed, @@ -492,6 +494,7 @@ enum class detail deprioritize, deprioritize_failed, sync_dependencies, + dependency_synced, request_blocks, request_account_info, diff --git a/nano/lib/thread_roles.cpp b/nano/lib/thread_roles.cpp index ab5a0a1a0..efc6aa232 100644 --- a/nano/lib/thread_roles.cpp +++ b/nano/lib/thread_roles.cpp @@ -106,7 +106,7 @@ std::string nano::thread_role::get_string (nano::thread_role::name role) case nano::thread_role::name::bootstrap_database_scan: thread_role_name_string = "Bootstrap db"; break; - case nano::thread_role::name::bootstrap_dependendy_walker: + case nano::thread_role::name::bootstrap_dependency_walker: thread_role_name_string = "Bootstrap walkr"; break; case nano::thread_role::name::bootstrap_frontier_scan: diff --git a/nano/lib/thread_roles.hpp b/nano/lib/thread_roles.hpp index 57c32f892..04325743e 100644 --- a/nano/lib/thread_roles.hpp +++ b/nano/lib/thread_roles.hpp @@ -41,7 +41,7 @@ enum class name telemetry, bootstrap, bootstrap_database_scan, - bootstrap_dependendy_walker, + bootstrap_dependency_walker, bootstrap_frontier_scan, bootstrap_cleanup, bootstrap_worker, diff --git a/nano/node/bootstrap/account_sets.cpp b/nano/node/bootstrap/account_sets.cpp index 3564f4167..4093644f5 100644 --- a/nano/node/bootstrap/account_sets.cpp +++ b/nano/node/bootstrap/account_sets.cpp @@ -272,6 +272,8 @@ nano::block_hash nano::bootstrap::account_sets::next_blocking (std::function account 0) auto begin = blocking.get ().upper_bound (nano::account{ 0 }); auto end = blocking.get ().end (); @@ -287,7 +289,7 @@ void nano::bootstrap::account_sets::sync_dependencies () if (!blocked (entry.dependency_account) && !prioritized (entry.dependency_account)) { - stats.inc (nano::stat::type::bootstrap_account_sets, nano::stat::detail::sync_dependencies); + stats.inc (nano::stat::type::bootstrap_account_sets, nano::stat::detail::dependency_synced); priority_set (entry.dependency_account); } } diff --git a/nano/node/bootstrap/bootstrap_service.cpp b/nano/node/bootstrap/bootstrap_service.cpp index 17fdf2a30..cb314839b 100644 --- a/nano/node/bootstrap/bootstrap_service.cpp +++ b/nano/node/bootstrap/bootstrap_service.cpp @@ -60,7 +60,7 @@ nano::bootstrap_service::~bootstrap_service () debug_assert (!database_thread.joinable ()); debug_assert (!dependencies_thread.joinable ()); debug_assert (!frontiers_thread.joinable ()); - debug_assert (!timeout_thread.joinable ()); + debug_assert (!cleanup_thread.joinable ()); debug_assert (!workers.alive ()); } @@ -70,7 +70,7 @@ void nano::bootstrap_service::start () debug_assert (!database_thread.joinable ()); debug_assert (!dependencies_thread.joinable ()); debug_assert (!frontiers_thread.joinable ()); - debug_assert (!timeout_thread.joinable ()); + debug_assert (!cleanup_thread.joinable ()); if (!config.enable) { @@ -99,7 +99,7 @@ void nano::bootstrap_service::start () if (config.enable_dependency_walker) { dependencies_thread = std::thread ([this] () { - nano::thread_role::set (nano::thread_role::name::bootstrap_dependendy_walker); + nano::thread_role::set (nano::thread_role::name::bootstrap_dependency_walker); run_dependencies (); }); } @@ -112,7 +112,7 @@ void nano::bootstrap_service::start () }); } - timeout_thread = std::thread ([this] () { + cleanup_thread = std::thread ([this] () { nano::thread_role::set (nano::thread_role::name::bootstrap_cleanup); run_timeouts (); }); @@ -130,7 +130,7 @@ void nano::bootstrap_service::stop () nano::join_or_pass (database_thread); nano::join_or_pass (dependencies_thread); nano::join_or_pass (frontiers_thread); - nano::join_or_pass (timeout_thread); + nano::join_or_pass (cleanup_thread); workers.stop (); } @@ -418,7 +418,7 @@ nano::block_hash nano::bootstrap_service::next_blocking () debug_assert (!mutex.try_lock ()); auto blocking = accounts.next_blocking ([this] (nano::block_hash const & hash) { - return count_tags (hash, query_source::blocking) == 0; + return count_tags (hash, query_source::dependencies) == 0; }); if (blocking.is_zero ()) { @@ -590,7 +590,7 @@ void nano::bootstrap_service::run_database () } } -void nano::bootstrap_service::run_one_blocking () +void nano::bootstrap_service::run_one_dependency () { // No need to wait for blockprocessor, as we are not processing blocks auto channel = wait_channel (); @@ -603,7 +603,7 @@ void nano::bootstrap_service::run_one_blocking () { return; } - request_info (blocking, channel, query_source::blocking); + request_info (blocking, channel, query_source::dependencies); } void nano::bootstrap_service::run_dependencies () @@ -613,7 +613,7 @@ void nano::bootstrap_service::run_dependencies () { lock.unlock (); stats.inc (nano::stat::type::bootstrap, nano::stat::detail::loop_dependencies); - run_one_blocking (); + run_one_dependency (); lock.lock (); } } diff --git a/nano/node/bootstrap/bootstrap_service.hpp b/nano/node/bootstrap/bootstrap_service.hpp index 8cd7ac651..dbeea117d 100644 --- a/nano/node/bootstrap/bootstrap_service.hpp +++ b/nano/node/bootstrap/bootstrap_service.hpp @@ -76,7 +76,7 @@ public: // Tag invalid, priority, database, - blocking, + dependencies, frontiers, }; @@ -104,9 +104,9 @@ private: void run_database (); void run_one_database (bool should_throttle); void run_dependencies (); - void run_one_blocking (); - void run_one_frontier (); + void run_one_dependency (); void run_frontiers (); + void run_one_frontier (); void run_timeouts (); void cleanup_and_sync (); @@ -194,6 +194,7 @@ private: // Requests for accounts from database have much lower hitrate and could introduce strain on the network // A separate (lower) limiter ensures that we always reserve resources for querying accounts from priority queue nano::rate_limiter database_limiter; + // Rate limiter for frontier requests nano::rate_limiter frontiers_limiter; nano::interval sync_dependencies_interval; @@ -205,7 +206,7 @@ private: std::thread database_thread; std::thread dependencies_thread; std::thread frontiers_thread; - std::thread timeout_thread; + std::thread cleanup_thread; nano::thread_pool workers; nano::random_generator_mt rng;