[OpenAFS-win32-devel] New client-side locking implementation

Matt Benjamin matt@linuxbox.com
Fri, 29 Jul 2005 09:31:16 -0400


Jeffrey Altman wrote:

>Eric Williams wrote:
>  
>
>Eric:
>
>I wanted to come back to this portion of the thread for a few minutes.
>Given that the Windows locking model is "mandatory", do you have a
>proposal for how "advisory locking" could be used while still
>maintaining data integrity?
>
>Jeffrey Altman
>  
>
Jeff,

I said what I said originally only to get some things cleared up, eg, 
wrt byte-range locks you can take out on the existing client.  I don't 
think Eric has any such suggestion?  As you stated, the model on Windows 
is mandatory, notwithstanding, I am no expert on Windows behaviors or 
APIs.  Unless I mistake myself again, you don't get data integrity on 
Windows with an advisory model, simply because clients are written to 
expect this behavior.  I can't imagine the first thing a Windows 
programmer does when he can't lock a byte-range, is write in it.  
Therefore, I surmise that advisory range locking, with whole-file lock 
in AFS, might actually improve the behavior of some clients.  I am not 
suggesting that this would be desirable.  Are you speculating that it would?

The last bit of your original message addressed itself to posix 
locking.  I haven't read the nfsv4 wg posts; however, the posix locking 
model is advisory.  I believe it is established that cooperating 
applications can provide data integrity in the posix model using fcntl 
(or lockf) and fsync/fdatasync.  Of course, uncooperative clients with 
correct permissions can do what they like to locked files.  The advisory 
model considers this not a violation of data integrity, but a 
permissions or application problem.

Matt

-- 

Matt Benjamin

The Linux Box
206 South Fifth Ave. Suite 150
Ann Arbor, MI  48104

http://linuxbox.com

tel. 734-761-4689
fax. 734-769-8938
cel. 734-216-5309