Support direct I/O on macOS.
Thomas Munro <tmunro@postgresql.org>
Support direct I/O on macOS. Macs don't understand O_DIRECT, but they can disable caching with a separate fcntl() call. Extend the file opening functions in fd.c to handle this for us if the caller passes in PG_O_DIRECT. For now, this affects only WAL data and even then only if you set: max_wal_senders=0 wal_level=minimal This is not expected to be very useful on its own, but later proposed patches will make greater use of direct I/O, and it'll be useful for testing if developers on Macs can see the effects. Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/CA%2BhUKG%2BADiyyHe0cun2wfT%2BSVnFVqNYPxoO6J9zcZkVO7%2BNGig%40mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/storage/file/fd.c | modified | +36 −0 |
| src/bin/pg_test_fsync/pg_test_fsync.c | modified | +31 −4 |
| src/include/access/xlogdefs.h | modified | +0 −15 |
| src/include/storage/fd.h | modified | +16 −0 |
Discussion
- O_DIRECT on macOS 16 messages · 2021-05-30 → 2021-07-20