[Lustre-devel] Queries regarding LDLM_ENQUEUE

Andreas Dilger andreas.dilger at oracle.com
Wed Oct 20 10:00:53 PDT 2010


On 2010-10-20, at 10:46, Paul Nowoczynski <pauln at psc.edu> wrote:
> 
>> The name_to_handle() only needs to be called on a single node, and open_by_handle() is called on the other nodes. I agree that this doesn't avoid the full O(n) RPCs for the open itself  but at least it does avoid the full path traversal from every client and on the MDS (replacing it with an MPI broadcast of the handle).
> 
> excuse my ignorance, but why does open_by_handle() need to issue an RPC?  If it's to obtain the layout, couldn't the layout be encoded into the 'handle'?

In theory, yes. Practically, there is a size limit on the handle, and in large filesystems the layout is larger than this limit. 

Also, it depends on whether we want the MDS to have consistent behavior with the resulting open file descriptor or not.

I suppose in many cases it would be possible to fake out an open file on the client without telling the MDS, but then there will be strange problems in some cases (e.g. stat() of the file, errors on close, etc.) that would result since the MDS won't know anything about the other openers. Maybe that is acceptable, I don't know. 

Cheers, Andreas


More information about the lustre-devel mailing list