Re: Add shared buffer hits to pg_stat_io

From: "Drouvot, Bertrand" <bertranddrouvot(dot)pg(at)gmail(dot)com>
To: Melanie Plageman <melanieplageman(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Cc: Maciek Sakrejda <m(dot)sakrejda(at)gmail(dot)com>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, smilingsamay(at)gmail(dot)com, Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>, Lukas Fittl <lukas(at)fittl(dot)com>, Magnus Hagander <magnus(at)hagander(dot)net>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Subject: Re: Add shared buffer hits to pg_stat_io
Date: 2023-02-28 12:36:24
Message-ID: a713dcf3-19df-90c6-db73-24c06a09fb64@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message James Coleman 2023-02-28 12:37:53 Re: pg_rewind: warn when checkpoint hasn't happened after promotion
Previous Message Bharath Rupireddy 2023-02-28 12:27:37 Re: Allow logical replication to copy tables in binary format