All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bron Gondwana <brong@fastmail.fm>
To: Chris Mason <chris.mason@oracle.com>
Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru>,
	btrfs-devel@oss.oracle.com, Zach Brown <zach.brown@oracle.com>,
	linux-btrfs@vger.kernel.org
Subject: Re: [Btrfs-devel] transaction ioctls
Date: Thu, 24 Apr 2008 09:52:08 +1000	[thread overview]
Message-ID: <20080423235208.GA6120@brong.net> (raw)
In-Reply-To: <200804230923.03752.chris.mason@oracle.com>

On Wed, Apr 23, 2008 at 09:23:03AM -0400, Chris Mason wrote:
> On Wednesday 23 April 2008, Evgeniy Polyakov wrote:
> > On Wed, Apr 23, 2008 at 09:07:28AM -0400, Chris Mason 
> (chris.mason@oracle.com) wrote:
> > > But, userland expects things not to be undone.  Picture two procs
> > > operating in a directory.  One proc calls fsync and gets assurance from
> > > the FS that things are on disk.  The other proc calls rollback and undoes
> > > the fsync.  The posix API isn't built around this.
> >
> > Rollback happens on transaction, so first application called fsync in
> > own trasaction, which flushed data to disk, while second thread has own
> > trasaction, and that data will be removed, while data written in first
> > transaction is still on disk.
> 
> The kind of logging this requires is outside the scope of Btrfs ;)  It is 
> possible if both procs are running in different tree roots, but how about:
> 
> proc A: mkdir dir1
> proc A: create dir1/file1
> proc B: add data to dir1/file1
> proc B: fsync dir1/file1
> proc A: rollback
> 
> Filesystems can be databases, but not with the current APIs.  Userland simply 
> isn't built around these semantics today.

proc A: mkdir dir1
proc A: create dir1/file1
proc B: add data to dir1/file1
proc B: fsync dir1/file1
proc A: unlink dir1/file1
proc A: rmdir dir1

I don't see the difference.

Bron.

  parent reply	other threads:[~2008-04-23 23:52 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.LNX.4.64.0804221210130.23551@cobra.newdream.net>
2008-04-22 20:29 ` [Btrfs-devel] transaction ioctls Zach Brown
2008-04-22 20:41   ` Chris Mason
2008-04-22 20:52     ` Sage Weil
2008-04-22 20:55       ` Chris Mason
2008-04-22 20:56         ` Sage Weil
2008-04-22 21:05         ` Evgeniy Polyakov
2008-04-23 12:50           ` Chris Mason
2008-04-23 12:57             ` Evgeniy Polyakov
2008-04-23 13:07               ` Chris Mason
2008-04-23 13:15                 ` Evgeniy Polyakov
2008-04-23 13:23                   ` Chris Mason
     [not found]                   ` <200804230923.03752.chris.mason@oracle.com>
2008-04-23 16:21                     ` Evgeniy Polyakov
2008-04-23 17:15                       ` Chris Mason
2008-04-23 23:52                     ` Bron Gondwana [this message]
2008-04-24 13:06                       ` Chris Mason
     [not found]                       ` <200804240906.54788.chris.mason@oracle.com>
2008-04-27 10:55                         ` Bron Gondwana
2008-04-23 17:12                 ` btrfs-devel
2008-04-22 20:32 ` Chris Mason
2008-04-22 20:48   ` Sage Weil

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=20080423235208.GA6120@brong.net \
    --to=brong@fastmail.fm \
    --cc=btrfs-devel@oss.oracle.com \
    --cc=chris.mason@oracle.com \
    --cc=johnpol@2ka.mipt.ru \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=zach.brown@oracle.com \
    /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.