From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiaju Zhang Date: Sun, 23 Aug 2009 17:00:44 +0800 Subject: [Cluster-devel] [RFC]Drop unused plock resource when no other plock request comes Message-ID: List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hello, Currently, it seems that dlm_controld won't drop an unused plock resource (which has exceed the timeout) when there is no another plock request for other resource comes. I found this issue when I run the pingpong test case http://junkcode.samba.org/ftp/unpacked/junkcode/ping_pong.c In the pingpong, it just uses fcntl(F_SETLKW) to lock/unlock a file repeatedly to see the lock performance. Now, my test case is: Step 1: start pingpong on node A, then stop it. Step 2: after a while(more than 10 seconds), start pingpong on node B. I haven't run the pingpong concurrently on the two nodes, but the lock performance in node A is much higher than in node B. The user might be confused about why the performance on the two nodes seems so different. After some investigating, I found the reason is when running pingpong on node A, r->owner == A, so all the plock requests operates locally. When pingpong stops on node A, there is no other plock request comes from node A, so the drop_resources won't be triggered even if it has exceed the timeout. Then, pingpong on node B and it found r->owner == A so eventually it turned into the state r->owner == 0. This is the distributed mode, so the performance is decreasing. It seems no chance to trigger the drop_resources to work if there is no other plock requests (which are requesting for another lock resource) come from node A. But I still wonder if there is a way to improve this? Thanks, Jiaju -------------- next part -------------- An HTML attachment was scrubbed... URL: