You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by zt...@apache.org on 2022/07/03 01:36:11 UTC
[hawq] 01/01: HAWQ-1842. add session_state.session_level_memory_consumption
This is an automated email from the ASF dual-hosted git repository.
ztao1987 pushed a commit to branch ztao
in repository https://gitbox.apache.org/repos/asf/hawq.git
commit de18899bebbeb68bb9547fdee89272e1b5904945
Author: ztao1987 <zh...@gmail.com>
AuthorDate: Sun Jul 3 09:35:16 2022 +0800
HAWQ-1842. add session_state.session_level_memory_consumption
---
src/backend/utils/mmgr/memprot.c | 2 +-
src/bin/Makefile | 2 +-
src/bin/gp_session_state/gp_session_state.sql.in | 31 ++++++++++++----------
.../gp_session_state_memory_stats.c | 2 +-
.../uninstall_gp_session_state.sql | 4 +--
5 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/src/backend/utils/mmgr/memprot.c b/src/backend/utils/mmgr/memprot.c
index 24809f7f9..7ae67b918 100644
--- a/src/backend/utils/mmgr/memprot.c
+++ b/src/backend/utils/mmgr/memprot.c
@@ -454,7 +454,7 @@ void *gp_realloc(void *ptr, int64 sz, int64 newsz)
}
#endif
- if(!ret)
+ if(newsz && !ret)
{
Assert(0 < size_diff);
VmemTracker_ReleaseVmem(size_diff);
diff --git a/src/bin/Makefile b/src/bin/Makefile
index 9e7c9e9cb..ca0faa6e4 100644
--- a/src/bin/Makefile
+++ b/src/bin/Makefile
@@ -16,7 +16,7 @@ include $(top_builddir)/src/Makefile.global
DIRS = initdb ipcclean pg_ctl pg_dump pgbench \
psql scripts pg_config pg_controldata pg_resetxlog \
gpfilesystem/hdfs gpmirrortransition gpupgrade \
- gpfusion gp_workfile_mgr gpcheckhdfs gpfdist gpoptutils
+ gpfusion gp_workfile_mgr gpcheckhdfs gpfdist gpoptutils gp_session_state
all install installdirs uninstall distprep clean distclean maintainer-clean:
@for dir in $(DIRS); do echo "build $$dir"; $(MAKE) -C $$dir $@ || exit; done
diff --git a/src/bin/gp_session_state/gp_session_state.sql.in b/src/bin/gp_session_state/gp_session_state.sql.in
index c96284eca..ab8f463c7 100644
--- a/src/bin/gp_session_state/gp_session_state.sql.in
+++ b/src/bin/gp_session_state/gp_session_state.sql.in
@@ -62,24 +62,27 @@ GRANT EXECUTE ON FUNCTION session_state_memory_entries_f() TO public;
-- List of memory usage entries for sessions
--
--------------------------------------------------------------------------------
+CREATE OR REPLACE FUNCTION create_segment_proxy() RETURNS text AS
+$$
+DECLARE
+ segCount int;
+ cmd text;
+BEGIN
+ SELECT count(*) from gp_segment_configuration where role = 'p' and status = 'u'
+ into segCount;
+ cmd := 'create readable external web table segments(t int)
+ execute ''echo $GP_SEGMENT_ID'' on ' || segCount || ' format ''text''';
+ EXECUTE cmd;
+ RETURN cmd;
+END;
+$$ LANGUAGE PLPGSQL;
+SELECT create_segment_proxy();
+
CREATE VIEW session_level_memory_consumption AS
WITH all_entries AS (
- SELECT C.*
- FROM gp_toolkit.__gp_localid, session_state_memory_entries_f() AS C (
- segid int,
- sessionid int,
- vmem_mb int,
- runaway_status int,
- qe_count int,
- active_qe_count int,
- dirty_qe_count int,
- runaway_vmem_mb int,
- runaway_command_cnt int
- )
- UNION ALL
SELECT C.*
- FROM gp_toolkit.__gp_masterid, session_state_memory_entries_f() AS C (
+ FROM session_state.segments, session_state_memory_entries_f() AS C (
segid int,
sessionid int,
vmem_mb int,
diff --git a/src/bin/gp_session_state/gp_session_state_memory_stats.c b/src/bin/gp_session_state/gp_session_state_memory_stats.c
index 0c902c2f7..8f5d49b15 100644
--- a/src/bin/gp_session_state/gp_session_state_memory_stats.c
+++ b/src/bin/gp_session_state/gp_session_state_memory_stats.c
@@ -125,7 +125,7 @@ gp_session_state_memory_entries(PG_FUNCTION_ARGS)
bool nulls[NUM_SESSION_STATE_MEMORY_ELEM];
MemSet(nulls, 0, sizeof(nulls));
- values[0] = Int32GetDatum(Gp_segment);
+ values[0] = Int32GetDatum(GpIdentity.segindex);
values[1] = Int32GetDatum(sessionState.sessionId);
values[2] = Int32GetDatum(VmemTracker_ConvertVmemChunksToMB(sessionState.sessionVmem));
values[3] = Int32GetDatum(sessionState.runawayStatus);
diff --git a/src/bin/gp_session_state/uninstall_gp_session_state.sql b/src/bin/gp_session_state/uninstall_gp_session_state.sql
index cda946733..ea94214ad 100644
--- a/src/bin/gp_session_state/uninstall_gp_session_state.sql
+++ b/src/bin/gp_session_state/uninstall_gp_session_state.sql
@@ -3,8 +3,6 @@ SET search_path = session_state;
BEGIN;
-DROP VIEW session_state_memory_entries;
-DROP FUNCTION session_state_memory_entries_f();
-DROP SCHEMA session_state;
+DROP SCHEMA session_state CASCADE;
COMMIT;