aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2021-03-16 16:51:15 +0100
committerAlex Auvolat <alex@adnab.me>2021-03-16 16:51:15 +0100
commit08bcd5195654ae073afe31c341f0ce4b36094da0 (patch)
tree2c723a1cfb2b2083af72f0b887893e0fd09db634
parent1bfe9c129e2cc3780e784b0c4a784fa1679a3f97 (diff)
downloadgarage-08bcd5195654ae073afe31c341f0ce4b36094da0.tar.gz
garage-08bcd5195654ae073afe31c341f0ce4b36094da0.zip
GC object table in a specific case
-rw-r--r--src/model/block.rs2
-rw-r--r--src/model/object_table.rs3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/model/block.rs b/src/model/block.rs
index 41729685..0d9af38f 100644
--- a/src/model/block.rs
+++ b/src/model/block.rs
@@ -259,7 +259,7 @@ impl BlockManager {
if let Err(e) = self.resync_iter(&mut must_exit).await {
warn!("Error in block resync loop: {}", e);
select! {
- _ = tokio::time::sleep(Duration::from_secs(10)).fuse() => (),
+ _ = tokio::time::sleep(Duration::from_secs(1)).fuse() => (),
_ = must_exit.changed().fuse() => (),
}
}
diff --git a/src/model/object_table.rs b/src/model/object_table.rs
index 99fad3ce..62606df4 100644
--- a/src/model/object_table.rs
+++ b/src/model/object_table.rs
@@ -146,6 +146,9 @@ impl Entry<String, String> for Object {
fn sort_key(&self) -> &String {
&self.key
}
+ fn is_tombstone(&self) -> bool {
+ self.versions.len() == 1 && self.versions[0].state == ObjectVersionState::Complete(ObjectVersionData::DeleteMarker)
+ }
}
impl CRDT for Object {