From b24f9de14167706c8bb6478640a086f6aec1e236 Mon Sep 17 00:00:00 2001 From: Alexey Shekhirin Date: Tue, 5 Mar 2024 14:49:10 +0000 Subject: [PATCH] feat(bin): delete static files from highest to lowest in `drop stage` (#6970) --- bin/reth/src/commands/stage/drop.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bin/reth/src/commands/stage/drop.rs b/bin/reth/src/commands/stage/drop.rs index 7914735544..af873a4268 100644 --- a/bin/reth/src/commands/stage/drop.rs +++ b/bin/reth/src/commands/stage/drop.rs @@ -9,6 +9,7 @@ use crate::{ utils::DbTool, }; use clap::Parser; +use itertools::Itertools; use reth_db::{ database::Database, mdbx::DatabaseArguments, open_db, static_file::iter_static_files, tables, transaction::DbTxMut, DatabaseEnv, @@ -79,7 +80,12 @@ impl Command { let static_file_provider = tool.provider_factory.static_file_provider(); let static_files = iter_static_files(static_file_provider.directory())?; if let Some(segment_static_files) = static_files.get(&static_file_segment) { - for (block_range, _) in segment_static_files { + // Delete static files from the highest to the lowest block range + for (block_range, _) in segment_static_files + .iter() + .sorted_by_key(|(block_range, _)| block_range.start()) + .rev() + { static_file_provider .delete_jar(static_file_segment, find_fixed_range(block_range.start()))?; }