Re: Creating a function for exposing memory usage of backend process
Fujii Masao <masao.fujii@oss.nttdata.com>
From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: torikoshia <torikoshia@oss.nttdata.com>
Cc: Michael Paquier <michael@paquier.xyz>,
Kasahara Tatsuhito <kasahara.tatsuhito@gmail.com>,
Andres Freund <andres@anarazel.de>, Tom Lane <tgl@sss.pgh.pa.us>,
PostgreSQL-development <pgsql-hackers@postgresql.org>,
Robert Haas <robertmhaas@gmail.com>
Date: 2020-08-25T02:39:44Z
Lists: pgsql-hackers
On 2020/08/24 21:56, torikoshia wrote: > On 2020-08-24 13:13, Fujii Masao wrote: >> On 2020/08/24 13:01, torikoshia wrote: >>> On 2020-08-22 21:18, Michael Paquier wrote: >>> >>> Thanks for reviewing! >>> >>>> On Fri, Aug 21, 2020 at 11:27:06PM +0900, torikoshia wrote: >>>>> OK. Added a regression test on sysviews.sql. >>>>> (0001-Added-a-regression-test-for-pg_backend_memory_contex.patch) >>>>> >>>>> Fujii-san gave us an example, but I added more simple one considering >>>>> the simplicity of other tests on that. >>>> >>>> What you have sent in 0001 looks fine to me. A small test is much >>>> better than nothing. >> >> +1 >> >> But as I proposed upthread, what about a bit complicated test as follows, >> e.g., to confirm that the internal logic for level works expectedly? >> >> SELECT name, ident, parent, level, total_bytes >= free_bytes FROM >> pg_backend_memory_contexts WHERE level = 0; > > OK! > Attached an updated patch. Thanks for updating the patch! Looks good to me. Barring any objection, I will commit this patch. > >> >> >>>> >>>>> Added a patch for relocating the codes to mcxtfuncs.c. >>>>> (patches/0001-Rellocated-the-codes-for-pg_backend_memory_contexts-.patch) >> >> Thanks for the patch! Looks good to me. >> Barring any objection, I will commit this patch at first. >> >> >>>> >>>> The same code is moved around line-by-line. >>>> >>>>> Of course, this restriction makes pg_backend_memory_contexts hard to use >>>>> when the user of the target session is not granted pg_monitor because the >>>>> scope of this view is session local. >>>>> >>>>> In this case, I imagine additional operations something like temporarily >>>>> granting pg_monitor to that user. >>>> >>>> Hmm. I am not completely sure either that pg_monitor is the best fit >>>> here, because this view provides information about a bunch of internal >>>> structures. Something that could easily be done though is to revoke >>>> the access from public, and then users could just set up GRANT >>>> permissions post-initdb, with pg_monitor as one possible choice. This >>>> is the safest path by default, and this stuff is of a caliber similar >>>> to pg_shmem_allocations in terms of internal contents. >>> >>> I think this is a better way than what I did in >>> 0001-Rellocated-the-codes-for-pg_backend_memory_contexts-.patch. >> >> You mean 0001-Restrict-the-access-to-pg_backend_memory_contexts-to.patch? > > Oops, I meant 0001-Restrict-the-access-to-pg_backend_memory_contexts-to.patch. This patch also looks good to me. Thanks! Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION
Commits
-
Add regression test for pg_backend_memory_contexts.
- adc8fc6167aa 14.0 landed
-
Move codes for pg_backend_memory_contexts from mmgr/mcxt.c to adt/mcxtfuncs.c.
- 50db5964ee33 14.0 landed
-
Prevent non-superusers from reading pg_backend_memory_contexts, by default.
- 29dd6d8bc631 14.0 landed
-
Add pg_backend_memory_contexts system view.
- 3e98c0bafb28 14.0 landed
-
Fix yet another issue with step generation in partition pruning.
- 199cec977950 14.0 cited