Skip to content
This repository was archived by the owner on Feb 21, 2024. It is now read-only.

Commit 902579b

Browse files
authored
Merge pull request paritytech#261 from subspace/client-archiving-tweaks
Just peek into root blocks to not avoid order of elements in LRU cache, tiny simplification
2 parents 39f4f8c + 171ea21 commit 902579b

File tree

4 files changed

+16
-18
lines changed

4 files changed

+16
-18
lines changed

crates/sc-consensus-subspace/src/archiver.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ where
7575
pub fn start_subspace_archiver<Block: BlockT, Client>(
7676
subspace_link: &SubspaceLink<Block>,
7777
client: Arc<Client>,
78-
spawner: &impl sp_core::traits::SpawnNamed,
78+
spawner: &impl sp_core::traits::SpawnEssentialNamed,
7979
) where
8080
Client: ProvideRuntimeApi<Block>
8181
+ BlockBackend<Block>
@@ -222,7 +222,7 @@ pub fn start_subspace_archiver<Block: BlockT, Client>(
222222
}
223223
}
224224

225-
spawner.spawn_blocking(
225+
spawner.spawn_essential_blocking(
226226
"subspace-archiver",
227227
None,
228228
Box::pin({

crates/sc-consensus-subspace/src/lib.rs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ impl<Block: BlockT> SubspaceLink<Block> {
568568
pub fn root_blocks_for_block(&self, block_number: NumberFor<Block>) -> Vec<RootBlock> {
569569
self.root_blocks
570570
.lock()
571-
.get(&block_number)
571+
.peek(&block_number)
572572
.cloned()
573573
.unwrap_or_default()
574574
}
@@ -1177,22 +1177,16 @@ where
11771177
}
11781178

11791179
let import_result = self.inner.import_block(block, new_cache).await?;
1180-
let (root_block_sender, mut root_block_receiver) = mpsc::channel(0);
1180+
let (root_block_sender, root_block_receiver) = mpsc::channel(0);
11811181

11821182
self.imported_block_notification_sender
11831183
.notify(move || (block_number, root_block_sender));
11841184

1185-
let next_block_number = block_number + One::one();
1186-
while let Some(root_block) = root_block_receiver.next().await {
1187-
{
1188-
let mut root_blocks = self.root_blocks.lock();
1189-
if let Some(list) = root_blocks.get_mut(&next_block_number) {
1190-
list.push(root_block);
1191-
} else {
1192-
root_blocks.put(next_block_number, vec![root_block]);
1193-
}
1194-
}
1195-
}
1185+
let root_blocks = root_block_receiver.collect().await;
1186+
1187+
self.root_blocks
1188+
.lock()
1189+
.put(block_number + One::one(), root_blocks);
11961190

11971191
Ok(import_result)
11981192
}

crates/sc-consensus-subspace/src/tests.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,11 @@ fn run_one_test(mutator: impl Fn(&mut TestHeader, Stage) + Send + Sync + 'static
485485

486486
let task_manager = TaskManager::new(tokio_runtime.handle().clone(), None).unwrap();
487487

488-
super::start_subspace_archiver(&data.link, client.clone(), &task_manager.spawn_handle());
488+
super::start_subspace_archiver(
489+
&data.link,
490+
client.clone(),
491+
&task_manager.spawn_essential_handle(),
492+
);
489493

490494
let (archived_pieces_sender, archived_pieces_receiver) = oneshot::channel();
491495

@@ -838,7 +842,7 @@ fn verify_slots_are_strictly_increasing() {
838842
// let tokio_runtime = sc_cli::build_runtime().unwrap();
839843
// let task_manager = TaskManager::new(tokio_runtime.handle().clone(), None).unwrap();
840844
//
841-
// super::start_subspace_archiver(&data.link, client.clone(), &task_manager.spawn_handle());
845+
// super::start_subspace_archiver(&data.link, client.clone(), &task_manager.spawn_essential_handle());
842846
//
843847
// let mut archived_segment_notification_stream =
844848
// data.link.archived_segment_notification_stream.subscribe();

crates/subspace-node/src/service.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ pub fn new_partial(
167167
sc_consensus_subspace::start_subspace_archiver(
168168
&subspace_link,
169169
client.clone(),
170-
&task_manager.spawn_handle(),
170+
&task_manager.spawn_essential_handle(),
171171
);
172172

173173
let slot_duration = subspace_link.config().slot_duration();

0 commit comments

Comments
 (0)