From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Noah Misch <noah(at)leadboat(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Robert Haas <robertmhaas(at)gmail(dot)com>, Jakub Wartak <jakub(dot)wartak(at)enterprisedb(dot)com>, Jelte Fennema-Nio <postgres(at)jeltef(dot)nl> |
Subject: | Re: AIO v2.5 |
Date: | 2025-03-12 23:23:47 |
Message-ID: | 4b3f32ug3cayekysqlgspz2qjmeb7lca3gvazayglxr2m3d4dv@il33accgsji7 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
Attached is v2.7, with the following changes:
- Significantly deduplicated AIO related code bufmgr.c
Previously the code for temp and shared buffers was duplicated to an
uncomfortable degree. Now there is a common helper to implements the
behaviour for both cases.
The BM_PIN_COUNT_WAITER supporting code was also deduplicated, by
introducing a helper function.
- Fixed typos / improved phrasing, per Noah's review
- Add comment explaining why retries for EAGAIN for io_uring_enter syscall
failures don't seem to make sense, improve related error messages slightly
- Added a comment to aio.h explaining that aio_types.h might suffice for
function declarations and aio_init.h for initialization related code.
- Added and expanded comments for PgAioHandleState, explaining the state
machine in more detail.
- Updated README to mention the stage callback (instead of the outdated
"prepare"), plus some other minor cleanups.
- Added a commit rephrasing track_io_timing related docs to talk about waits
- Added FIXME to method_uring.c about the set_max_safe_fds() issue. Depending
on when/how that is resolved, the relevant commits can be reordered relative
to the rest.
- Improved localbuf: patches and commit messages, as per Melanie's review
- Added FIXMEs to the bufmgr.c write support (only in later commit, unlikely
to be realistic for 18) denoting that deadlock risk needs to be
addressed. We probably need some lwlock.c improvements to make that
race-free, otherwise I'd just have fixed this.
- Added a comment discussing the placement of the
TRACE_POSTGRESQL_BUFFER_READ_DONE callback
- removed a few debug ereports() from the StartReadBuffers patch
Unresolved:
- Whether to continue starting new workers in process_pm_child_exit()
- What to name the view (currently pg_aios). I'm inclined to go for
pg_io_handles right now.
- set_max_safe_fds() related issues for the io_uring backend
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Ryo Kanbayashi | 2025-03-12 23:53:49 | Re: PGSERVICEFILE as part of a normal connection string |
Previous Message | Jacob Champion | 2025-03-12 22:16:02 | Re: [PATCH] pg_stat_activity: make slow/hanging authentication more visible |