From: Matt Mackall <mpm@selenic.com>
To: Valerie Henson <val_henson@linux.intel.com>
Cc: Theodore Tso <tytso@mit.edu>, linux-fsdevel@vger.kernel.org
Subject: Re: [RFC] TileFS - a proposal for scalable integrity checking
Date: Wed, 9 May 2007 15:05:42 -0500 [thread overview]
Message-ID: <20070509200542.GH11115@waste.org> (raw)
In-Reply-To: <20070509190112.GC18778@nifty>
On Wed, May 09, 2007 at 12:01:13PM -0700, Valerie Henson wrote:
> On Sun, Apr 29, 2007 at 08:40:42PM -0500, Matt Mackall wrote:
> > On Sun, Apr 29, 2007 at 07:23:49PM -0400, Theodore Tso wrote:
> > > There are a number of filesystem corruptions this algorithm won't
> > > catch. The most obvious is one where the directory tree isn't really
> > > a tree, but an cyclic graph. What if you have something like this:
> > >
> > > A <----+
> > > / \ |
> > > B C ^
> > > / |
> > > D----->----+
> > >
> > > That is, what if D's parent is B, and B's parent is A, and A's parent
> > > is... D? Assume for the sake of argument that each inode, A, B, C, D,
> > > are in separate tiles.
> >
> > From the original message:
> >
> > Inodes have a backpointer to a directory that links them. Hardlinked
> > files have two extra inode pointers in the directory structure, to
> > the previous and next directories containing the link. Hardlinked
> > inodes have a checksum of the members of that list.
> >
> > When we check directory D, D's inode has a backpointer (which had
> > better match ".." in the directory itself if we keep that
> > redundancy!). If we can follow this back to root (using a standard
> > two-pointer cycle detection algorith), we have no cycle. As we also
> > check that every inode pointed to by directory D also points back to
> > D, any deviation from a valid tree can be detected.
> >
> > And again, a small cache of inodes known to be properly rooted will
> > save a lot of checks.
>
> I really, really like this idea. I wonder how hard it would be to
> prototype on something like ext3. Any bored grad students listening?
It should be pretty straightforward as mods to filesystems go. Most of
the work is in shimming the tile read/write layer under the rest of
the FS with helper functions and teaching the file I/O code to pass
down the reverse pointers to the tile layer.
Truncate/rm will also have to null out reverse references on tiles,
but that can be done at the same time bits are fixed up in the block
bitmaps.
Fixing up directories to record the hardlink ring should be easier.
--
Mathematics is the supreme nostalgia of our time.
prev parent reply other threads:[~2007-05-09 20:05 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-28 22:05 [RFC] TileFS - a proposal for scalable integrity checking Matt Mackall
2007-04-29 12:21 ` Jörn Engel
2007-04-29 12:57 ` Matt Mackall
2007-04-29 15:47 ` Jörn Engel
2007-05-09 5:56 ` Valerie Henson
2007-05-09 10:12 ` Jörn Engel
2007-04-29 15:58 ` Jörn Engel
2007-04-29 16:24 ` Matt Mackall
2007-04-29 16:34 ` Andi Kleen
2007-04-29 16:05 ` Jörn Engel
2007-04-29 16:09 ` Matt Mackall
2007-04-29 23:23 ` Theodore Tso
2007-04-30 1:40 ` Matt Mackall
2007-04-30 17:26 ` Theodore Tso
2007-04-30 17:59 ` Matt Mackall
2007-05-02 13:18 ` Jörn Engel
2007-05-02 13:32 ` Jörn Engel
2007-05-02 15:37 ` Matt Mackall
2007-05-02 16:35 ` Jörn Engel
2007-05-09 7:56 ` Valerie Henson
2007-05-09 11:16 ` Nikita Danilov
2007-05-09 18:56 ` Valerie Henson
2007-05-09 19:19 ` Nikita Danilov
2007-05-09 17:06 ` Matt Mackall
2007-05-09 18:59 ` Valerie Henson
2007-05-09 19:51 ` Matt Mackall
2007-05-10 0:03 ` Jörn Engel
2007-05-11 9:46 ` Valerie Henson
2007-05-11 15:55 ` Matt Mackall
2007-05-09 19:01 ` Valerie Henson
2007-05-09 20:05 ` Matt Mackall [this message]
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=20070509200542.GH11115@waste.org \
--to=mpm@selenic.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=tytso@mit.edu \
--cc=val_henson@linux.intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).