greenplumn CMDCache 源码

2022-08-18 浏览 (931)

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

相关信息

greenplumn 源码目录

相关文章

greenplumn CAutoMDAccessor 源码

greenplumn CMDAccessor 源码

greenplumn CMDAccessorUtils 源码

greenplumn CMDKey 源码

^