greenplumn vmem_tracker 源码
greenplumn vmem_tracker 代码
文件路径:/src/include/utils/vmem_tracker.h
/*-------------------------------------------------------------------------
*
* vmem_tracker.h
* This file contains declarations for vmem tracking functions.
*
* Copyright (c) 2014-Present VMware, Inc. or its affiliates.
*
*
* IDENTIFICATION
* src/include/utils/vmem_tracker.h
*
*-------------------------------------------------------------------------
*/
#ifndef VMEMTRACKER_H
#define VMEMTRACKER_H
#include "nodes/nodes.h"
#define BITS_IN_MB 20
/*
* The cleanupCountdown in the SessionState determines how many
* processes we need to cleanup to declare a session clean. If it
* reaches 0, we mark the session clean. However, -1 indicates
* that the session is either done cleaning previous runaway event
* or it never started a cleaning.
*/
#define CLEANUP_COUNTDOWN_BEFORE_RUNAWAY -1
typedef enum MemoryAllocationStatus
{
MemoryAllocation_Success,
MemoryFailure_VmemExhausted,
MemoryFailure_SystemMemoryExhausted,
MemoryFailure_QueryMemoryExhausted,
MemoryFailure_ResourceGroupMemoryExhausted
} MemoryAllocationStatus;
typedef int64 EventVersion;
extern int runaway_detector_activation_percent;
extern int32 VmemTracker_ConvertVmemChunksToMB(int chunks);
extern int32 VmemTracker_ConvertVmemMBToChunks(int mb);
extern int64 VmemTracker_ConvertVmemChunksToBytes(int chunks);
extern int32 VmemTracker_ConvertVmemBytesToChunks(int64 bytes);
extern int32 VmemTracker_GetReservedVmemChunks(void);
extern int64 VmemTracker_GetReservedVmemBytes(void);
extern int64 VmemTracker_GetMaxReservedVmemChunks(void);
extern int64 VmemTracker_GetMaxReservedVmemMB(void);
extern int64 VmemTracker_GetMaxReservedVmemBytes(void);
extern int64 VmemTracker_GetVmemLimitBytes(void);
extern int32 VmemTracker_GetVmemLimitChunks(void);
extern int32 VmemTracker_GetChunkSizeInBits(void);
extern int32 VmemTracker_GetAvailableVmemMB(void);
extern int64 VmemTracker_GetAvailableVmemBytes(void);
extern int32 VmemTracker_GetAvailableQueryVmemMB(void);
extern void VmemTracker_ShmemInit(void);
extern void VmemTracker_Init(void);
extern void VmemTracker_Shutdown(void);
extern void VmemTracker_ResetMaxVmemReserved(void);
extern MemoryAllocationStatus VmemTracker_ReserveVmem(int64 newly_requested);
extern void VmemTracker_ReleaseVmem(int64 to_be_freed_requested);
extern MemoryAllocationStatus VmemTracker_RegisterStartupMemory(int64 bytes);
extern void VmemTracker_UnregisterStartupMemory(void);
extern void VmemTracker_RequestWaiver(int64 waiver_bytes);
extern void VmemTracker_ResetWaiver(void);
extern int32 RedZoneHandler_GetRedZoneLimitChunks(void);
extern int32 RedZoneHandler_GetRedZoneLimitMB(void);
extern bool RedZoneHandler_IsVmemRedZone(void);
extern void RedZoneHandler_DetectRunawaySession(void);
extern void RunawayCleaner_RunawayCleanupDoneForSession(void);
extern void RunawayCleaner_RunawayCleanupDoneForProcess(bool ignoredCleanup);
extern void RedZoneHandler_LogVmemUsageOfAllSessions(void);
extern void IdleTracker_ActivateProcess(void);
extern void IdleTracker_DeactivateProcess(void);
extern bool VmemTrackerIsActivated(void);
#endif /* VMEMTRACKER_H */
相关信息
相关文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
7、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦