All of lore.kernel.org
 help / color / mirror / Atom feed
* [Lustre-devel] statahead feature
@ 2008-07-24 10:19 Alex Zhuravlev
  2008-07-24 11:35 ` Alex Lyashkov
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Alex Zhuravlev @ 2008-07-24 10:19 UTC (permalink / raw)
  To: lustre-devel

Hi,

due to some experiments with dcache related code we've been doing with shadow
and others, it became clear that statahead code is quite complicated. probably
for no reason. the most hard part to follow is interaction with dcache. the
feature does number of complex things and make other parts (like ll_lookup_it())
harder to follow too.

after amount of discussions with people we'd like to share our vision on the
feature and propose slightly different solution.

we think statahead should do nothing with dcache. it's about inodes and attributes
only. thus, it would be good to decouple it from dcache. the only thing statahead
should do is:
1) detect statahead is needed (policy, out of the message's scope)
2) scan part of directory (probably using readdir(), skip RPCs)
3) finds/creates inodes for found fids
4) lock these inodes (notice we propose to use inodes as a serialization point
    so that lockless getattr can be used)
5) issue getattr RPCs (probably lockless)
6) unlock inodes upon getattr's completion

then stat(2) is called, it first has to lookup fid by name. for this we can use
pagecache just filled with MDS_READDIR. if directory isn't being modified at the
time, then entries will be there and we can create dentries in the dcache. they
will be valid till UPDATE lock is cancelled - no even LOOKUP lock is needed.


another possible thing for optimization is lockless getattr. given most of supported
kernel don't pass intent to ->getattr(), it's possible that stat(2) needs two RPCs:
one in ll_lookup_it() and another in ll_getattr_it() as lock is released between them.
stat(2) gives no warranty about attributes, it gives a shot of them. attributes can
change right before userspace application get them. so, why don't we introduce some
simple mechanism making attributes valid for short time at least for process executed
lookup. this could help statahead as well, we think.

comments? suggestions?

thanks, Alex

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2008-07-28 22:02 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-24 10:19 [Lustre-devel] statahead feature Alex Zhuravlev
2008-07-24 11:35 ` Alex Lyashkov
2008-07-24 16:27 ` Peter Braam
2008-07-24 18:56   ` Alex Zhuravlev
2008-07-25  4:34 ` Yong Fan
2008-07-25  4:41   ` Alex Zhuravlev
2008-07-25  5:04     ` Ragnar Kjørstad
2008-07-25  5:17       ` Alex Zhuravlev
2008-07-28 22:02       ` Andreas Dilger
2008-07-25  9:37     ` Alex Lyashkov
2008-07-25 12:29       ` Alex Zhuravlev
2008-07-25 19:41       ` Andreas Dilger
2008-07-25 19:50         ` Alex Zhuravlev
2008-07-25  4:44   ` Alex Zhuravlev

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.