From: Andreas Dilger <adilger@clusterfs.com>
To: Bryan Henderson <hbryan@us.ibm.com>
Cc: Jan Hudec <bulb@ucw.cz>,
linux-fsdevel@vger.kernel.org,
Richard Sharpe <rsharpe@richardsharpe.com>,
samba-technical@samba.org, Steven French <sfrench@us.ibm.com>,
Lustre Development Mailing List
<lustre-devel@lists.sourceforge.net>
Subject: Re: fixing redundant network opens on Linux file creation
Date: Mon, 6 Jan 2003 14:31:04 -0700 [thread overview]
Message-ID: <20030106143104.L31555@schatzie.adilger.int> (raw)
In-Reply-To: <OF67125828.C6A675A8-ON87256CA6.0069A3BC-88256CA6.006C0A33@us.ibm.com>; from hbryan@us.ibm.com on Mon, Jan 06, 2003 at 11:42:26AM -0800
On Jan 06, 2003 11:42 -0800, Bryan Henderson wrote:
> >There is a lookup intent patch from lustre group. It can be found
> >somewhere in the archives. Pushing that (or something along that lines)
> >to mainline and using that would be IMHO most beneficial
>
> "Intent," as it's generally understood, is not a promise of future activity
> -- it's either a hint to improve efficiency or it's a promise to restrict
> future activity, but it should be possible simply to bail out before
> exercising that intent. E.g. you can't open a file at the same time as it
> is looked up just because the looker upper says he intends to open it
> later.
In our code, the lookup-with-intent actually performs both of the operations
on the server, and it is up to the client methods to detect that the operation
was done and deal with it appropriately. We have very well-tested code for
2.4 and 2.5 code is mostly functional (2.5 is a lot neater implementation but
the changes mean that it isn't yet as functional as the 2.4 code).
In the Lustre code, the premise is that the lookup-with-intent operation
(called lookup2 for now) does one of:
1) the lookup + operation on the server in one RPC (i.e. lookup+create[+open],
lookup+unlink, lookup+rename) and tells the client "I just did this
for you, here are the attributes of the new entry and a lock on it if
necessary, please fix up your local state to match", and the actual VFS
operations are only doing the post-facto state cleanup.
2) OR it returns a lock to the client that grants the client exclusive
control over the item(s) in question (normally the parent dir(s)) and
lets the client do the operations locally and send the operations to
the server separately.
We currently implement (1) only right now, but the goal is to implement
(2) in the future (which would be back to nearly what the VFS currently
does, except that we are now granted the locks in advance) so that
a client can do many operations locally without the need for getting
lots of locks. For example, in the future, a Lustre client creating a new
directory could be granted the lock on that directory, and it could then
create files in that directory without further RPCs to the server very
efficiently (e.g. untarring a file) until another client revokes the
lock(s) and forces the client to flush all of its updates to the server.
For an updated version of the intent patch, see:
ftp://ftp.lustre.org/pub/kernels/patches/2.4.18-hp1_pnnl18_l5.patch
ftp://ftp.lustre.org/pub/kernels/patches/37chaos-l5.patch
The first patch is good for vanilla kernels, and the second for RH
2.4.18-17ish kernels. There is a bit of extra stuff therein which
isn't really related to the intent changes.
Cheers, Andreas
PS - I've added lustre-devel to this thread so that the Lustre developers
also see any discussion related to the intent changes.
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://www-mddsp.enel.ucalgary.ca/People/adilger/
next prev parent reply other threads:[~2003-01-06 21:31 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-06 17:25 fixing redundant network opens on Linux file creation Steven French
2003-01-06 18:14 ` Richard Sharpe
2003-01-06 17:59 ` Jan Hudec
2003-01-06 19:42 ` Bryan Henderson
2003-01-06 19:56 ` Jan Harkes
2003-01-06 21:58 ` Bryan Henderson
2003-01-06 21:31 ` Andreas Dilger [this message]
2003-01-06 22:23 ` Bryan Henderson
2003-01-06 22:48 ` Andreas Dilger
2003-01-07 1:06 ` Bryan Henderson
2003-01-07 13:19 ` [Lustre-devel] " Mike Shaver
2003-01-07 17:28 ` Bryan Henderson
2003-01-07 18:50 ` Andreas Dilger
2003-01-08 17:52 ` Bryan Henderson
2003-01-08 19:11 ` Peter Braam
2003-01-09 2:08 ` Bryan Henderson
2003-01-09 3:36 ` Peter Braam
2003-01-06 22:18 ` Marcos Dione
2003-01-07 9:35 ` Jan Hudec
-- strict thread matches above, loose matches on Subject: below --
2003-01-06 18:46 Steven French
2003-01-06 19:26 ` Richard Sharpe
2003-01-06 20:29 ` Richard Sharpe
2003-01-06 20:50 Steven French
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=20030106143104.L31555@schatzie.adilger.int \
--to=adilger@clusterfs.com \
--cc=bulb@ucw.cz \
--cc=hbryan@us.ibm.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=lustre-devel@lists.sourceforge.net \
--cc=rsharpe@richardsharpe.com \
--cc=samba-technical@samba.org \
--cc=sfrench@us.ibm.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).