faeedbcefd
In order to have the option to use O_DIRECT/FILE_FLAG_NO_BUFFERING in a
later commit, we need the addresses of user space buffers to be well
aligned. The exact requirements vary by OS and file system (typically
sectors and/or memory pages). The address alignment size is set to
4096, which is enough for currently known systems: it matches modern
sectors and common memory page size. There is no standard governing
O_DIRECT's requirements so we might eventually have to reconsider this
with more information from the field or future systems.
Aligning I/O buffers on memory pages is also known to improve regular
buffered I/O performance.
Three classes of I/O buffers for regular data pages are adjusted:
(1) Heap buffers are now allocated with the new palloc_aligned() or
MemoryContextAllocAligned() functions introduced by commit
|
||
---|---|---|
.. | ||
t | ||
.gitignore | ||
Makefile | ||
autoprewarm.c | ||
meson.build | ||
pg_prewarm--1.0--1.1.sql | ||
pg_prewarm--1.1--1.2.sql | ||
pg_prewarm--1.1.sql | ||
pg_prewarm.c | ||
pg_prewarm.control |