From: Andreas Dilger <adilger@sun.com>
To: lustre-devel@lists.lustre.org
Subject: [Lustre-devel] Reducing amount of glimpses
Date: Sat, 02 Feb 2008 00:40:54 -0700 [thread overview]
Message-ID: <20080202074054.GA23836@webber.adilger.int> (raw)
In-Reply-To: <D9759C99-E435-403A-88D0-3428F44E8E6F@Sun.COM>
On Feb 02, 2008 02:00 -0500, Oleg Drokin wrote:
> On Feb 2, 2008, at 1:39 AM, Eric Barton wrote:
> > Reduction (as you describe) is an absolutely essential strategy
> > to achieve scalability. So without having checked through all the
> > details of your idea, it feels like absolutely the right solution.
>
> Yes, I just afraid that a bit stale size data might be reported, and
> not yet sure how critical is that to us.
A glimpse enqueue is already inherently racy, so I don't think this
is a serious problem.
> > If your idea not only changes latencies but also significant
> > orderings, I'll feel less secure. Have you thought it all through?
>
> There is no ordering changes other than I would think perfectly normal
> race. Let me explain with a control flow:
>
> client3 holds highest write lock. clients 1 and 2 do glimpse.
> Right now (racy scenario):
>
> client 1 sends glimpse->server on its behalf sends glimpse ast to
> client3 -> client3 receives ast, sends reply
> client 2 sends glimpse->server on its behalf sends glimpse ast to
> client3 ->
> client3 writes some more data
> glimpse on behalf of client2 arrives to client3 -> client3 sends in
> updated size
> server now sends different sizes back to client 1 and client2.
>
> If we consolidate, it will look like this:
> client 1 sends glimpse->server on its behalf sends glimpse ast to
> client3 -> client3 receives ast, sends reply
> client 2 sends glimpse->server notices there is glimpse ast in flight
> already to client3, and waits for it
> client3 writes some more data
> server receives reply and sends identical sizes to client1 and client2.
>
> I tend to think this is normal race (kind of like with 2 processes
> doing stat on a local file and 3rd writing to file constantly,
> it is possible that when two stats are done closely apart, they would
> come with identical size), but just want to check if
> there are no objections about it.
The uses of glimpse are only in a few cases:
- ls -l (inherently racy)
- read
- write
In the read and write cases the glimpse return is used to detemine if the
file size is before or after the given client's lock. Since the client
that is getting the glimpse is holding the EOF lock this can't change the
relative positions of the locks.
Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.
next prev parent reply other threads:[~2008-02-02 7:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-02 6:26 [Lustre-devel] Reducing amount of glimpses Oleg Drokin
2008-02-02 6:39 ` Eric Barton
2008-02-02 7:00 ` Oleg Drokin
2008-02-02 7:40 ` Andreas Dilger [this message]
2008-02-02 11:22 ` Nikita Danilov
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=20080202074054.GA23836@webber.adilger.int \
--to=adilger@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.