The O_DIRECT flag on its own makes at an effort to transfer data synchronously, but does not give the guarantees of the O_SYNC
that data and necessary metadata are transferred. To guarantee synchronous I/O the O_SYNC must be used in addition to O_DIRECT.
See NOTES below for further discussion.
so both XtraDB and the facebook patches are technically incorrect, although they may just happen to work on most kernels/filesystem combinations there is no reason for them to continue to do so.
from open(2)
The O_DIRECT flag on its own makes at an effort to transfer data
synchronously, but does not give the guarantees of the O_SYNC
synchronous I/O the O_SYNC must be used in addition to O_DIRECT.
that data and necessary metadata are transferred. To guarantee
See NOTES below for further discussion.
so both XtraDB and the facebook patches are technically incorrect, although they may just happen to work on most kernels/filesystem combinations there is no reason for them to continue to do so.