Clarify ALL_O_DIRECT relationship with fsync()

Bug #1229583 reported by Laurynas Biveinis on 2013-09-24
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server
Hrvoje Matijakovic
Hrvoje Matijakovic
Hrvoje Matijakovic
Hrvoje Matijakovic

Bug Description

ALL_O_DIRECT is documented as "use O_DIRECT [to] open and flush both the data and the log files." [1]. Preceding it, O_DIRECT is documented as use "O_DIRECT (...) to open the data files; use fsync() to flush both the data and log files.", which is a copy-paste from Oracle docs [2] and is best rephrased.

ALL_O_DIRECT is missing a similar fsync() comment and source code reading tells that fsync() is skipped for all the log writes: both checkpoint info and log data. A similar setup for data files might result in issues with metadata being out of sync in case of crash (i.e. see 5.6 O_DIRECT_NO_FSYNC docs), but is probably safe for log files as they are fixed-size.

Thus let's fix the docs by 1) rewriting the O_DIRECT bit not to copy-paste Oracle docs; 2) adding to ALL_O_DIRECT that fsync() is used for data files and skipped for log files.


Tags: doc Edit Tag help

Related branches

tags: added: doc
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers