Brent Welch | 5 Dec 2005 20:19
X-Face
Favicon

Re: pNFS -layouts and byte ranges

OSDv1 does not have byte-range granularity of its capabilities,
but we can still use capabilities to enforce mandatory byte range
locks.  However, it obviously limits the file to one writer at
a time; you cannot use OSDv1 capabilities to enforce mandatory locks
where two different clients are simultaneously writing to two
different regions of the file.  The metadata server will have to
drive this via CB_LAYOUTRECALL.

I would just note this limitation and move on.  I don't expect a lot
of mandatory lock usage, and I am content to wait for OSDv2 and
its (proposed) byte range capabilities to optimize this scenario.

I think it is much more likely that clients will use advisory byte
range locks, and that they will self-enforce those locks without
any help from the data servers, just like they do today.  The metadata
server will coordinate the lock requests, but the clients do
the enforcement.
>>>Todd Pisek said:
 > 
 > 
 > 
 > Garth Goodson wrote On 12/05/05 11:46 AM,:
 > > Todd Pisek wrote:
 > > 
 > >>OK, I think I now understand this. If a client wants a mandatory lock, 
it
 > >>needs to issue LOCK, then issue LAYOUTGET (probably as a compound). 
Correc
     t?
 > >>
 > > 
 > > The goal was for pNFS layout ops to be separate from delegation and 
lock
 > > ops.  Thus, at least for file-based layouts, there is no 
correspondence
 > > between LOCK and LAYOUTGET.  It doesn't matter the order you do them 
in.
 > >   Whenever the LOCK completes you have the LOCK, whenever the 
LAYOUTGET
 > > completes you have the layout.  The client can pick how it makes sense 
 > > to order them.
 > > 
 > 
 > I believe the only way an OSD can enforce byte range access is through
 > a capability. Version 1 of the OSD spec does not specify how this is 
done.
 > My understanding is that this ability is in OSD version 2, which is not
 > yet finalized.
 > 
 > It appears that the only mechanism by which OSD capabilities can be 
conveyed
 > to the client is via the LAYOUTGET response.
 > 
 > I don't understand how mandatory locking can be accomplished without 
using
 > LOCK in combination with LAYOUTGET in the OSD case.
 > 
 > I do understand that OSD pNFS can obtain an segment that is enforced by 
the
 > OSD without using LOCK. But if I remember correctly, the result of 
LAYOUTGET
 > does not imply a range delegation or a range lock.
 > 
 > 
 > --- Todd
 > 
 > 
 > 
 > 
 > _______________________________________________
 > nfsv4 mailing list
 > nfsv4 <at> ietf.org
 > https://www1.ietf.org/mailman/listinfo/nfsv4
 > 
 > 

--
Brent Welch
Software Architect, Panasas Inc
Accelerating Time to Results(tm) with Clustered Storage

www.panasas.com
welch <at> panasas.com

_______________________________________________
nfsv4 mailing list
nfsv4 <at> ietf.org
https://www1.ietf.org/mailman/listinfo/nfsv4


Gmane