mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Martin K. Petersen" <martin.petersen@oracle.com>
To: Pavel Machek <pavel@suse.cz>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>,
	Rob Landley <rob@landley.net>,
	kernel list <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>,
	tytso@mit.edu, mtk.manpages@gmail.com, rdunlap@xenotime.net,
	linux-doc@vger.kernel.org
Subject: Re: document ext3 requirements
Date: Mon, 05 Jan 2009 14:15:44 -0500	[thread overview]
Message-ID: <yq1sknx1s4f.fsf@sermon.lab.mkp.net> (raw)
In-Reply-To: <20090105094504.GB27199@atrey.karlin.mff.cuni.cz> (Pavel Machek's message of "Mon\, 5 Jan 2009 10\:45\:04 +0100")

>>>>> "Pavel" == Pavel Machek <pavel@suse.cz> writes:

>> It is mostly true on SCSI class devices because various UNIX, RAID
>> array and database vendors have spent many years leaning very hard on
>> the drive manufacturers to make it so.
>> 
>> But it's not a hard guarantee, you can't get it in writing, and it's
>> not in any of the standards.  Hybrid drives with flash had potential
>> to close that particular loophole but those appear to be dead in the
>> water.

Pavel> So "in practice it works but vendors will not guarantee that"?

It works some of the time.  But in reality if you yank power halfway
during a write operation the end result is undefined.

The saving grace for normal users is that the potential corruption is
limited to a couple of sectors.

The current suck of flash SSDs is that the erase block size amplifies
this problem by at least one order of magnitude, often two.  I have a
couple of SSDs here that will leave my filesystem in shambles every time
the machine crashes.  I quickly got tired of reinstalling Fedora several
times per week so now my main machine is back to spinning media.

The people that truly and deeply care about this type of write atomicity
(i.e. enterprises) deploy disk arrays that will do the right thing in
face of an error.  This involves NVRAM, mirrored caches, uninterruptible
power supplies, etc.  Brute force if you will.

High-end arrays even give you atomicity at a bigger granularity such as
filesystem or database blocks.  On some storage you can say "this LUN is
used for an Oracle database that always writes in multiples of 8KB" and
the array will guarantee that each 8KB block of the I/O is written in
its entirety or not at all.  Some arrays even allow you to verify Oracle
logical block checksums to ensure that the I/O is intact and internally
consistent.

I have been bugging storage vendors about a per-I/O write atomicity
setting for a while.  But it really messes up their pipelining so they
aren't keen on the idea.  We may be able to get some of it fixed as a
side-effect of the DIF bits vs. the impending switch to 4KB sectors,
though.

-- 
Martin K. Petersen	Oracle Linux Engineering

  parent reply	other threads:[~2009-01-05 19:17 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-03 12:38 Pavel Machek
2009-01-03 21:17 ` Martin MOKREJŠ
2009-01-03 22:06   ` Pavel Machek
2009-01-03 22:17   ` Duane Griffin
2009-01-03 22:29     ` Pavel Machek
2009-01-03 23:01       ` Martin MOKREJŠ
2009-01-03 23:38         ` Duane Griffin
2009-01-03 23:50           ` Martin MOKREJŠ
2009-01-03 23:58             ` Robert Hancock
2009-01-04  0:08               ` Martin MOKREJŠ
2009-01-04 21:49               ` Ingo Oeser
2009-01-04  0:00             ` Duane Griffin
2009-01-04  0:11               ` Martin MOKREJŠ
2009-01-04  0:41                 ` Duane Griffin
2009-01-04  3:52                   ` Valdis.Kletnieks
2009-01-04 14:24                     ` Duane Griffin
2009-01-04 18:40                       ` Theodore Tso
2009-01-04 19:21                         ` Geert Uytterhoeven
2009-01-04 19:36                           ` Theodore Tso
2009-01-04 19:51                             ` Duane Griffin
2009-01-04 21:55                               ` Theodore Tso
2009-01-04 22:06                                 ` Duane Griffin
2009-01-04 22:42                           ` Bron Gondwana
2009-01-05  3:22                           ` Rob Landley
2009-01-04  0:19         ` Pavel Machek
2009-01-05  2:55           ` Rob Landley
2009-01-04 19:56         ` Rob Landley
2009-01-05 19:16           ` Theodore Tso
2009-01-06 19:20             ` Rob Landley
2009-01-06 10:08         ` Matthias Andree
2009-01-06 15:23           ` Theodore Tso
2009-01-03 23:12       ` Duane Griffin
2009-01-06 10:06       ` Matthias Andree
2009-01-04  2:32 ` Theodore Tso
2009-01-04 22:33   ` Pavel Machek
2009-01-04 22:34   ` [patch] document ext3 a bit better Pavel Machek
2009-01-05 14:57     ` Theodore Tso
2009-01-06  9:21       ` Pavel Machek
2009-01-09 23:24         ` Jiri Kosina
2009-01-09 23:36           ` Randy Dunlap
2009-01-09 23:47             ` Jiri Kosina
2009-01-04 13:35 ` document ext3 requirements Alexander E. Patrakov
2009-01-04 13:53   ` Valdis.Kletnieks
2009-01-04 18:21   ` Michael Tokarev
2009-01-04 18:38   ` Theodore Tso
2009-01-04 22:37     ` Pavel Machek
2009-01-04 23:58       ` Theodore Tso
2009-01-05 11:43     ` Alan Cox
2009-01-07 11:59       ` Rob Landley
2009-01-04 20:10   ` Pavel Machek
2009-01-04 19:49 ` Rob Landley
2009-01-04 22:06   ` Theodore Tso
2009-01-04 22:25     ` Pavel Machek
2009-01-04 23:00     ` [patch] " Pavel Machek
2009-01-05  2:42       ` Rob Landley
2009-01-05  9:54         ` Pavel Machek
2009-01-04 23:07     ` Pavel Machek
2009-01-05  1:38     ` Rob Landley
2009-01-04 22:55   ` Pavel Machek
2009-01-05  0:16     ` david
2009-01-05  9:38       ` Pavel Machek
2009-01-05  1:50     ` Rob Landley
2009-01-05  3:20     ` Martin K. Petersen
2009-01-05  9:45       ` Pavel Machek
2009-01-05 11:28         ` Alan Cox
2009-01-05 19:15         ` Martin K. Petersen [this message]
2009-01-05 20:19           ` Theodore Tso
     [not found] <fa.pmCH9X+XujDl6RH6/TpkNtsTnbk@ifi.uio.no>
     [not found] ` <fa.b62zZFe5e154PhgA+0sdwVXD9F0@ifi.uio.no>
     [not found]   ` <fa.ZTpiSvxEhp3YJDepiUQs+cU0C98@ifi.uio.no>
     [not found]     ` <fa.xvvufQC6zTpU9R6vhDl51DR5V7A@ifi.uio.no>
     [not found]       ` <fa.pkV69eXC76Pb9fnmERdAwXX9OKA@ifi.uio.no>
     [not found]         ` <fa.hQTLXdIllf+hs4yQb092u6fowq0@ifi.uio.no>
2009-01-04 19:08           ` Sitsofe Wheeler
2009-01-04 19:31             ` Theodore Tso
2009-01-04 22:40               ` Pavel Machek
2009-01-04 23:30                 ` Theodore Tso
2009-01-05  3:49                   ` Rob Landley
2009-01-05  4:31                     ` Robert Hancock
2009-01-05  5:00                     ` david
2009-01-05 11:19                     ` Alan Cox
2009-01-05 19:00                       ` Rob Landley
2009-01-05 19:27                         ` Martin K. Petersen
2009-01-06 10:41                           ` Matthias Andree
2009-01-06 15:30                             ` Theodore Tso
     [not found]                             ` <20090106153020.GB13086__11022.1833143898$1231255950$gmane$org@mit.edu>
2009-01-06 15:40                               ` Andi Kleen
2009-01-06 15:57                                 ` Theodore Tso
2009-01-06 17:31                                   ` Andi Kleen
2009-01-06 19:31                                   ` Rob Landley
2009-01-27 13:24                       ` Thierry Vignaud
2009-01-27 13:37                         ` Alan Cox
2009-01-06 10:36                     ` Matthias Andree
     [not found] <fa.P4z5CJpM0xT37PWJuOuCHDkO76o@ifi.uio.no>
     [not found] ` <fa.eOwOqydZi0qs6K1nmNxBFGQMV40@ifi.uio.no>
     [not found]   ` <fa.26o5IHCAC3TQdXupl62CLYwQ+Wk@ifi.uio.no>
2009-01-04 23:13     ` Sitsofe Wheeler
2009-01-05  2:51       ` Rob Landley
2009-01-05  3:33         ` Martin K. Petersen
2009-01-05  4:02         ` david
2009-01-05  3:52           ` Rob Landley
     [not found]     ` <fa.GBkQuKdRj+YRVczlNLFhGvaw3WY@ifi.uio.no>
     [not found]       ` <fa.rCyCghh/+staAmYi/+gwYvefIS0@ifi.uio.no>
     [not found]         ` <fa.c5j7jAMUnJPvgI9Oj/VczSDNakE@ifi.uio.no>
     [not found]           ` <fa.377DMq2lPMyaHxadPnApFSJFoCg@ifi.uio.no>
2009-01-05 20:36             ` Sitsofe Wheeler
2009-01-05 23:09               ` Theodore Tso
     [not found]     ` <fa.ucJLoSQwk9OAj6T6x60tbWaiTAo@ifi.uio.no>
2009-01-05 22:25       ` Sitsofe Wheeler
2009-01-06  4:08         ` Rob Landley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=yq1sknx1s4f.fsf@sermon.lab.mkp.net \
    --to=martin.petersen@oracle.com \
    --cc=akpm@osdl.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtk.manpages@gmail.com \
    --cc=pavel@suse.cz \
    --cc=rdunlap@xenotime.net \
    --cc=rob@landley.net \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®