This commit is contained in:
Piotr Wójcik 2025-01-16 18:39:02 +01:00
commit 1c9f930b7f
2 changed files with 14 additions and 0 deletions

View file

@ -115,6 +115,7 @@ enum class type
message_processor_type, message_processor_type,
process_confirmed, process_confirmed,
online_reps, online_reps,
pruning,
_last // Must be the last enum _last // Must be the last enum
}; };
@ -643,6 +644,12 @@ enum class detail
block_confirmed, block_confirmed,
large_backlog, large_backlog,
// pruning
ledger_pruning,
pruning_target,
pruned_count,
collect_targets,
_last // Must be the last enum _last // Must be the last enum
}; };

View file

@ -50,6 +50,8 @@ void nano::pruning::ongoing_ledger_pruning ()
void nano::pruning::ledger_pruning (uint64_t const batch_size_a, bool bootstrap_weight_reached_a) void nano::pruning::ledger_pruning (uint64_t const batch_size_a, bool bootstrap_weight_reached_a)
{ {
stats.inc (nano::stat::type::pruning, nano::stat::detail::ledger_pruning);
uint64_t const max_depth (config.max_pruning_depth != 0 ? config.max_pruning_depth : std::numeric_limits<uint64_t>::max ()); uint64_t const max_depth (config.max_pruning_depth != 0 ? config.max_pruning_depth : std::numeric_limits<uint64_t>::max ());
uint64_t const cutoff_time (bootstrap_weight_reached_a ? nano::seconds_since_epoch () - config.max_pruning_age.count () : std::numeric_limits<uint64_t>::max ()); uint64_t const cutoff_time (bootstrap_weight_reached_a ? nano::seconds_since_epoch () - config.max_pruning_age.count () : std::numeric_limits<uint64_t>::max ());
uint64_t pruned_count (0); uint64_t pruned_count (0);
@ -62,6 +64,7 @@ void nano::pruning::ledger_pruning (uint64_t const batch_size_a, bool bootstrap_
// Search pruning targets // Search pruning targets
while (pruning_targets.size () < batch_size_a && !target_finished && !stopped) while (pruning_targets.size () < batch_size_a && !target_finished && !stopped)
{ {
stats.inc (nano::stat::type::pruning, nano::stat::detail::collect_targets);
target_finished = collect_ledger_pruning_targets (pruning_targets, last_account, batch_size_a * 2, max_depth, cutoff_time); target_finished = collect_ledger_pruning_targets (pruning_targets, last_account, batch_size_a * 2, max_depth, cutoff_time);
} }
// Pruning write operation // Pruning write operation
@ -71,10 +74,14 @@ void nano::pruning::ledger_pruning (uint64_t const batch_size_a, bool bootstrap_
auto write_transaction = ledger.tx_begin_write (nano::store::writer::pruning); auto write_transaction = ledger.tx_begin_write (nano::store::writer::pruning);
while (!pruning_targets.empty () && transaction_write_count < batch_size_a && !stopped) while (!pruning_targets.empty () && transaction_write_count < batch_size_a && !stopped)
{ {
stats.inc (nano::stat::type::pruning, nano::stat::detail::pruning_target);
auto const & pruning_hash (pruning_targets.front ()); auto const & pruning_hash (pruning_targets.front ());
auto account_pruned_count (ledger.pruning_action (write_transaction, pruning_hash, batch_size_a)); auto account_pruned_count (ledger.pruning_action (write_transaction, pruning_hash, batch_size_a));
transaction_write_count += account_pruned_count; transaction_write_count += account_pruned_count;
pruning_targets.pop_front (); pruning_targets.pop_front ();
stats.add (nano::stat::type::pruning, nano::stat::detail::pruned_count, account_pruned_count);
} }
pruned_count += transaction_write_count; pruned_count += transaction_write_count;