On 04/13/2013 04:36 PM, Roy Smith wrote:
In article <mailman.551.1365861813.3114.python-l...@python.org>,
  Chris Angelico <ros...@gmail.com> wrote:

2) The database engine must employ some form of write-ahead log.
[...]
one way or another, there must be a way to detect half-done
transactions.

3) The operating system and filesystem must support a forced file
synchronization (fsync/fdatasync), so the database engine can wait for
the data to be written to disk.

4) The underlying media (hard disk, SSD, USB stick, etc) must respond
to the fsync call by actually writing the content to persistent
storage before returning.

Some of the early Unix file systems were very fragile.  One of the
(often under-appreciated) major advances in BSD (it was certainly in
4.2, not sure how much earlier) was a new filesystem which was much more
robust in the face of hardware failures and system crashes.  Prior to

Are you talking about (journaling?) filesystems such as ext3, ext4, JFS, ReiserFS and XFS ?

http://en.wikipedia.org/wiki/Journaling_file_system

BSD, the on-disk data could be left in an inconsistent state if the
system crashed at the wrong time.  In BSD, data was written to disk in
such a way that every operation could either be backed out cleanly or
had enough information to complete the transaction.

Journaling filesystems? I myself use ext4... There's a comparison here:

http://en.wikipedia.org/wiki/Comparison_of_file_systems

?

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to