From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Direct I/O |
Date: | 2022-11-01 20:44:30 |
Message-ID: | CA+hUKGKxqvo5FBsb7SUTT5EA2PFmGhVWEvA-RYY_zwqgeQ63wg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Nov 2, 2022 at 2:33 AM Justin Pryzby <pryzby(at)telsasoft(dot)com> wrote:
> On Tue, Nov 01, 2022 at 08:36:18PM +1300, Thomas Munro wrote:
> > io_data_direct = whether to use O_DIRECT for main data files
> > io_wal_direct = ... for WAL
> > io_wal_init_direct = ... for WAL-file initialisation
>
> You added 3 booleans, but I wonder if it's better to add a string GUC
> which is parsed for comma separated strings. (By "better", I mean
> reducing the number of new GUCs - which is less important for developer
> GUCs anyway.)
Interesting idea. So "direct_io = data, wal, wal_init", or maybe that
should be spelled io_direct. ("Direct I/O" is a common term of art,
but we also have some more io_XXX GUCs in later patches, so it's hard
to choose...)
> DIO is slower, but not so much that it can't run under CI. I suggest to
> add an 099 commit to enable the feature during development.
Good idea, will do.
> Note that this fails under linux with fsanitize=align:
> ../src/backend/storage/file/buffile.c:117:17: runtime error: member access within misaligned address 0x561a4a8e40f8 for type 'struct BufFile', which requires 4096 byte alignment
Oh, so BufFile is palloc'd and contains one of these. BufFile is not
even using direct I/O, but by these rules it would need to be
palloc_io_align'd. I will think about what to do about that...
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2022-11-01 20:47:51 | Re: psql: Add command to use extended query protocol |
Previous Message | Peter Eisentraut | 2022-11-01 20:41:15 | Re: Check return value of pclose() correctly |