On Sun, 29 May 2005, Greg Stark wrote:The problem is that in many options required to make that happen in the o/s, hardware, and application are going to kill performance. And even if you can control order of write, unless you can get write to final non-volatile media control you can get a sane database but still lose transactions.
Oracle, Sybase, Postgres, other databases have hard requirements. They
guarantee that when they acknowledge a transaction commit the data has been
written to non-volatile media and will be recoverable even in the face of a
routine power loss.
They meet this requirement just fine on SCSI drives (where write caching
generally ships disabled) and on any OS where fsync issues a cache flush. If
I don't know what facts "generally ships disabled" is based on, all of
the more recent SCSI drives (non SCA type though) I acquired came with
write cache enabled and some also with queue algorithm modifier set to 1.
Worse, if the disk flushes the data to disk out of order it's quite
likely the entire database will be corrupted on any simple power
outage. I'm not clear whether that's the case for any common drives.
It's a matter of enforcing write order. In how far such ordering
constraints are propagated by file systems, VFS layer, down to the
hardware, is the grand question.