From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Grzegorz Kulewski <kangur@polcom.net>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: How to flush data to disk reliably?
Date: Mon, 02 May 2005 22:41:16 +0100 [thread overview]
Message-ID: <1115070074.10338.53.camel@localhost.localdomain> (raw)
In-Reply-To: <Pine.LNX.4.62.0505022057070.11701@alpha.polcom.net>
On Llu, 2005-05-02 at 20:18, Grzegorz Kulewski wrote:
> What about other filesystems? Does anybody know anwser for Reiserfs3,
> Reiser4, JFS, XFS and any other popular server filesystems? I assume that
> if log file is some block device (like partition) both O_SYNC and fsync
> will work? What about ext2? What about some strange RAID/DM/NBD
> configurations? (I do not know in advance what our customers will use so I
> need portable method.)
RAID does stripe sized rewrites so you get into the same situation as
with actual disks - a physical media failure might lose you old data
(but then if the disk goes bang so does the data...)
> I already saw them. But I am asking about current implementation status on
> Linux. For example does fsync differ from fdatasync if file is block
> device? Does O_SYNC always equal "write; fsync" for all not read only
> operations? Is it faster because only one syscall is executed?
Benchmark it - it depends on your workload I imagine. If you are able to
write a log entry well before it is needed then the fsync can be a big
win because you can hope the data is already on or heading for disk when
you fsync
> Also flushing should be slow (for example 50 flushes/s) because disk seeks
> are slow. So if I need say 200 reliable writes to log per second may I put
> 4 independent disks into the server and use them as 4 independent log
> files? But fsync operation blocks. Is there any "submit flush request and
> get some info when done" command or should I use 4 threads / processes?
If you are trying to write logs on that kind of simplistic "reliable"
approach then you probably want a raid card with battery backed ram, at
that point fsync becomes very fast. Most transaction services tend to
use different algorithms to provide reliable service due to exactly
these kind of reasons.
next prev parent reply other threads:[~2005-05-02 21:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-02 13:23 How to flush data to disk reliably? Grzegorz Kulewski
2005-05-02 17:52 ` Alan Cox
2005-05-02 19:18 ` Grzegorz Kulewski
2005-05-02 21:41 ` Alan Cox [this message]
2005-05-02 22:30 ` Bill Davidsen
2005-05-02 23:17 ` Arjan van de Ven
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=1115070074.10338.53.camel@localhost.localdomain \
--to=alan@lxorguk.ukuu.org.uk \
--cc=kangur@polcom.net \
--cc=linux-kernel@vger.kernel.org \
/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