Re: pendingOps table is not cleared with fsync=off
Shawn Debnath <sdn@amazon.com>
From: Shawn Debnath <sdn@amazon.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Thomas Munro <thomas.munro@gmail.com>, Heikki Linnakangas <hlinnaka@iki.fi>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-08-10T21:02:35Z
Lists: pgsql-hackers
On Mon, Aug 10, 2020 at 02:50:26PM -0400, Tom Lane wrote: > > Shawn Debnath <sdn@amazon.com> writes: > > Good catch. Question is, are the users aware of the requirement to do a > > manual fsync if they flip the fsync GUC off and then on? Should we do > > this on their behalf to make a good faith attempt to ensure things are > > flushed properly via an assign hook? > > No. Or at least, expecting that you can do that from an assign hook > is impossibly wrong-headed. GUC assign hooks can't have failure modes. Okay agree, will remind myself to drink more coffee next time. If we think a fsync should be performed in this case, assign hook could set a value to indicate parameter was reset via SIGHUP. Next call to ProcessSyncRequests() could check for this, do a fsync prior to absorbing the newly submitted sync requests, and reset the flag. fsync_pgdata() comes to mind to be inclusive. If folks are not inclined to do the fsync, the change is good as is. -- Shawn Debnath Amazon Web Services (AWS)
Commits
-
Move check for fsync=off so that pendingOps still gets cleared.
- 891a2007e398 12.4 landed
- e8abf585ab45 13.0 landed
-
Refactor the fsync queue for wider use.
- 3eb77eba5a51 12.0 cited