diff options
| author | Dan Engelbrecht <[email protected]> | 2025-09-23 16:23:31 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-09-23 16:23:31 +0200 |
| commit | 2de9f8cdca2929dabbe65e6a51adf27d1a45d830 (patch) | |
| tree | 9ae4833e1ec94445273b0163c9b755ab6156ee36 /src/zenserver/projectstore/remoteprojectstore.cpp | |
| parent | 5.7.2-pre1 (diff) | |
| download | zen-2de9f8cdca2929dabbe65e6a51adf27d1a45d830.tar.xz zen-2de9f8cdca2929dabbe65e6a51adf27d1a45d830.zip | |
limit number of chunks per block (#508)
- Improvement: Chunk block generation for `zen oplog-export` and `zen builds upload` command are now limited to max 4000 chunks per block
zen builds list-block testing function to check results for recently used blocks in a context
Diffstat (limited to 'src/zenserver/projectstore/remoteprojectstore.cpp')
| -rw-r--r-- | src/zenserver/projectstore/remoteprojectstore.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/zenserver/projectstore/remoteprojectstore.cpp b/src/zenserver/projectstore/remoteprojectstore.cpp index e61ccd917..407a284c1 100644 --- a/src/zenserver/projectstore/remoteprojectstore.cpp +++ b/src/zenserver/projectstore/remoteprojectstore.cpp @@ -1167,6 +1167,7 @@ BuildContainer(CidStore& ChunkStore, ProjectStore::Project& Project, ProjectStore::Oplog& Oplog, size_t MaxBlockSize, + size_t MaxChunksPerBlock, size_t MaxChunkEmbedSize, size_t ChunkFileSizeLimit, bool BuildBlocks, @@ -2020,7 +2021,7 @@ BuildContainer(CidStore& ChunkStore, } BlockSize += PayloadSize; - if (BlockSize >= MaxBlockSize && (CurrentOpKey != LastOpKey)) + if ((BlockSize >= MaxBlockSize || ChunksInBlock.size() > MaxChunksPerBlock) && (CurrentOpKey != LastOpKey)) { NewBlock(); } @@ -2079,7 +2080,7 @@ BuildContainer(CidStore& ChunkStore, BlockSize += CompressedBuffer::GetHeaderSizeForNoneEncoder() + Source.Size; if (BuildBlocks) { - if (BlockSize >= MaxBlockSize) + if (BlockSize >= MaxBlockSize || ChunksInBlock.size() > MaxChunksPerBlock) { NewBlock(); } @@ -2286,6 +2287,7 @@ BuildContainer(CidStore& ChunkStore, ProjectStore::Project& Project, ProjectStore::Oplog& Oplog, size_t MaxBlockSize, + size_t MaxChunksPerBlock, size_t MaxChunkEmbedSize, size_t ChunkFileSizeLimit, bool BuildBlocks, @@ -2303,6 +2305,7 @@ BuildContainer(CidStore& ChunkStore, Project, Oplog, MaxBlockSize, + MaxChunksPerBlock, MaxChunkEmbedSize, ChunkFileSizeLimit, BuildBlocks, @@ -2325,6 +2328,7 @@ SaveOplog(CidStore& ChunkStore, ProjectStore::Project& Project, ProjectStore::Oplog& Oplog, size_t MaxBlockSize, + size_t MaxChunksPerBlock, size_t MaxChunkEmbedSize, size_t ChunkFileSizeLimit, bool EmbedLooseFiles, @@ -2474,6 +2478,7 @@ SaveOplog(CidStore& ChunkStore, Project, Oplog, MaxBlockSize, + MaxChunksPerBlock, MaxChunkEmbedSize, ChunkFileSizeLimit, RemoteStoreInfo.CreateBlocks, |