[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