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
 - 
                        7、 openharmony
 - 
                        9、 golang