Hi,

On 2/25/23 9:16 PM, Melanie Plageman wrote:
Hi,

As suggested in [1], the attached patch adds shared buffer hits to
pg_stat_io.


Thanks for the patch!

 BufferDesc *
 LocalBufferAlloc(SMgrRelation smgr, ForkNumber forkNum, BlockNumber blockNum,
-                                bool *foundPtr, IOContext *io_context)
+                                bool *foundPtr, IOContext io_context)
 {
        BufferTag       newTag;                 /* identity of requested block 
*/
        LocalBufferLookupEnt *hresult;
@@ -128,14 +128,6 @@ LocalBufferAlloc(SMgrRelation smgr, ForkNumber forkNum, 
BlockNumber blockNum,
        hresult = (LocalBufferLookupEnt *)
                hash_search(LocalBufHash, &newTag, HASH_FIND, NULL);

-       /*
-        * IO Operations on local buffers are only done in IOCONTEXT_NORMAL. Set
-        * io_context here (instead of after a buffer hit would have returned) 
for
-        * convenience since we don't have to worry about the overhead of 
calling
-        * IOContextForStrategy().
-        */
-       *io_context = IOCONTEXT_NORMAL;


It looks like that io_context is not used in LocalBufferAlloc() anymore and 
then can be removed as an argument.


I am looking for input as to the order of this column in the view. I
think it should go after op_bytes since it is not relevant for
non-block-oriented IO.

Agree.

However, I'm not sure what the order of hits,
evictions, and reuses should be (all have to do with buffers).


I'm not sure there is a strong "correct" ordering but the proposed one looks 
natural to me.

While adding this, I noticed that I had made all of the IOOP columns
int8 in the view, and I was wondering if this is sufficient for hits (I
imagine you could end up with quite a lot of those).


I think that's ok and bigint is what is already used for 
pg_statio_user_tables.heap_blks_hit for example.

Regards,

--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com


Reply via email to