Re: Direct I/O
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Andrew Dunstan <andrew@dunslane.net>, Andres Freund <andres@anarazel.de>,
Heikki Linnakangas <hlinnaka@iki.fi>, Noah Misch <noah@leadboat.com>,
Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>,
Justin Pryzby <pryzby@telsasoft.com>, pgsql-hackers@postgresql.org
Date: 2023-04-09T02:05:05Z
Lists: pgsql-hackers
Thomas Munro <thomas.munro@gmail.com> writes: > It's odd, though, if it is their bug and not ours: I'd expect our > friends in other databases to have hit all that sort of thing years > ago, since many comparable systems have a direct I/O knob*. Yeah, it seems moderately likely that it's our own bug ... but this code's all file-system-ignorant, so how? Maybe we are breaking some POSIX rule that btrfs exploits but others don't? > I gather that btrfs is actually Fedora's default file system (or maybe > it's just "laptops and desktops"[2]?). I have a ton of Fedora images laying about, and I doubt that any of them use btrfs, mainly because that's not the default in the "server spin" which is what I usually install from. It's hard to guess about the buildfarm, but it wouldn't surprise me that most of them are on xfs. (If we haven't figured this out pretty shortly, I'm probably going to put together a btrfs-on-bare-metal machine to try to duplicate crake's results.) regards, tom lane
Commits
-
Rename hook functions for debug_io_direct to match variable name.
- 155c81463c26 16.0 landed
- 4f3514f201cf 17.0 landed
-
Rename io_direct to debug_io_direct.
- 319bae9a8da6 16.0 landed
-
Skip the 004_io_direct.pl test if a pre-flight check fails.
- 6ca8df2d6147 16.0 landed
-
Use higher wal_level for 004_io_direct.pl.
- 980e8879f54a 16.0 landed
-
Skip \password TAP test on old IPC::Run versions
- 2e57ffe12f6b 16.0 cited
-
Add io_direct setting (developer-only).
- d4e71df6d757 16.0 landed
-
Introduce PG_IO_ALIGN_SIZE and align all I/O buffers.
- faeedbcefd40 16.0 landed
-
Add palloc_aligned() to allow aligned memory allocations
- 439f61757f05 16.0 cited
-
initdb: When running CREATE DATABASE, use STRATEGY = WAL_COPY.
- ad43a413c4f7 15.0 cited