diff options
| author | Per Larsson <[email protected]> | 2022-11-30 13:43:02 +0100 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2022-11-30 13:43:02 +0100 |
| commit | 01d896854bd0b51c38e46487271cb03774f62bfd (patch) | |
| tree | 53d1933b1e8c9740ee0c254bdbd43585218bdb70 /zenserver/projectstore.h | |
| parent | Moved DDC reference array out of package meta object. (diff) | |
| download | zen-01d896854bd0b51c38e46487271cb03774f62bfd.tar.xz zen-01d896854bd0b51c38e46487271cb03774f62bfd.zip | |
Minor refactor of cache mapping.
Diffstat (limited to 'zenserver/projectstore.h')
| -rw-r--r-- | zenserver/projectstore.h | 23 |
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 |