diff options
author | Alex Auvolat <alex@adnab.me> | 2021-03-16 16:51:15 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2021-03-16 16:51:15 +0100 |
commit | 08bcd5195654ae073afe31c341f0ce4b36094da0 (patch) | |
tree | 2c723a1cfb2b2083af72f0b887893e0fd09db634 /src/model | |
parent | 1bfe9c129e2cc3780e784b0c4a784fa1679a3f97 (diff) | |
download | garage-08bcd5195654ae073afe31c341f0ce4b36094da0.tar.gz garage-08bcd5195654ae073afe31c341f0ce4b36094da0.zip |
GC object table in a specific case
Diffstat (limited to 'src/model')
-rw-r--r-- | src/model/block.rs | 2 | ||||
-rw-r--r-- | src/model/object_table.rs | 3 |
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 { |