Re: Question on alignment
От | Antonin Houska |
---|---|
Тема | Re: Question on alignment |
Дата | |
Msg-id | 8764.1554110504@localhost обсуждение исходный текст |
Ответ на | Re: Question on alignment (Heikki Linnakangas <hlinnaka@iki.fi>) |
Ответы |
Re: Question on alignment
|
Список | pgsql-hackers |
Heikki Linnakangas <hlinnaka@iki.fi> wrote: > On 01/04/2019 11:01, Antonin Houska wrote: > > In copydir.c:copy_file() I read > > > > /* Use palloc to ensure we get a maxaligned buffer */ > > buffer = palloc(COPY_BUF_SIZE); > > > > No data type wider than a single byte is used to access the data in the > > buffer, and neither read() nor write() should require any specific alignment. > > Can someone please explain why alignment matters here? > > An aligned buffer can allow optimizations in the kernel, when it copies the > data. So it's not strictly required, but potentially makes the read() and > write() faster. Thanks. Your response reminds me of buffer alignment: /* * Preferred alignment for disk I/O buffers. On some CPUs, copies between * user space and kernel space are significantly faster if the user buffer * is aligned on a larger-than-MAXALIGN boundary. Ideally this should be * a platform-dependent value, but for now we just hard-wire it. */ #define ALIGNOF_BUFFER 32 Is this what you mean? Since palloc() only ensures MAXIMUM_ALIGNOF, that wouldn't help here anyway. -- Antonin Houska Web: https://www.cybertec-postgresql.com
В списке pgsql-hackers по дате отправления: