[Lustre-devel] Queries regarding LDLM_ENQUEUE
Andreas Dilger
andreas.dilger at oracle.com
Wed Oct 20 09:07:35 PDT 2010
Note that I was in contact with the HECEWG also, and openg() was proposed to be renamed to be more understandable.
The current Linux name_to_handle() proposal could be used to export an blob identifier (file handle that holds a FID, fs UUID, and a cookie/capability in the Lustre case) to userspace, then MPI-IO or some other mechanism can be used to distribute this to other client processes and open_by_handle() to convert this back into a file handle.
One question is whether mpi_open() could be used for a collective operation (allowing this to be handled inside the Lustre ADIO layer) or if it would need specific application support?
Cheers, Andreas
On 2010-10-20, at 9:16, Paul Nowoczynski <pauln at psc.edu> wrote:
> Yes! I think I was at this HEC meeting a few years ago?? :)
> Here are the pointers to the manpages if anyone else is interested.
> http://www.opengroup.org/platform/hecewg/
>
> So my question wasn't so much about the interface which is why I posed a
> scenario based on MPI. But rather, how feasible is it to import the
> necessary state the from the client issuing openg() to the rest?
> paul
>
>
> Nicolas Williams wrote:
>> On Wed, Oct 20, 2010 at 10:51:06AM -0400, Paul Nowoczynski wrote:
>>
>>> Eric makes a good point in that only parallel jobs really need this
>>> feature. Unfortunately, at scale the system (both clients and servers)
>>> *really do* need something like this, especially if we continue pushing
>>> users to perform N-1 file I/O instead of 'file per process'. I too am in
>>> agreement that some sort of capability mechanism is the best approach. I
>>> wonder if this is something that could be done outside of POSIX and
>>> supported through a parallel I/O library? Perhaps a single application
>>> threads could make a special open call (/proc magic perhaps?) and obtain
>>> the glob of opaque bytes which are then broadcast to the rest of the
>>> client via mpi. Traversing the namespace would be avoided on all but one
>>> client. In such a scenario I don't feel that enforcing unix permissions
>>> at every level of the path is needed or sensible, the operation should
>>> be treated as a simple logical open. The question to the lustre experts
>>> - can enough state be packed into an opaque object such that the
>>> recv'ing client can construct the necessary cache state?
>>>
>>
>> POSIX already has what you're asking for, and it's called openg() ;)
>>
>
> _______________________________________________
> Lustre-devel mailing list
> Lustre-devel at lists.lustre.org
> http://lists.lustre.org/mailman/listinfo/lustre-devel
More information about the lustre-devel
mailing list