From bbfb7debb2befb3376fcb09892cc62c7e8824353 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 15:59:50 +0100 Subject: [PATCH] Erase lowest priority accounts first --- nano/lib/stats_enums.hpp | 4 ++-- nano/node/bootstrap/account_sets.cpp | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nano/lib/stats_enums.hpp b/nano/lib/stats_enums.hpp index 57055653c..ffb66241b 100644 --- a/nano/lib/stats_enums.hpp +++ b/nano/lib/stats_enums.hpp @@ -483,11 +483,11 @@ enum class detail next_frontier, blocking_insert, - blocking_erase_overflow, + blocking_overflow, priority_insert, priority_erase_by_threshold, priority_erase_by_blocking, - priority_erase_overflow, + priority_overflow, deprioritize, deprioritize_failed, sync_dependencies, diff --git a/nano/node/bootstrap/account_sets.cpp b/nano/node/bootstrap/account_sets.cpp index 00b522a26..1ecd1d890 100644 --- a/nano/node/bootstrap/account_sets.cpp +++ b/nano/node/bootstrap/account_sets.cpp @@ -212,17 +212,17 @@ void nano::bootstrap::account_sets::dependency_update (nano::block_hash const & void nano::bootstrap::account_sets::trim_overflow () { - while (priorities.size () > config.priorities_max) + while (!priorities.empty () && priorities.size () > config.priorities_max) { - // Erase the oldest entry - priorities.pop_front (); - stats.inc (nano::stat::type::bootstrap_account_sets, nano::stat::detail::priority_erase_overflow); + // Erase the lowest priority entry + stats.inc (nano::stat::type::bootstrap_account_sets, nano::stat::detail::priority_overflow); + priorities.get ().erase (std::prev (priorities.get ().end ())); } - while (blocking.size () > config.blocking_max) + while (!blocking.empty () && blocking.size () > config.blocking_max) { - // Erase the oldest entry + // Erase the lowest priority entry + stats.inc (nano::stat::type::bootstrap_account_sets, nano::stat::detail::blocking_overflow); blocking.pop_front (); - stats.inc (nano::stat::type::bootstrap_account_sets, nano::stat::detail::blocking_erase_overflow); } }