From be1006f4cbe96ec05683a8097673e0eca6b157fd Mon Sep 17 00:00:00 2001 From: Sergey Kroshnin Date: Fri, 14 Feb 2020 14:51:47 +0300 Subject: [PATCH] Add launch flag --disable_block_processor_unchecked_deletion (#2557) --- nano/node/blockprocessor.cpp | 7 ++----- nano/node/cli.cpp | 3 +++ nano/node/nodeconfig.hpp | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/nano/node/blockprocessor.cpp b/nano/node/blockprocessor.cpp index 42b7194c2..79078028b 100644 --- a/nano/node/blockprocessor.cpp +++ b/nano/node/blockprocessor.cpp @@ -467,10 +467,7 @@ nano::process_return nano::block_processor::process_one (nano::write_transaction { node.logger.try_log (boost::str (boost::format ("Old for: %1%") % hash.to_string ())); } - if (!node.flags.fast_bootstrap) - { - queue_unchecked (transaction_a, hash); - } + queue_unchecked (transaction_a, hash); node.active.update_difficulty (info_a.block, transaction_a); node.stats.inc (nano::stat::type::ledger, nano::stat::detail::old); break; @@ -555,7 +552,7 @@ void nano::block_processor::queue_unchecked (nano::write_transaction const & tra auto unchecked_blocks (node.store.unchecked_get (transaction_a, hash_a)); for (auto & info : unchecked_blocks) { - if (!node.flags.fast_bootstrap) + if (!node.flags.disable_block_processor_unchecked_deletion) { if (!node.store.unchecked_del (transaction_a, nano::unchecked_key (hash_a, info.block->hash ()))) { diff --git a/nano/node/cli.cpp b/nano/node/cli.cpp index 586e8cbf8..7f0190da0 100644 --- a/nano/node/cli.cpp +++ b/nano/node/cli.cpp @@ -92,6 +92,7 @@ void nano::add_node_flag_options (boost::program_options::options_description & ("disable_unchecked_cleanup", "Disables periodic cleanup of old records from unchecked table") ("disable_unchecked_drop", "Disables drop of unchecked table at startup") ("disable_providing_telemetry_metrics", "Disable using any node information in the telemetry_ack messages.") + ("disable_block_processor_unchecked_deletion", "Disable deletion of unchecked blocks after processing") ("fast_bootstrap", "Increase bootstrap speed for high end nodes with higher limits") ("batch_size", boost::program_options::value(), "Increase sideband batch size, default 512") ("block_processor_batch_size", boost::program_options::value(), "Increase block processor transaction batch write size, default 0 (limited by config block_processor_batch_max_time), 256k for fast_bootstrap") @@ -122,9 +123,11 @@ std::error_code nano::update_flags (nano::node_flags & flags_a, boost::program_o } flags_a.disable_unchecked_cleanup = (vm.count ("disable_unchecked_cleanup") > 0); flags_a.disable_unchecked_drop = (vm.count ("disable_unchecked_drop") > 0); + flags_a.disable_block_processor_unchecked_deletion = (vm.count ("disable_block_processor_unchecked_deletion") > 0); flags_a.fast_bootstrap = (vm.count ("fast_bootstrap") > 0); if (flags_a.fast_bootstrap) { + flags_a.disable_block_processor_unchecked_deletion = true; flags_a.block_processor_batch_size = 256 * 1024; flags_a.block_processor_full_size = 1024 * 1024; flags_a.block_processor_verification_size = std::numeric_limits::max (); diff --git a/nano/node/nodeconfig.hpp b/nano/node/nodeconfig.hpp index 23451eaaa..1d8df5b2c 100644 --- a/nano/node/nodeconfig.hpp +++ b/nano/node/nodeconfig.hpp @@ -125,6 +125,7 @@ public: bool disable_unchecked_cleanup{ false }; bool disable_unchecked_drop{ true }; bool disable_providing_telemetry_metrics{ false }; + bool disable_block_processor_unchecked_deletion{ false }; bool fast_bootstrap{ false }; bool read_only{ false }; nano::generate_cache generate_cache;