From: | Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com> |
---|---|
To: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
Cc: | Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Melanie Plageman <melanieplageman(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de> |
Subject: | Re: Streaming I/O, vectored I/O (WIP) |
Date: | 2024-03-18 15:32:44 |
Message-ID: | CAN55FZ08SjoFwiLo6A9Bb3foy7KCFUT=A+22+7cf_RKYxeaUTA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On Sat, 16 Mar 2024 at 02:53, Thomas Munro <thomas(dot)munro(at)gmail(dot)com> wrote:
>
> I am planning to push the bufmgr.c patch soon. At that point the new
> API won't have any direct callers yet, but the traditional
> ReadBuffer() family of functions will internally reach
> StartReadBuffers(nblocks=1) followed by WaitReadBuffers(),
> ZeroBuffer() or nothing as appropriate. Any more thoughts or
> objections? Naming, semantics, correctness of buffer protocol,
> sufficiency of comments, something else?
+ if (StartReadBuffers(bmr,
+ &buffer,
+ forkNum,
+ blockNum,
+ &nblocks,
+ strategy,
+ flags,
+ &operation))
+ WaitReadBuffers(&operation);
I think we need to call WaitReadBuffers when 'mode !=
RBM_ZERO_AND_CLEANUP_LOCK && mode != RBM_ZERO_AND_LOCK' or am I
missing something?
Couple of nitpicks:
It would be nice to explain what the PrepareReadBuffer function does
with a comment.
+ if (nblocks == 0)
+ return; /* nothing to do */
It is guaranteed that nblocks will be bigger than 0. Can't we just use
Assert(operation->io_buffers_len > 0);?
--
Regards,
Nazir Bilal Yavuz
Microsoft
From | Date | Subject | |
---|---|---|---|
Next Message | Magnus Hagander | 2024-03-18 15:34:26 | Re: Possibility to disable `ALTER SYSTEM` |
Previous Message | Nathan Bossart | 2024-03-18 15:29:02 | Re: Popcount optimization using AVX512 |