From cb215c8dfd701edd34f0afe41762eeb048b4caef Mon Sep 17 00:00:00 2001 From: Maksim Greshniakov Date: Mon, 24 Feb 2025 07:40:30 +0100 Subject: [PATCH] feature(collator): fast sync config param --- collator/src/internal_queue/gc.rs | 2 +- collator/src/manager/mod.rs | 16 ++++++++++------ collator/src/types.rs | 2 ++ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/collator/src/internal_queue/gc.rs b/collator/src/internal_queue/gc.rs index 98b195b39..bf1a6f645 100644 --- a/collator/src/internal_queue/gc.rs +++ b/collator/src/internal_queue/gc.rs @@ -89,7 +89,7 @@ fn gc_task( .get(partition) .unwrap_or(&FastHashMap::default()) .get(shard) - .map_or(true, |last_key| *current_last_key > *last_key); + .is_none_or(|last_key| *current_last_key > *last_key); if can_delete { let range = vec![QueueShardRange { diff --git a/collator/src/manager/mod.rs b/collator/src/manager/mod.rs index 4aa3acaae..a1350f43a 100644 --- a/collator/src/manager/mod.rs +++ b/collator/src/manager/mod.rs @@ -516,7 +516,7 @@ where // skip diff below min processed to if let Some(min_pt) = min_processed_to { if queue_diff.as_ref().max_message <= *min_pt { - tracing::debug!(target: tracing_targets::COLLATION_MANAGER, + tracing::trace!(target: tracing_targets::COLLATION_MANAGER, "Skipping diff for block {}: max_message {} <= min_processed_to {}", block_entry.block_id.as_short_id(), queue_diff.as_ref().max_message, @@ -1440,11 +1440,15 @@ where }).collect::>().as_slice(), ); - // collect top blocks queue diffs already applied to - let queue_diffs_applied_to_top_blocks = if let Some(applied_to_mc_block_id) = - self.get_queue_diffs_applied_to_mc_block_id(last_collated_mc_block_id) - { - self.get_top_blocks_seqno(&applied_to_mc_block_id).await? + let queue_diffs_applied_to_top_blocks = if self.config.fast_sync { + if let Some(applied_to_mc_block_id) = + self.get_queue_diffs_applied_to_mc_block_id(last_collated_mc_block_id) + { + // collect top blocks queue diffs already applied to + self.get_top_blocks_seqno(&applied_to_mc_block_id).await? + } else { + FastHashMap::default() + } } else { FastHashMap::default() }; diff --git a/collator/src/types.rs b/collator/src/types.rs index cbc677a6e..d98580aa3 100644 --- a/collator/src/types.rs +++ b/collator/src/types.rs @@ -28,6 +28,7 @@ pub struct CollatorConfig { pub min_mc_block_delta_from_bc_to_sync: u32, pub check_value_flow: bool, pub validate_config: bool, + pub fast_sync: bool, } impl Default for CollatorConfig { @@ -38,6 +39,7 @@ impl Default for CollatorConfig { min_mc_block_delta_from_bc_to_sync: 3, check_value_flow: false, validate_config: true, + fast_sync: false, } } }