From: Jeffrey Hutzelman <jhutz@cmu.edu>
To: David Howells <dhowells@redhat.com>
Cc: jhutz@cmu.edu, Hugo Mills <hugo@carfax.org.uk>,
Simon Wilkinson <simonxwilkinson@gmail.com>,
jaltman@your-file-system.com,
"openafs-devel@openafs.org" <openafs-devel@openafs.org>,
linux-btrfs@vger.kernel.org, clm@fb.com
Subject: Re: [OpenAFS-devel] Re: What is needed to build an AFS fileserver on top of BTRFS?
Date: Tue, 17 Dec 2013 13:45:25 -0500 [thread overview]
Message-ID: <1387305925.25257.37.camel@destiny.pc.cs.cmu.edu> (raw)
In-Reply-To: <17945.1387302478@warthog.procyon.org.uk>
On Tue, 2013-12-17 at 17:47 +0000, David Howells wrote:
> Hugo Mills <hugo@carfax.org.uk> wrote:
>
> > > (1) 64-bit data version numbers that increase monotonically with
> > > each write. Yes, this is likely to cause some performance
> > > degredation as it introduces an ordering over data writes and
> > > metadata writes to a file. Maybe writes can be batched to improve
> > > performance?
> >
> > Do these have to be per-file? If not, then you might be able to get
> > away with using the transid, which is a filesystem-global
> > monotonically-increasing number.
>
> Yes. If you send a write RPC op to the server, you get back the new version
> number. If the new version number is not the old version number + 1 you know
> there was a collision with a write from another client and you have to flush
> your cache for that file and request a new "callback" (ie. a promise to notify
> you if someone else changes the file).
Right. So, the DV must increment by exactly one for each successful
StoreData (and not for other changes). This is important because
clients cache data and metadata independently, and cached data is
labeled with the file's DV. This means that even if metadata for a file
has to be refetched for some reason (for example, an expired callback),
the _data_ doesn't have to be refetched unless it has actually changed,
or been evicted from the client's cache due to cache pressure.
-- Jeff
prev parent reply other threads:[~2013-12-17 19:04 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-17 16:53 What is needed to build an AFS fileserver on top of BTRFS? David Howells
2013-12-17 17:07 ` Chris Mason
2013-12-17 17:20 ` Hugo Mills
2013-12-17 17:40 ` David Howells
2013-12-17 18:42 ` [OpenAFS-devel] " Jeffrey Hutzelman
2013-12-17 17:47 ` David Howells
2013-12-17 18:45 ` Jeffrey Hutzelman [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=1387305925.25257.37.camel@destiny.pc.cs.cmu.edu \
--to=jhutz@cmu.edu \
--cc=clm@fb.com \
--cc=dhowells@redhat.com \
--cc=hugo@carfax.org.uk \
--cc=jaltman@your-file-system.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=openafs-devel@openafs.org \
--cc=simonxwilkinson@gmail.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).