[Linux-cluster] What is the order of processing a lock request?
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
>>> lock request?
>>> Should DLM firstly determine whether there already
>>> exists a lock resource mapped to the file, by
>>> the following things in the order 1) looking at
>>> master lock resources on the node A, 2) searching
>>> local copies of lock resources on the node A, 3)
>>> searching the lock directory on the node A to find
>>> whether a master lock resource assosicated with
>>> file exists on another node, 4) sending messages
>>> other nodes in the cluster for the location of the
>>> master lock resource?
>>> I ask this question because from some online
>>> it seems that DLM will always search the
>>> lock directory across the whole cluster first to
>>> the location of the master lock resource.
>>> Can anyone kindly confirm the order of processes
>>> DLM does?
>> This should be very well documented, as it's common
>> amongst DLM
> 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.
More information about the Linux-cluster