All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Phillips <phillips@phunq.net>
To: tux3@tux3.org
Cc: Martin Steigerwald <Martin@lichtvoll.de>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Justin P. Mattock" <justinmattock@gmail.com>
Subject: Re: [Tux3] Tux3 report: A Golden Copy
Date: Fri, 2 Jan 2009 14:45:36 -0800	[thread overview]
Message-ID: <200901021445.37062.phillips@phunq.net> (raw)
In-Reply-To: <200901022117.24504.Martin@Lichtvoll.de>

On Friday 02 January 2009 12:17, Martin Steigerwald wrote:
> Am Mittwoch 31 Dezember 2008 schrieb Justin P. Mattock:
> > I guess this is what is confusing to me:
> > atomic commit, btree-based versioning.
> 
> Ah, the buzz words. ;)
> 
> The tux3 mailing list contains quite some design notes about these 
> concepts. I think others can give better answers about these concepts - I 
> think I understood what it is for, not the implementation details. But 
> basically "atomic commit" is a strategy to have the filesystem always in 
> a consistent state

Right.  Atomic commit is a term that came from the database world and
was first applied to filesystems in an LKML message from Victor
Yodaiken back in 1998 as I dimly recall, and I adopted it to describe
the tree ased atomic update strategy I was developing for Tux2 at the
time.  Tux3 uses a new logging variant that is supposed to avoid the
write-twice behaviour of journalling and the recursive copy behavior of
WAFL, ZFS and Btrfs, so should be pretty good at synchronous write
loads and generally reduce write traffic.

> and btree-based versioning allows to keep different  
> versions of a file / directory around. And unlike other filesystem tux3  
> has this per inode and not for the complete filesystem. At least if I 
> understand correctly.

You do.

"Btree-based" and "versioning" are separate buzzwords.  Tux3 is a btree
of btrees: the inode table is a btree, containing files that are
btrees.  It was conceived to demonstrate a new method of versioning
files that puts the versioning information at the btree leaves instead
of having multiple independently rooted trees sharing subtrees:

   Versioned pointers: a new method of representing snapshots
   http://lwn.net/Articles/288896/

This approach lends itself to per-object versioning: each data pointer
and each inode attribute has its own version label.  Making it work
per file and even per directory is a matter of clever mapping tricks to
turn global version numbers into per pointer version numbers.

But note that versioning support is still just a nice demo: the focus
has shifted to Tux3 as general purpose filesystem, with versioning
seen as a feature to be integrated after the basic Ext3-class
functionality is solid and reviewed.

> But at least it should clear that tux3 is a filesystem and not a video 
> game ;).

It's kind of like a video game where you sneak through IRC channels
trying to frag bugs with your BFG.

Regards,

Daniel

  parent reply	other threads:[~2009-01-02 22:45 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-31  3:35 Tux3 report: A Golden Copy Daniel Phillips
2008-12-31  3:35 ` Daniel Phillips
2008-12-31  7:34 ` sniper
2008-12-31  8:00   ` [Tux3] " Daniel Phillips
2008-12-31  8:14     ` Justin P. Mattock
2008-12-31 10:09       ` Martin Steigerwald
2008-12-31 17:41         ` Justin P. Mattock
2008-12-31 17:41           ` Justin P. Mattock
2009-01-02 20:17           ` [Tux3] " Martin Steigerwald
2009-01-02 20:36             ` Justin P. Mattock
2009-01-02 20:36               ` Justin P. Mattock
2009-01-02 22:45             ` Daniel Phillips [this message]
2009-01-02 23:11               ` [Tux3] " Justin P. Mattock
2009-01-03  1:19                 ` Daniel Phillips
2009-01-03  1:19                   ` Daniel Phillips
2009-01-03  1:32                   ` [Tux3] " Justin P. Mattock
2009-01-03  1:32                     ` Justin P. Mattock
2009-01-03  3:03                     ` [Tux3] " Daniel Phillips
2009-01-03  3:39                       ` Justin P. Mattock
2009-01-04  3:17                         ` Jamie Lokier
2009-01-04  4:15                           ` Daniel Phillips
2009-01-04  4:29                           ` Justin P. Mattock
2009-01-04 13:04                           ` Theodore Tso
2009-01-05  1:10                             ` Daniel Phillips
2009-01-05  2:13                               ` Jamie Lokier
2009-01-08  2:50                                 ` Daniel Phillips
2009-01-08  4:38                                   ` Evgeniy Polyakov
2008-12-31  8:16     ` sniper
2008-12-31  8:31     ` Dave Chinner
2008-12-31  9:40       ` Daniel Phillips
2008-12-31 14:26         ` Andi Kleen
2008-12-31 18:14         ` sniper
2008-12-31 18:18           ` sniper
2008-12-31 18:18             ` sniper
2009-01-01  9:56           ` [Tux3] " Daniel Phillips
2009-01-01 14:46             ` Daniel Phillips
2009-01-01 23:58           ` Dave Chinner

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=200901021445.37062.phillips@phunq.net \
    --to=phillips@phunq.net \
    --cc=Martin@lichtvoll.de \
    --cc=justinmattock@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tux3@tux3.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 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.