greenplumn CMDCache 源码
greenplumn CMDCache 代码
文件路径:/src/backend/gporca/libgpopt/include/gpopt/mdcache/CMDCache.h
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2011 EMC Corp.
//
// @filename:
// CMDCache.h
//
// @doc:
// Metadata cache.
//---------------------------------------------------------------------------
#ifndef GPOPT_CMDCache_H
#define GPOPT_CMDCache_H
#include "gpos/base.h"
#include "gpos/memory/CCache.h"
#include "gpos/memory/CCacheFactory.h"
#include "gpopt/mdcache/CMDAccessor.h"
#include "gpopt/mdcache/CMDKey.h"
namespace gpopt
{
using namespace gpos;
using namespace gpmd;
//---------------------------------------------------------------------------
// @class:
// CMDCache
//
// @doc:
// A wrapper for a generic cache to hide the details of metadata cache
// creation and encapsulate a singleton cache object
//
//---------------------------------------------------------------------------
class CMDCache
{
private:
// pointer to the underlying cache
static CMDAccessor::MDCache *m_pcache;
// the maximum size of the cache
static ULLONG m_ullCacheQuota;
// private ctor
CMDCache() = default;
// private dtor
~CMDCache() = default;
public:
CMDCache(const CMDCache &) = delete;
// initialize underlying cache
static void Init();
// has cache been initialized?
static BOOL
FInitialized()
{
return (nullptr != m_pcache);
}
// destroy global instance
static void Shutdown();
// set the maximum size of the cache
static void SetCacheQuota(ULLONG ullCacheQuota);
// get the maximum size of the cache
static ULLONG ULLGetCacheQuota();
// get the number of times we evicted entries from this cache
static ULLONG ULLGetCacheEvictionCounter();
// reset global instance
static void Reset();
// global accessor
static CMDAccessor::MDCache *
Pcache()
{
return m_pcache;
}
}; // class CMDCache
} // namespace gpopt
#endif // !GPOPT_CMDCache_H
// EOF
相关信息
相关文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦