[Lustre-devel] Role of the Metadata Server during File I/O

Oleg Drokin Oleg.Drokin at Sun.COM
Thu Aug 13 11:00:55 PDT 2009


On Aug 11, 2009, at 1:24 PM, office at hailoo.com wrote:

> Thanks for the information.  Doesn't this entail that for every call  
> to write() involving a striped file, Lustre must necessarily consult  
> all OSSs, in order to determine 1) the file size and 2) if the  
> current write operation will extend the file?

Why does write need to know the entire file size? We only care if we  
are extending currently accessed stripe. We know this the moment we  
obtained the lock on
the stripe region we are interested in.
> If so, then I think it would be advisable for Lustre clients working  
> with striped files to avoid small unbuffered file writes, since  
> every call to write() requires a lot of network overhead.

It is indeed not advisable to use small unbuffered writes (though we  
relieved the situation somewhat), but not because of the network  
overhead, rather the lustre
code is not exactly light-weight doing thelock processing and lookup  
and stuff.
I remember when LLNL performed experiments, and 4 byte unbuffered  
writes were 100 times slower than 1M writes.
But since then we improved the situation and I am no longer sure how  
these compare.


More information about the lustre-devel mailing list