All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rik van Riel <riel@redhat.com>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Andreas Dilger <adilger@sun.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Ray Strode <rstrode@redhat.com>,
	elb@psg.com
Subject: Re: RFC: O_PONIES semantics (well O_REWRITE)
Date: Wed, 17 Jun 2009 09:52:07 -0400	[thread overview]
Message-ID: <4A38F507.4050104@redhat.com> (raw)
In-Reply-To: <1244730231.5047.11.camel@heimdal.trondhjem.org>

Trond Myklebust wrote:

> How is this any different than just having your application use
> mkostemp() to create a temporary dot file, then renaming it when done
> writing?

That is exactly what it is.  There are reasons for implementing
it at a lower level in the system, though.

Implementing it in glibc:
- means applications get it right (today, many don't)
- allows for a performance optimization, moving the fsync
   into a specially spawned off temporary thread, so the
   main application doesn't stall

Implementing it in the kernel allows for some further
performance and power optimizations, most notably:
- the sync could be turned into an ordering requirement,
   meaning it can be postponed and even obsoleted by a
   future version of the file
- the ability to postpone the write allows for better
   power saving

-- 
All rights reversed.

  parent reply	other threads:[~2009-06-17 13:55 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-11  1:03 RFC: O_PONIES semantics (well O_REWRITE) Rik van Riel
2009-06-11  5:53 ` Andreas Dilger
2009-06-11 14:06   ` Rik van Riel
2009-06-11 14:23     ` Trond Myklebust
2009-06-11 14:32       ` Ray Strode
2009-06-17 13:52       ` Rik van Riel [this message]
2009-06-11  9:51 ` Artem Bityutskiy
2009-06-12  2:07 ` Jamie Lokier
2009-06-12  2:20   ` Matthew Wilcox
2009-06-12 17:06     ` Ray Strode

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=4A38F507.4050104@redhat.com \
    --to=riel@redhat.com \
    --cc=adilger@sun.com \
    --cc=elb@psg.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=rstrode@redhat.com \
    --cc=trond.myklebust@fys.uio.no \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.