From: Alex Zhuravlev <Alex.Zhuravlev@Sun.COM>
To: lustre-devel@lists.lustre.org
Subject: [Lustre-devel] global epochs [an alternative proposal, long and dry].
Date: Mon, 22 Dec 2008 20:36:32 +0300 [thread overview]
Message-ID: <494FD020.70909@sun.com> (raw)
In-Reply-To: <18767.52005.485425.412677@gargle.gargle.HOWL>
Nikita Danilov wrote:
> > well, I think it does as you don't want to use epoch received few minutes ago with lock.
>
> What is the problem with this?
the problem is that this epoch may hold lots of other epochs? this may be especially
important for fsync(2) or any synchronous request.
> Any IO mechanism has to guarantee that operations are "serializable",
> that is, no circular dependencies exist. This is what global epochs
> need, they don't depend on DLM per se.
global epochs depend on DLM as a transport to refresh epochs. at least the idea, AFAIU,
is to use LDLM RPC to carry epoch protocol. otherwise it'd need separate RPC. I'm just
saying that there are case, probably important, when such explicit RPC will be needed,
probably in nearly-sync manner. I think this is also additional complexity.
> > the problem is that with out-of-order epochs sent to different servers client can't
> > use notion of "last_committed" anymore.
>
> What do you mean by "out of order" here?
epoch N+1 can be committed by mds1 before epoch N is committed by mds2. each such
epoch is to be tracked separately and "last_committed" can't be used I think.
additional complexity in the protocol.
> > the bad think, IMHO, in all this is that all nodes making decision must
> > understand topology. server should separate epochs from different clients,
> > it's hard to send batches via some intermediate server/node.
>
> Hm.. I would think that this is very easy, thanks to the good properties
> of the minimum function (associativity, commutativity, etc.): client
> piggy-backs its earliest volatile epoch to any message it sends to any
> server, and server batches these data from clients and forwards them to
> SC.
1) if epoch isn't bound to some node, then it's also can be hard to push epochs
to implement fsync(2)
2) batching means additional delay
> I agree with this, but I am not sure this is a problem. If client is
> idle for seconds, pinging is not a big deal.
I tend to think ping can be a problem at proper scale. I wouldn't rely on this.
> Presicely the contrary: MIN_VOLATILE message returns something
> equivalent to the cluster-wide global last_committed.
you meant "from sc" direction. but before that client has to track local committness
of each epoch to servers.
thanks, Alex
next prev parent reply other threads:[~2008-12-22 17:36 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-22 7:53 [Lustre-devel] global epochs [an alternative proposal, long and dry] Nikita Danilov
2008-12-22 11:52 ` Alex Zhuravlev
2008-12-22 12:45 ` Nikita Danilov
2008-12-22 13:48 ` Alexander Zarochentsev
2008-12-22 14:21 ` Nikita Danilov
2008-12-22 14:45 ` Alex Zhuravlev
2008-12-22 14:44 ` Alex Zhuravlev
2008-12-22 17:15 ` Nikita Danilov
2008-12-22 17:36 ` Alex Zhuravlev [this message]
2008-12-22 18:57 ` Nikita Danilov
2008-12-23 6:44 ` Alex Zhuravlev
2008-12-23 10:00 ` Nikita Danilov
2008-12-23 10:21 ` Alex Zhuravlev
2008-12-23 11:06 ` Nikita Danilov
2008-12-23 11:31 ` Alex Zhuravlev
2008-12-23 12:50 ` Nikita Danilov
2008-12-23 13:11 ` Alex Zhuravlev
2008-12-23 13:24 ` Nikita Danilov
2008-12-24 10:32 ` Alex Zhuravlev
2008-12-24 11:37 ` Nikita Danilov
2008-12-26 9:01 ` Alex Zhuravlev
2008-12-23 23:37 ` Andreas Dilger
2008-12-24 12:35 ` Eric Barton
2008-12-24 16:16 ` Nikita Danilov
2009-01-15 23:40 ` [Lustre-devel] global epochs vs fsync Alex Zhuravlev
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=494FD020.70909@sun.com \
--to=alex.zhuravlev@sun.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.