[Linux-cluster] What is the order of processing a lock request?

Christine Caulfield ccaulfie at redhat.com
Tue May 13 08:41:27 UTC 2008


Ja S wrote:
> --- Christine Caulfield <ccaulfie at redhat.com> wrote:
> 
>> Ja S wrote:
>>> Hi, All:
>>>
>>>
>>> When an application on a cluster node A needs to
>>> access a file on a SAN storage, how DLM process
>> the
>>> lock request? 
>>>
>>> Should DLM firstly determine whether there already
>>> exists a lock resource mapped to the file, by
>> doing
>>> the following things in the order 1) looking at
>> the
>>> master lock resources on the node A, 2) searching
>> the
>>> local copies of lock resources on the node A, 3)
>>> searching the lock directory on the node A to find
>> out
>>> whether a master lock resource assosicated with
>> the
>>> file exists on another node, 4) sending messages
>> to
>>> other nodes in the cluster for the location of the
>>> master lock resource? 
>>>
>>> I ask this question because from some online
>> articles,
>>> it seems that DLM will always search the
>> cluster-wide
>>> lock directory across the whole cluster first  to
>> find
>>> the location of the master lock resource. 
>>>
>>> Can anyone kindly confirm the order of processes
>> that
>>> DLM does?
>>>
>>
>> This should be very well documented, as it's common
>> amongst DLM
>> implementations.
>>
> 
> I think I may be blind. I have not yet found a
> document which describes the sequence of processes in
> a precise way. I tried to read the source code but I
> gave up due to lack of comments.
> 
> 
>> If a node needs to lock a resource that it doesn't
>> know about then it
>> hashes the name to get a directory node ID, than
>> asks that node for the
>> master node. if there is no master node (the
>> resource is not active)
>> then the requesting node is made master
>>
>> if the node does know the master, (other locks on
>> the resource exist)
>> then it will go straight to that master node.
> 
> 
> Thanks for the description. 
> 
> However, one point is still not clear to me is how a
> node can conclude whether it __knows__ the lock
> resource or not?

A node knows the resource if it has a local copy. It's as simple as that.




-- 

Chrissie




More information about the Linux-cluster mailing list