aboutsummaryrefslogtreecommitdiff
path: root/src/version_table.rs
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2020-04-11 23:53:32 +0200
committerAlex Auvolat <alex@adnab.me>2020-04-11 23:53:32 +0200
commit9c931f5edacbaaab746ecf180fac2dd7062d0336 (patch)
treef29cfd82f573ac871408256a33e11f9153bae1da /src/version_table.rs
parent5dd59e437d5af84dfa2cf5dcc2c15807b971002d (diff)
downloadgarage-9c931f5edacbaaab746ecf180fac2dd7062d0336.tar.gz
garage-9c931f5edacbaaab746ecf180fac2dd7062d0336.zip
Keep network status & ring in a tokio::sync::watch
advantages - reads don't prevent preparing writes - can be followed from other parts of the system by cloning the receiver
Diffstat (limited to 'src/version_table.rs')
-rw-r--r--src/version_table.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/version_table.rs b/src/version_table.rs
index d9d2b675..9ea0551e 100644
--- a/src/version_table.rs
+++ b/src/version_table.rs
@@ -69,14 +69,19 @@ impl TableFormat for VersionTable {
// Propagate deletion of version blocks
if let Some(old_v) = old {
if new.deleted && !old_v.deleted {
- let deleted_block_refs = old_v.blocks.iter()
- .map(|vb| BlockRef{
+ let deleted_block_refs = old_v
+ .blocks
+ .iter()
+ .map(|vb| BlockRef {
block: vb.hash.clone(),
version: old_v.uuid.clone(),
deleted: true,
})
.collect::<Vec<_>>();
- garage.block_ref_table.insert_many(&deleted_block_refs[..]).await?;
+ garage
+ .block_ref_table
+ .insert_many(&deleted_block_refs[..])
+ .await?;
}
}
Ok(())