Re: Use PGAlignedBlock instead of "char buf[BLCKSZ]" in more places

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Use PGAlignedBlock instead of "char buf[BLCKSZ]" in more places
Дата
Msg-id 20231204174724.3va4cqu3dmrbnwsj@awork3.anarazel.de
обсуждение исходный текст
Ответ на Re: Use PGAlignedBlock instead of "char buf[BLCKSZ]" in more places  (Peter Eisentraut <peter@eisentraut.org>)
Ответы Re: Use PGAlignedBlock instead of "char buf[BLCKSZ]" in more places  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-hackers
Hi,

On 2023-12-04 15:53:44 +0100, Peter Eisentraut wrote:
> On 04.12.23 06:46, Michael Paquier wrote:
> > On Mon, Dec 04, 2023 at 06:59:13AM +0530, Bharath Rupireddy wrote:
> > > The commit 44cac934 replaced "char buf[BLCKSZ]" with PGAlignedBlock to
> > > avoid issues on alignment-picky hardware. While it replaced most of the
> > > instances, there are still some more left. How about we use PGAlignedBlock
> > > there too, something like the attached patch? A note [2] in the commit
> > > 44cac934 says that ensuring proper alignment makes kernel data transfers
> > > fasters and the left-over "char buf[BLCKSZ]" either do read() or write()
> > > system calls, so it might be worth to align them with PGAlignedBlock.
> > > 
> > > Thoughts?
> > 
> > The buffers used to write the lock file and the TLI history file are
> > not page buffers, and this could make code readers think that these
> > are pages.
> 
> The type is called "aligned block", not "aligned buffer" or "aligned page",
> so I don't think it's incorrect to try to use it.

Block is a type defined in bufmgr.h...


> So I am honestly not sure if there's a point in changing
> > them because the current code is not incorrect, isn't it?  It looks
> > like 2042b3428d39 for the TLI history file and 52948169bcdd for the
> > lock file began using BLCKSZ because that was just a handy thing to
> > do, and because we know they would never get beyond that.
> 
> Yeah, it's not clear why these need to be block-sized.  We shouldn't
> perpetuate this without more clarity about this.

If we change something, we should consider making buffers like these aligned
to page sizes, rather than just MAXALIGNED.

Greetings,

Andres Freund



В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Tristan Partin"
Дата:
Сообщение: Re: Clean up some signal usage mainly related to Windows
Следующее
От: Nathan Bossart
Дата:
Сообщение: Re: [PATCH] pg_convert improvement