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 <[email protected]> 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;
