aboutsummaryrefslogtreecommitdiff
path: root/zenstore/blockstore.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2022-05-02 11:01:12 +0200
committerDan Engelbrecht <[email protected]>2022-05-02 11:01:12 +0200
commit80a39f97f465465466ccd2d5914421db55efb80e (patch)
tree891a826b28a17c908ef29ffb45109dfccf27c561 /zenstore/blockstore.cpp
parentuse std::vector<std::pair>> instead of map (diff)
downloadzen-80a39f97f465465466ccd2d5914421db55efb80e.tar.xz
zen-80a39f97f465465466ccd2d5914421db55efb80e.zip
add back gc space reclaim call
Diffstat (limited to 'zenstore/blockstore.cpp')
-rw-r--r--zenstore/blockstore.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/zenstore/blockstore.cpp b/zenstore/blockstore.cpp
index 593ccc529..b3608687b 100644
--- a/zenstore/blockstore.cpp
+++ b/zenstore/blockstore.cpp
@@ -279,7 +279,8 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot,
const std::vector<size_t>& KeepChunkIndexes,
uint64_t PayloadAlignment,
bool DryRun,
- const ReclaimCallback& Callback)
+ const ReclaimCallback& ChangeCallback,
+ const ClaimGCReserveCallback& GcReserveCallback)
{
if (ChunkLocations.empty())
{
@@ -437,7 +438,7 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot,
{
DeletedSize += ChunkLocations[DeleteIndex].Size;
}
- Callback({}, DeleteMap);
+ ChangeCallback({}, DeleteMap);
DeletedCount += DeleteMap.size();
{
RwLock::ExclusiveLockScope _i(m_InsertLock);
@@ -477,7 +478,7 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot,
NewBlockFile->Flush();
}
{
- Callback(MovedChunks, {});
+ ChangeCallback(MovedChunks, {});
MovedCount += KeepMap.size();
MovedChunks.clear();
RwLock::ExclusiveLockScope __(m_InsertLock);
@@ -512,7 +513,7 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot,
}
if (Space.Free < m_MaxBlockSize)
{
- uint64_t ReclaimedSpace = 0; // GcCtx.ClaimGCReserve();
+ uint64_t ReclaimedSpace = GcReserveCallback();
if (Space.Free + ReclaimedSpace < m_MaxBlockSize)
{
ZEN_WARN("garbage collect for '{}' FAILED, required disk space {}, free {}",
@@ -558,7 +559,7 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot,
DeletedSize += ChunkLocations[DeleteIndex].Size;
}
- Callback(MovedChunks, DeleteMap);
+ ChangeCallback(MovedChunks, DeleteMap);
MovedCount += KeepMap.size();
DeletedCount += DeleteMap.size();
MovedChunks.clear();