aboutsummaryrefslogtreecommitdiff
path: root/src/zenstore/projectstore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenstore/projectstore.cpp')
-rw-r--r--src/zenstore/projectstore.cpp39
1 files changed, 25 insertions, 14 deletions
diff --git a/src/zenstore/projectstore.cpp b/src/zenstore/projectstore.cpp
index 1ab2b317a..03086b473 100644
--- a/src/zenstore/projectstore.cpp
+++ b/src/zenstore/projectstore.cpp
@@ -1488,7 +1488,7 @@ ProjectStore::Oplog::Read()
else
{
std::vector<OplogEntry> OpLogEntries;
- uint64_t InvalidEntries;
+ uint64_t InvalidEntries = 0;
m_Storage->ReadOplogEntriesFromLog(OpLogEntries, InvalidEntries, m_LogFlushPosition);
for (const OplogEntry& OpEntry : OpLogEntries)
{
@@ -1750,8 +1750,8 @@ ProjectStore::Oplog::Validate(const std::filesystem::path& ProjectRootDir,
}
};
- std::atomic<bool> AbortFlag;
- std::atomic<bool> PauseFlag;
+ std::atomic<bool> AbortFlag{false};
+ std::atomic<bool> PauseFlag{false};
ParallelWork Work(AbortFlag, PauseFlag, WorkerThreadPool::EMode::DisableBacklog);
try
{
@@ -2373,7 +2373,7 @@ ProjectStore::Oplog::IterateChunks(const std::filesystem::path& P
else if (auto MetaIt = m_MetaMap.find(ChunkId); MetaIt != m_MetaMap.end())
{
CidChunkIndexes.push_back(ChunkIndex);
- CidChunkHashes.push_back(ChunkIt->second);
+ CidChunkHashes.push_back(MetaIt->second);
}
else if (auto FileIt = m_FileMap.find(ChunkId); FileIt != m_FileMap.end())
{
@@ -2384,8 +2384,8 @@ ProjectStore::Oplog::IterateChunks(const std::filesystem::path& P
}
if (OptionalWorkerPool)
{
- std::atomic<bool> AbortFlag;
- std::atomic<bool> PauseFlag;
+ std::atomic<bool> AbortFlag{false};
+ std::atomic<bool> PauseFlag{false};
ParallelWork Work(AbortFlag, PauseFlag, WorkerThreadPool::EMode::DisableBacklog);
try
{
@@ -3817,7 +3817,7 @@ ProjectStore::Project::OpenOplog(std::string_view OplogId, bool AllowCompact, bo
std::filesystem::path DeletePath;
if (!RemoveOplog(OplogId, DeletePath))
{
- ZEN_WARN("Failed to clean up deleted oplog {}/{}", Identifier, OplogId, OplogBasePath);
+ ZEN_WARN("Failed to clean up deleted oplog {}/{} at '{}'", Identifier, OplogId, OplogBasePath);
}
ReOpen = true;
@@ -4053,8 +4053,8 @@ ProjectStore::Project::Scrub(ScrubContext& Ctx)
RwLock::SharedLockScope _(m_ProjectLock);
- std::atomic<bool> Abort;
- std::atomic<bool> Pause;
+ std::atomic<bool> Abort{false};
+ std::atomic<bool> Pause{false};
ParallelWork Work(Abort, Pause, WorkerThreadPool::EMode::DisableBacklog);
try
@@ -4360,7 +4360,7 @@ ProjectStore::ProjectStore(CidStore& Store, std::filesystem::path BasePath, GcMa
, m_DiskWriteBlocker(Gc.GetDiskWriteBlocker())
{
ZEN_INFO("initializing project store at '{}'", m_ProjectBasePath);
- // m_Log.set_level(spdlog::level::debug);
+ // m_Log.SetLogLevel(zen::logging::Debug);
m_Gc.AddGcStorage(this);
m_Gc.AddGcReferencer(*this);
m_Gc.AddGcReferenceLocker(*this);
@@ -4433,8 +4433,8 @@ ProjectStore::Flush()
}
WorkerThreadPool& WorkerPool = GetSmallWorkerPool(EWorkloadType::Burst);
- std::atomic<bool> AbortFlag;
- std::atomic<bool> PauseFlag;
+ std::atomic<bool> AbortFlag{false};
+ std::atomic<bool> PauseFlag{false};
ParallelWork Work(AbortFlag, PauseFlag, WorkerThreadPool::EMode::DisableBacklog);
try
{
@@ -4712,6 +4712,13 @@ ProjectStore::GetProjectsList()
Response << "ProjectRootDir"sv << PathToUtf8(Prj.ProjectRootDir);
Response << "EngineRootDir"sv << PathToUtf8(Prj.EngineRootDir);
Response << "ProjectFilePath"sv << PathToUtf8(Prj.ProjectFilePath);
+
+ const auto AccessTime = Prj.LastOplogAccessTime(""sv);
+ if (AccessTime != GcClock::TimePoint::min())
+ {
+ Response << "LastAccessTime"sv << gsl::narrow<uint64_t>(AccessTime.time_since_epoch().count());
+ }
+
Response.EndObject();
});
Response.EndArray();
@@ -4974,7 +4981,7 @@ ProjectStore::GetProjectChunkInfos(LoggerRef InLog, Project& Project, Oplog& Opl
}
if (WantsRawSizeField)
{
- ZEN_ASSERT_SLOW(Sizes[Index] == (uint64_t)-1);
+ ZEN_ASSERT_SLOW(RawSizes[Index] == (uint64_t)-1);
RawSizes[Index] = Payload.GetSize();
}
}
@@ -5762,7 +5769,7 @@ public:
}
}
- for (auto ProjectIt : m_ProjectStore.m_Projects)
+ for (const auto& ProjectIt : m_ProjectStore.m_Projects)
{
Ref<ProjectStore::Project> Project = ProjectIt.second;
std::vector<std::string> OplogsToCompact = Project->GetOplogsToCompact();
@@ -6802,6 +6809,8 @@ namespace testutils {
} // namespace testutils
+TEST_SUITE_BEGIN("store.projectstore");
+
TEST_CASE("project.opkeys")
{
using namespace std::literals;
@@ -8473,6 +8482,8 @@ TEST_CASE("project.store.iterateoplog")
}
}
+TEST_SUITE_END();
+
#endif
void