From: Chris Mason <chris.mason@oracle.com>
To: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Cc: Sage Weil <sage@newdream.net>,
btrfs-devel@oss.oracle.com, Zach Brown <zach.brown@oracle.com>,
linux-btrfs@vger.kernel.org
Subject: Re: [Btrfs-devel] transaction ioctls
Date: Wed, 23 Apr 2008 09:07:28 -0400 [thread overview]
Message-ID: <200804230907.28640.chris.mason@oracle.com> (raw)
In-Reply-To: <20080423125754.GA31257@2ka.mipt.ru>
On Wednesday 23 April 2008, Evgeniy Polyakov wrote:
> Hi Chris.
>
> On Wed, Apr 23, 2008 at 08:50:54AM -0400, Chris Mason
(chris.mason@oracle.com) wrote:
> > Transaction rollback from a filesystem point of view is a reboot. Real
> > database style transactions with rollback and isolation from other procs
> > etc etc are outside the scope of Btrfs.
>
> Why rollback is a reboot? With copy-on-write it could be possible to
> just commit tree state, which was before transaction start, as a current
> one and thus rollback all changes. Having that possibility from
> userspace could be a great benefit, since in case of application error
> it is relly simple to undo all changes.
Oh, from a filesystem point of view it is very simple to undo changes,
especially with COW. We've got snapshots and we can pull old copies from an
old snapshot etc etc.
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.
There are definitely cases where the admin will want to be able to run a
command to shift the FS state back to some time in the past. But, it needs
to be an admin level tool where the complex interactions between procs are
well understood (by the admin).
-chris
next prev parent reply other threads:[~2008-04-23 13:07 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 [this message]
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
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=200804230907.28640.chris.mason@oracle.com \
--to=chris.mason@oracle.com \
--cc=btrfs-devel@oss.oracle.com \
--cc=johnpol@2ka.mipt.ru \
--cc=linux-btrfs@vger.kernel.org \
--cc=sage@newdream.net \
--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.