From 026ab525113e04d8107754a121ea8e2763cce82f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wo=CC=81jcik?= <3044353+pwojcikdev@users.noreply.github.com> Date: Sat, 2 Nov 2024 16:17:16 +0100 Subject: [PATCH] Use lowest priority for frontier accounts --- nano/node/bootstrap/account_sets.cpp | 4 ++-- nano/node/bootstrap/account_sets.hpp | 16 ++++++++-------- nano/node/bootstrap/bootstrap_service.cpp | 3 ++- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/nano/node/bootstrap/account_sets.cpp b/nano/node/bootstrap/account_sets.cpp index 1ecd1d890..6a796188b 100644 --- a/nano/node/bootstrap/account_sets.cpp +++ b/nano/node/bootstrap/account_sets.cpp @@ -81,7 +81,7 @@ void nano::bootstrap::account_sets::priority_down (nano::account const & account } } -void nano::bootstrap::account_sets::priority_set (nano::account const & account) +void nano::bootstrap::account_sets::priority_set (nano::account const & account, double priority) { if (account.is_zero ()) { @@ -94,7 +94,7 @@ void nano::bootstrap::account_sets::priority_set (nano::account const & account) if (iter == priorities.get ().end ()) { stats.inc (nano::stat::type::bootstrap_account_sets, nano::stat::detail::priority_insert); - priorities.get ().insert ({ account, account_sets::priority_initial }); + priorities.get ().insert ({ account, priority }); trim_overflow (); } } diff --git a/nano/node/bootstrap/account_sets.hpp b/nano/node/bootstrap/account_sets.hpp index 5680600e4..9e04885c4 100644 --- a/nano/node/bootstrap/account_sets.hpp +++ b/nano/node/bootstrap/account_sets.hpp @@ -24,6 +24,13 @@ namespace bootstrap /** This class tracks accounts various account sets which are shared among the multiple bootstrap threads */ class account_sets { + public: // Constants + static double constexpr priority_initial = 2.0; + static double constexpr priority_increase = 2.0; + static double constexpr priority_divide = 2.0; + static double constexpr priority_max = 128.0; + static double constexpr priority_cutoff = 0.15; + public: account_sets (account_sets_config const &, nano::stats &); @@ -38,7 +45,7 @@ namespace bootstrap * Current implementation divides priority by 2.0f and saturates down to 1.0f. */ void priority_down (nano::account const & account); - void priority_set (nano::account const & account); + void priority_set (nano::account const & account, double priority = priority_initial); void block (nano::account const & account, nano::block_hash const & dependency); void unblock (nano::account const & account, std::optional const & hash = std::nullopt); @@ -148,13 +155,6 @@ namespace bootstrap ordered_priorities priorities; ordered_blocking blocking; - public: // Constants - static double constexpr priority_initial = 2.0; - static double constexpr priority_increase = 2.0; - static double constexpr priority_divide = 2.0; - static double constexpr priority_max = 128.0; - static double constexpr priority_cutoff = 0.15; - public: using info_t = std::tuple; // info_t info () const; diff --git a/nano/node/bootstrap/bootstrap_service.cpp b/nano/node/bootstrap/bootstrap_service.cpp index 1f54cacb3..98ea07c9c 100644 --- a/nano/node/bootstrap/bootstrap_service.cpp +++ b/nano/node/bootstrap/bootstrap_service.cpp @@ -981,7 +981,8 @@ void nano::bootstrap_service::process_frontiers (std::deque