From: Eric Barton <eeb@whamcloud.com>
To: lustre-devel@lists.lustre.org
Subject: [Lustre-devel] changelog for whole filesystem?
Date: Thu, 11 Nov 2010 12:10:32 -0600 [thread overview]
Message-ID: <006901cb81cb$bb90e310$32b2a930$@com> (raw)
In-Reply-To: <73AED5C780AE05478241DB067651A92101D11E83@XYUS-EX22.xyus.xyratex.com>
Nathan wrote...
> This same "initial population of a database from objects" problem
> occurs when trying to replicate a Lustre filesystem using the
> changelog.
That must be a great test case. If we can reliably reconstruct an
exact replica using a "from empty" changelog, we must have got it
right :)
> The problem is actually more complicated even for a single changelog
> consumer: since iterating through the virtual changelog takes non-0
> time, you're not sure if a virtual record was created before or
> after an actual changelog entry. E.g. you might try to resolve the
> name of a file for a virtual record either before or after a rename,
> and then later you would see the rename in the changelog, leading to
> an inconsistent view of the namespace.
>
> If you don't care about having the exact right name, then it's easy
> enough to ignore inapplicable changelog records.
I was trying to hint at the need to filter changes for individual
consumers depending on how far through the initial "from empty"
iteration they are in my original post. Andreas stated it more
explicitly. I think you just need to enumerate the cases - e.g. for
rename...
Iterated over yet? Record
Source Inode Target Inode emitted
no no none
no yes delete target
yes yes rename source + delete target
yes no rename source
The final case just looks like a rename where the target name didn't
exist already. In any case, the only real requirement on the stream
of changelog records constructed in the initial iteration is that
consistent filesystem state be reconstructed after the last record
is consumed.
--
Cheers,
Eric
Eric Barton
CTO Whamcloud, Inc.
Tel: +44 117 330 1575
Mob: +44 7920 797 273
next prev parent reply other threads:[~2010-11-11 18:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-27 13:06 [Lustre-devel] changelog for whole filesystem? Andreas Dilger
2010-10-27 13:17 ` bzzz.tomas at gmail.com
2010-10-28 9:04 ` Andreas Dilger
2010-10-27 15:28 ` LEIBOVICI Thomas
2010-10-28 9:15 ` Andreas Dilger
2010-10-28 13:43 ` LEIBOVICI Thomas
2010-10-29 16:50 ` Eric Barton
2010-11-02 6:42 ` Andreas Dilger
2010-11-11 4:15 ` Nathan Rutman
2010-11-11 18:10 ` Eric Barton [this message]
2010-11-12 23:41 ` Robert Read
2010-11-12 23:58 ` Andreas Dilger
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='006901cb81cb$bb90e310$32b2a930$@com' \
--to=eeb@whamcloud.com \
--cc=lustre-devel@lists.lustre.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.