On Mar 29, 2011, at 10:17 PM, Dave Chinner wrote:
Direct IO semantics have always been that the application is allowed
to overlap IO to the same range if it wants to. The result is
undefined (just like issuing overlapping reads and writes to a disk
at the same time) so it's the application's responsibility to avoid
overlapping IO if it is a problem.
Even if the overlapping read/writes are taking place in different processes?
DIO has never been standardized, and was originally implemented as gentleman's agreements between various database manufacturers and proprietary unix vendors. The lack of formal specifications of what applications are guaranteed to receive is unfortunate....
-- Ted