From c96f4f0f58f64f74659a10ba7c7ba1f7e87bf91c Mon Sep 17 00:00:00 2001 From: Sergey Kroshnin Date: Thu, 16 Jan 2020 12:14:15 +0300 Subject: [PATCH] Change processed blocks factor for requeued pulls (#2437) From `processed blocks / 10000` to `processed blocks / 4096` for better processing of largest chains in case of failures --- nano/node/bootstrap/bootstrap.cpp | 3 ++- nano/node/bootstrap/bootstrap.hpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/nano/node/bootstrap/bootstrap.cpp b/nano/node/bootstrap/bootstrap.cpp index d8056db5..6d64070e 100644 --- a/nano/node/bootstrap/bootstrap.cpp +++ b/nano/node/bootstrap/bootstrap.cpp @@ -23,6 +23,7 @@ constexpr double nano::bootstrap_limits::required_frontier_confirmation_ratio; constexpr unsigned nano::bootstrap_limits::frontier_confirmation_blocks_limit; constexpr unsigned nano::bootstrap_limits::requeued_pulls_limit; constexpr unsigned nano::bootstrap_limits::requeued_pulls_limit_test; +constexpr unsigned nano::bootstrap_limits::requeued_pulls_processed_blocks_factor; constexpr std::chrono::seconds nano::bootstrap_limits::lazy_flush_delay_sec; constexpr unsigned nano::bootstrap_limits::lazy_destinations_request_limit; constexpr uint64_t nano::bootstrap_limits::lazy_batch_pull_count_resize_blocks_limit; @@ -605,7 +606,7 @@ void nano::bootstrap_attempt::requeue_pull (nano::pull_info const & pull_a, bool ++pull.attempts; } ++requeued_pulls; - if (mode != nano::bootstrap_mode::lazy && pull.attempts < pull.retry_limit + (pull.processed / 10000)) + if (mode != nano::bootstrap_mode::lazy && pull.attempts < pull.retry_limit + (pull.processed / nano::bootstrap_limits::requeued_pulls_processed_blocks_factor)) { nano::lock_guard lock (mutex); pulls.push_front (pull); diff --git a/nano/node/bootstrap/bootstrap.hpp b/nano/node/bootstrap/bootstrap.hpp index 5066901f..0ab83194 100644 --- a/nano/node/bootstrap/bootstrap.hpp +++ b/nano/node/bootstrap/bootstrap.hpp @@ -293,6 +293,7 @@ public: static constexpr unsigned frontier_confirmation_blocks_limit = 128 * 1024; static constexpr unsigned requeued_pulls_limit = 256; static constexpr unsigned requeued_pulls_limit_test = 2; + static constexpr unsigned requeued_pulls_processed_blocks_factor = 4096; static constexpr unsigned bulk_push_cost_limit = 200; static constexpr std::chrono::seconds lazy_flush_delay_sec = std::chrono::seconds (5); static constexpr unsigned lazy_destinations_request_limit = 256 * 1024;