aboutsummaryrefslogtreecommitdiff
path: root/zenstore/compactcas.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2022-03-24 00:01:59 +0100
committerDan Engelbrecht <[email protected]>2022-03-31 11:29:27 +0200
commit9b31ba3beb2b1f121275f395f0ee69f351a4325d (patch)
treee098e91d722c4781026fd0a2eb00f8169fa8c6c8 /zenstore/compactcas.cpp
parentclean up number -> hex -> number code (diff)
downloadzen-9b31ba3beb2b1f121275f395f0ee69f351a4325d.tar.xz
zen-9b31ba3beb2b1f121275f395f0ee69f351a4325d.zip
large cas migration test
Diffstat (limited to 'zenstore/compactcas.cpp')
-rw-r--r--zenstore/compactcas.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/zenstore/compactcas.cpp b/zenstore/compactcas.cpp
index 51c515e8d..887197c2d 100644
--- a/zenstore/compactcas.cpp
+++ b/zenstore/compactcas.cpp
@@ -1024,6 +1024,7 @@ CasContainerStrategy::OpenContainer(bool IsNewStore)
}
else if (WriteOffset + Chunk.size() > m_MaxBlockSize)
{
+ NewBlockFile.reset();
uint64_t ChunkEnd = ChunkLocation.GetOffset() + Chunk.size();
BlockFile.SetFileSize(ChunkEnd);
NewBlockIndex = NewBlockIndex + 1;
@@ -1037,6 +1038,7 @@ CasContainerStrategy::OpenContainer(bool IsNewStore)
m_CasLog.Append({.Key = ChunkHash, .Location = BlockStoreDiskLocation(NewChunkLocation, m_PayloadAlignment)});
WriteOffset = RoundUp(WriteOffset + Chunk.size(), m_PayloadAlignment);
}
+ NewBlockFile.reset();
m_CasLog.Close();
BlockFile.Close();
@@ -2080,6 +2082,25 @@ TEST_CASE("compactcas.threadedinsert") // * doctest::skip(true))
}
}
+TEST_CASE("compactcas.migrate.large.data" * doctest::skip(true))
+{
+ const char* BigDataPath = "D:\\zen-data\\dc4-zen-cache-t\\cas";
+ CasStoreConfiguration CasConfig;
+ CasConfig.RootDirectory = BigDataPath;
+
+ CasGc TobsCasGc;
+ CasContainerStrategy TobsCas(CasConfig, TobsCasGc);
+ TobsCas.Initialize("tobs", 1u << 28, 16, false);
+ GcContext TobsGcCtx;
+ TobsCas.CollectGarbage(TobsGcCtx);
+
+ CasGc SobsCasGc;
+ CasContainerStrategy SobsCas(CasConfig, SobsCasGc);
+ SobsCas.Initialize("sobs", 1u << 30, 4096, false);
+ GcContext SobsGcCtx;
+ TobsCas.CollectGarbage(SobsGcCtx);
+}
+
#endif
void