aboutsummaryrefslogtreecommitdiff
path: root/zenserver/projectstore.h
diff options
context:
space:
mode:
authorPer Larsson <[email protected]>2022-11-30 13:43:02 +0100
committerPer Larsson <[email protected]>2022-11-30 13:43:02 +0100
commit01d896854bd0b51c38e46487271cb03774f62bfd (patch)
tree53d1933b1e8c9740ee0c254bdbd43585218bdb70 /zenserver/projectstore.h
parentMoved DDC reference array out of package meta object. (diff)
downloadzen-01d896854bd0b51c38e46487271cb03774f62bfd.tar.xz
zen-01d896854bd0b51c38e46487271cb03774f62bfd.zip
Minor refactor of cache mapping.
Diffstat (limited to 'zenserver/projectstore.h')
-rw-r--r--zenserver/projectstore.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/zenserver/projectstore.h b/zenserver/projectstore.h
index 94bfe5f03..65d9264ad 100644
--- a/zenserver/projectstore.h
+++ b/zenserver/projectstore.h
@@ -8,6 +8,7 @@
#include <zenhttp/httpserver.h>
#include <zenstore/cidstore.h>
#include <zenstore/gc.h>
+#include <zenutil/cache/cachekey.h>
#include <filesystem>
#include <map>
@@ -135,13 +136,12 @@ public:
std::string ClientPath;
};
- struct DerivedDataEntry
+ struct CacheMapEntry
{
std::string Namespace;
- std::string Bucket;
- IoHash Hash;
- IoHash Cid;
+ CacheKey CacheKey;
Oid ValueId;
+ IoHash Cid;
};
template<class V>
@@ -157,7 +157,7 @@ public:
OidMap<IoHash> m_ChunkMap; // output data chunk id -> CAS address
OidMap<IoHash> m_MetaMap; // meta chunk id -> CAS address
OidMap<FileMapEntry> m_FileMap; // file id -> file map entry
- OidMap<DerivedDataEntry> m_DerivedDataMap; // chunk id -> CAS address
+ OidMap<CacheMapEntry> m_CacheMap; // chunk id -> CAS address
int32_t m_ManifestVersion; // File system manifest version
std::map<int, OplogEntryAddress> m_OpAddressMap; // Index LSN -> op data in ops blob file
OidMap<int> m_LatestOpMap; // op key -> latest op LSN for key
@@ -172,12 +172,13 @@ public:
std::string_view ClientPath);
void AddChunkMapping(const RwLock::ExclusiveLockScope& OplogLock, Oid ChunkId, IoHash Hash);
void AddMetaMapping(const RwLock::ExclusiveLockScope& OplogLock, Oid ChunkId, IoHash Hash);
- bool AddDerivedDataMapping(const RwLock::ExclusiveLockScope& OplogLock,
- std::string_view Namespace,
- std::string_view KeyBucket,
- const IoHash& KeyHash,
- const Oid& ValueId,
- const Oid& ChunkId);
+ bool AddCacheMapping(const RwLock::ExclusiveLockScope& OplogLock,
+ std::string_view Namespace,
+ const CacheKey& CacheKey,
+ const Oid& ValueId,
+ const Oid& ChunkId);
+
+ IoHash ResolveCacheMapping(std::string_view Namespace, const CacheKey& CacheKey, const Oid& ValueId);
};
struct Project : public RefCounted