![]() |
CernVM-FS
2.11.0
|
#include <cache_tiered.h>
Classes | |
struct | SavedState |
Public Member Functions | |
virtual CacheManagerIds | id () |
virtual std::string | Describe () |
void | SetLowerReadOnly () |
virtual | ~TieredCacheManager () |
virtual bool | AcquireQuotaManager (QuotaManager *quota_mgr) |
virtual int | Open (const BlessedObject &object) |
virtual int64_t | GetSize (int fd) |
virtual int | Close (int fd) |
virtual int64_t | Pread (int fd, void *buf, uint64_t size, uint64_t offset) |
virtual int | Dup (int fd) |
virtual int | Readahead (int fd) |
virtual uint32_t | SizeOfTxn () |
virtual int | StartTxn (const shash::Any &id, uint64_t size, void *txn) |
virtual void | CtrlTxn (const ObjectInfo &object_info, const int flags, void *txn) |
virtual int64_t | Write (const void *buf, uint64_t size, void *txn) |
virtual int | Reset (void *txn) |
virtual int | OpenFromTxn (void *txn) |
virtual int | AbortTxn (void *txn) |
virtual int | CommitTxn (void *txn) |
virtual void | Spawn () |
virtual manifest::Breadcrumb | LoadBreadcrumb (const std::string &fqrn) |
virtual bool | StoreBreadcrumb (const manifest::Manifest &manifest) |
![]() | |
virtual | ~CacheManager () |
int | OpenPinned (const shash::Any &id, const std::string &description, bool is_catalog) |
int | ChecksumFd (int fd, shash::Any *id) |
bool | Open2Mem (const shash::Any &id, const std::string &description, unsigned char **buffer, uint64_t *size) |
bool | CommitFromMem (const shash::Any &id, const unsigned char *buffer, const uint64_t size, const std::string &description) |
QuotaManager * | quota_mgr () |
void * | SaveState (const int fd_progress) |
int | RestoreState (const int fd_progress, void *state) |
void | FreeState (const int fd_progress, void *state) |
Static Public Member Functions | |
static CacheManager * | Create (CacheManager *upper_cache, CacheManager *lower_cache) |
![]() | |
static BlessedObject | Bless (const shash::Any &id) |
static BlessedObject | Bless (const shash::Any &id, const ObjectInfo &info) |
static BlessedObject | Bless (const shash::Any &id, ObjectType type) |
static BlessedObject | Bless (const shash::Any &id, const std::string &description) |
static BlessedObject | Bless (const shash::Any &id, ObjectType type, const std::string &description) |
Protected Member Functions | |
virtual void * | DoSaveState () |
virtual int | DoRestoreState (void *data) |
virtual bool | DoFreeState (void *data) |
![]() | |
CacheManager () | |
Private Member Functions | |
FRIEND_TEST (T_MountPoint, TieredCacheMgr) | |
FRIEND_TEST (T_MountPoint, TieredComplex) | |
TieredCacheManager (CacheManager *upper_cache, CacheManager *lower_cache) | |
Private Attributes | |
CacheManager * | upper_ |
CacheManager * | lower_ |
bool | lower_readonly_ |
Static Private Attributes | |
static const unsigned | kCopyBufferSize = 64 * 1024 |
Additional Inherited Members | |
![]() | |
enum | ObjectType { kTypeRegular = 0, kTypeCatalog, kTypePinned, kTypeVolatile } |
![]() | |
static const uint64_t | kSizeUnknown = uint64_t(-1) |
![]() | |
QuotaManager * | quota_mgr_ |
This file is part of the CernVM File System.
This provides a framework for a cache with an upper and a lower branch. Cache manager implementation that provides a hierarchical cache. Given an "upper" and "lower" cache manager object:
The quota manager is only applied to the upper cache.
Definition at line 26 of file cache_tiered.h.
|
virtual |
Definition at line 222 of file cache_tiered.cc.
|
inlineprivate |
Definition at line 84 of file cache_tiered.h.
Referenced by Create().
|
virtual |
Implements CacheManager.
Definition at line 172 of file cache_tiered.cc.
|
inlinevirtual |
Implements CacheManager.
Definition at line 39 of file cache_tiered.h.
|
inlinevirtual |
Implements CacheManager.
Definition at line 47 of file cache_tiered.h.
|
virtual |
Implements CacheManager.
Definition at line 185 of file cache_tiered.cc.
|
static |
Definition at line 124 of file cache_tiered.cc.
Referenced by FileSystem::SetupTieredCacheMgr().
|
virtual |
Implements CacheManager.
Definition at line 137 of file cache_tiered.cc.
|
virtual |
This file is part of the CernVM File System.
Implements CacheManager.
Definition at line 17 of file cache_tiered.cc.
|
protectedvirtual |
Reimplemented from CacheManager.
Definition at line 24 of file cache_tiered.cc.
|
protectedvirtual |
Reimplemented from CacheManager.
Definition at line 33 of file cache_tiered.cc.
|
protectedvirtual |
Reimplemented from CacheManager.
Definition at line 43 of file cache_tiered.cc.
|
inlinevirtual |
Implements CacheManager.
Definition at line 50 of file cache_tiered.h.
|
private |
|
private |
|
inlinevirtual |
Implements CacheManager.
Definition at line 46 of file cache_tiered.h.
|
inlinevirtual |
Implements CacheManager.
Definition at line 31 of file cache_tiered.h.
|
virtual |
While not strictly necessary, cache managers often have a directory associated with them. This directory is currently used to find the cached manifest copy, the cvmfschecksum.$reponame file. This is important to make pre-loaded alien caches work, even in a tiered setup.
Reimplemented from CacheManager.
Definition at line 198 of file cache_tiered.cc.
|
virtual |
Opening an object might get it from a third-party source, e.g. when the tiered cache manager issues a copy-up operation. In this case it is beneficial to register the object with the accurate meta-data, in the same way it is done during transactions.
Implements CacheManager.
Definition at line 51 of file cache_tiered.cc.
|
inlinevirtual |
Implements CacheManager.
Definition at line 61 of file cache_tiered.h.
|
inlinevirtual |
Implements CacheManager.
Definition at line 48 of file cache_tiered.h.
|
inlinevirtual |
Implements CacheManager.
Definition at line 51 of file cache_tiered.h.
|
virtual |
Implements CacheManager.
Definition at line 159 of file cache_tiered.cc.
|
inline |
Definition at line 36 of file cache_tiered.h.
|
inlinevirtual |
Implements CacheManager.
Definition at line 53 of file cache_tiered.h.
|
virtual |
Implements CacheManager.
Definition at line 216 of file cache_tiered.cc.
|
virtual |
Implements CacheManager.
Definition at line 108 of file cache_tiered.cc.
|
virtual |
Reimplemented from CacheManager.
Definition at line 207 of file cache_tiered.cc.
|
virtual |
Implements CacheManager.
Definition at line 150 of file cache_tiered.cc.
|
staticprivate |
Definition at line 75 of file cache_tiered.h.
Referenced by Open().
|
private |
Definition at line 89 of file cache_tiered.h.
Referenced by AbortTxn(), CommitTxn(), CtrlTxn(), Describe(), DoFreeState(), DoRestoreState(), DoSaveState(), LoadBreadcrumb(), Open(), Reset(), SizeOfTxn(), Spawn(), StartTxn(), StoreBreadcrumb(), Write(), and ~TieredCacheManager().
|
private |
Definition at line 90 of file cache_tiered.h.
Referenced by AbortTxn(), CommitTxn(), CtrlTxn(), Reset(), SetLowerReadOnly(), StartTxn(), StoreBreadcrumb(), and Write().
|
private |
Definition at line 88 of file cache_tiered.h.
Referenced by AbortTxn(), AcquireQuotaManager(), Close(), CommitTxn(), CtrlTxn(), Describe(), DoFreeState(), DoRestoreState(), DoSaveState(), Dup(), GetSize(), LoadBreadcrumb(), Open(), OpenFromTxn(), Pread(), Readahead(), Reset(), SizeOfTxn(), Spawn(), StartTxn(), StoreBreadcrumb(), Write(), and ~TieredCacheManager().