greenplumn memquota 源码
greenplumn memquota 代码
文件路径:/src/include/cdb/memquota.h
/*-------------------------------------------------------------------------
*
* memquota.h
* Routines related to memory quota for queries.
*
* Portions Copyright (c) 2005-2010, Greenplum inc
* Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
*
*
* IDENTIFICATION
* src/include/cdb/memquota.h
*
*-------------------------------------------------------------------------
*/
#ifndef MEMQUOTA_H_
#define MEMQUOTA_H_
#include "nodes/plannodes.h"
#include "cdb/cdbplan.h"
typedef enum ResManagerMemoryPolicy
{
RESMANAGER_MEMORY_POLICY_NONE,
RESMANAGER_MEMORY_POLICY_AUTO,
RESMANAGER_MEMORY_POLICY_EAGER_FREE
} ResManagerMemoryPolicy;
extern ResManagerMemoryPolicy gp_resmanager_memory_policy_default;
extern bool gp_log_resmanager_memory_default;
extern int gp_resmanager_memory_policy_auto_fixed_mem_default;
extern bool gp_resmanager_print_operator_memory_limits_default;
extern ResManagerMemoryPolicy *gp_resmanager_memory_policy;
extern bool *gp_log_resmanager_memory;
extern int *gp_resmanager_memory_policy_auto_fixed_mem;
extern bool *gp_resmanager_print_operator_memory_limits;
#define GP_RESMANAGER_MEMORY_LOG_LEVEL NOTICE
#define IsResManagerMemoryPolicyNone() (*gp_resmanager_memory_policy == RESMANAGER_MEMORY_POLICY_NONE)
#define IsResManagerMemoryPolicyAuto() (*gp_resmanager_memory_policy == RESMANAGER_MEMORY_POLICY_AUTO)
#define IsResManagerMemoryPolicyEagerFree() (*gp_resmanager_memory_policy == RESMANAGER_MEMORY_POLICY_EAGER_FREE)
#define LogResManagerMemory() (*gp_log_resmanager_memory == true)
#define ResManagerPrintOperatorMemoryLimits() (*gp_resmanager_print_operator_memory_limits == true)
extern void PolicyAutoAssignOperatorMemoryKB(PlannedStmt *stmt, uint64 memoryAvailable);
extern void PolicyEagerFreeAssignOperatorMemoryKB(PlannedStmt *stmt, uint64 memoryAvailable);
/**
* Inverse for explain analyze.
*/
extern uint64 PolicyAutoStatementMemForNoSpill(PlannedStmt *stmt, uint64 minOperatorMemKB);
/**
* Is result node memory intensive?
*/
extern bool IsResultMemoryIntensive(Result *res);
/*
* Calculate the amount of memory reserved for the query
*/
extern int64 ResourceManagerGetQueryMemoryLimit(PlannedStmt* stmt);
#endif /* MEMQUOTA_H_ */
相关信息
相关文章
greenplumn cdbappendonlyblockdirectory 源码
greenplumn cdbappendonlystorage 源码
greenplumn cdbappendonlystorage_int 源码
greenplumn cdbappendonlystorageformat 源码
greenplumn cdbappendonlystoragelayer 源码
greenplumn cdbappendonlystorageread 源码
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦