From 14e56014b2c4edd5b10f60679aa58dea8434eaf2 Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Wed, 6 Nov 2024 09:36:19 +0100 Subject: oplog capture new attachments for gc (#210) * make sure we track added attachments properly in oplogs --- src/zenserver/projectstore/projectstore.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/zenserver/projectstore/projectstore.cpp') diff --git a/src/zenserver/projectstore/projectstore.cpp b/src/zenserver/projectstore/projectstore.cpp index 25be159b9..7e03432d6 100644 --- a/src/zenserver/projectstore/projectstore.cpp +++ b/src/zenserver/projectstore/projectstore.cpp @@ -4242,6 +4242,7 @@ ProjectStore::PutChunk(const std::string_view ProjectId, return {HttpResponseCode::BadRequest, fmt::format("Chunk request for invalid payload format for chunk '{}'", Cid)}; } + FoundLog->CaptureAddedAttachments(std::vector{Hash}); CidStore::InsertResult Result = m_CidStore.AddChunk(Chunk, Hash); return {Result.New ? HttpResponseCode::Created : HttpResponseCode::OK, {}}; } @@ -4566,6 +4567,7 @@ ProjectStore::Rpc(HttpServerRequest& HttpReq, WriteRawHashes.push_back(RawHash); } + Oplog->CaptureAddedAttachments(WriteRawHashes); m_CidStore.AddChunks(WriteAttachmentBuffers, WriteRawHashes, CidStore::InsertMode::kCopyOnly); } HttpReq.WriteResponse(HttpResponseCode::OK); @@ -4628,13 +4630,14 @@ ProjectStore::Rpc(HttpServerRequest& HttpReq, { // Read file contents into memory, compress and store in CidStore - Oid ChunkId = View["id"sv].AsObjectId(); - IoBuffer FileIoBuffer = DataFile.ReadAll(); - CompressedBuffer Compressed = CompressedBuffer::Compress(SharedBuffer(std::move(FileIoBuffer))); - const IoHash RawHash = Compressed.DecodeRawHash(); - const uint64_t RawSize = Compressed.DecodeRawSize(); - IoBuffer CompressedBuffer = Compressed.GetCompressed().Flatten().AsIoBuffer(); - CidStore::InsertResult Result = m_CidStore.AddChunk(CompressedBuffer, RawHash); + Oid ChunkId = View["id"sv].AsObjectId(); + IoBuffer FileIoBuffer = DataFile.ReadAll(); + CompressedBuffer Compressed = CompressedBuffer::Compress(SharedBuffer(std::move(FileIoBuffer))); + const IoHash RawHash = Compressed.DecodeRawHash(); + const uint64_t RawSize = Compressed.DecodeRawSize(); + IoBuffer CompressedBuffer = Compressed.GetCompressed().Flatten().AsIoBuffer(); + Oplog->CaptureAddedAttachments(std::vector{RawHash}); + CidStore::InsertResult Result = m_CidStore.AddChunk(CompressedBuffer, RawHash); TotalBytes += RawSize; ++TotalFiles; -- cgit v1.2.3