aboutsummaryrefslogtreecommitdiff
path: root/zenstore/include
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2022-05-02 11:03:04 +0200
committerDan Engelbrecht <[email protected]>2022-05-02 11:11:54 +0200
commit10690e805f45a590094a659c8e1f6482d12aaf8e (patch)
tree42aac794a1fcd723530aa0f2bc4940f095ece673 /zenstore/include
parentadd back gc space reclaim call (diff)
downloadzen-10690e805f45a590094a659c8e1f6482d12aaf8e.tar.xz
zen-10690e805f45a590094a659c8e1f6482d12aaf8e.zip
cleanup
Diffstat (limited to 'zenstore/include')
-rw-r--r--zenstore/include/zenstore/blockstore.h33
1 files changed, 19 insertions, 14 deletions
diff --git a/zenstore/include/zenstore/blockstore.h b/zenstore/include/zenstore/blockstore.h
index 28f0a5541..53bcf72db 100644
--- a/zenstore/include/zenstore/blockstore.h
+++ b/zenstore/include/zenstore/blockstore.h
@@ -117,24 +117,28 @@ public:
std::unordered_set<uint32_t> ExcludeBlockIndexes;
size_t BlockCount;
};
- typedef std::function<void(const std::vector<std::pair<size_t, BlockStoreLocation>>& MovedChunks,
- const std::vector<size_t>& RemovedChunks)>
- ReclaimCallback;
- typedef std::function<uint64_t()> ClaimGCReserveCallback;
- typedef std::function<void(const BlockStoreLocation& Location)> WriteChunkCallback;
- typedef std::function<void(size_t ChunkIndex, const void* Data, uint64_t Size)> IterateChunksSmallSizeCallback;
- typedef std::function<void(size_t ChunkIndex, BasicFile& BlockFile, uint64_t Offset, uint64_t Size)> IterateChunksLargeSizeCallback;
- typedef std::function<void(const std::vector<std::pair<size_t, BlockStoreLocation>>& MovedChunks)> SplitCallback;
+
+ typedef std::vector<std::pair<size_t, BlockStoreLocation>> MovedChunksArray;
+ typedef std::vector<size_t> ChunkIndexArray;
+
+ typedef std::function<void(const MovedChunksArray& MovedChunks, const ChunkIndexArray& RemovedChunks)> ReclaimCallback;
+ typedef std::function<uint64_t()> ClaimGCReserveCallback;
+ typedef std::function<void(const BlockStoreLocation& Location)> WriteChunkCallback;
+ typedef std::function<void(size_t ChunkIndex, const void* Data, uint64_t Size)> IterateChunksSmallSizeCallback;
+ typedef std::function<void(size_t ChunkIndex, BasicFile& BlockFile, uint64_t Offset, uint64_t Size)> IterateChunksLargeSizeCallback;
+ typedef std::function<void(const MovedChunksArray& MovedChunks)> SplitCallback;
void Initialize(const std::filesystem::path& BlocksBasePath,
uint64_t MaxBlockSize,
uint64_t MaxBlockCount,
const std::vector<BlockStoreLocation>& KnownLocations);
+
void WriteChunk(
const void* Data,
uint64_t Size,
uint64_t Alignment,
WriteChunkCallback Callback = [](const BlockStoreLocation&) {});
+
Ref<BlockStoreFile> GetChunkBlock(const BlockStoreLocation& Location);
void Flush();
@@ -142,15 +146,16 @@ public:
void ReclaimSpace(
const ReclaimSnapshotState& Snapshot,
const std::vector<BlockStoreLocation>& ChunkLocations,
- const std::vector<size_t>& KeepChunkIndexes,
+ const ChunkIndexArray& KeepChunkIndexes,
uint64_t PayloadAlignment,
bool DryRun,
- const ReclaimCallback& ChangeCallback = [](const std::vector<std::pair<size_t, BlockStoreLocation>>&,
- const std::vector<size_t>&) {},
+ const ReclaimCallback& ChangeCallback = [](const MovedChunksArray&, const ChunkIndexArray&) {},
const ClaimGCReserveCallback& GcReserveCallback = []() { return 0; });
- void IterateChunks(const std::vector<BlockStoreLocation>& ChunkLocations,
- IterateChunksSmallSizeCallback SmallSizeCallback,
- IterateChunksLargeSizeCallback LargeSizeCallback);
+
+ void IterateChunks(const std::vector<BlockStoreLocation>& ChunkLocations,
+ IterateChunksSmallSizeCallback SmallSizeCallback,
+ IterateChunksLargeSizeCallback LargeSizeCallback);
+
static bool Split(const std::vector<BlockStoreLocation>& ChunkLocations,
const std::filesystem::path& SourceBlockFilePath,
const std::filesystem::path& BlocksBasePath,