public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Daniel Phillips <phillips@istop.com>
To: Daniel McNeil <daniel@osdl.org>
Cc: David Teigland <teigland@redhat.com>,
	Lars Marowsky-Bree <lmb@suse.de>, Steven Dake <sdake@mvista.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>,
	Patrick Caulfield <pcaulfie@redhat.com>
Subject: Re: [PATCH 1b/7] dlm: core locking
Date: Sat, 30 Apr 2005 05:09:24 -0400	[thread overview]
Message-ID: <200504300509.24887.phillips@istop.com> (raw)
In-Reply-To: <1114815509.18352.200.camel@ibm-c.pdx.osdl.net>

On Friday 29 April 2005 18:58, Daniel McNeil wrote:
> I have always thought that an distributed application could use the DLM
> alone to protect access to shared storage.   The DLM would coordinate
> access between the distributed application running on the nodes
> in the cluster AND DLM locks would not be recovered and possibly
> granted to applications running on the nodes still in the membership
> until after nodes that are no longer a member of the cluster are safely
> prevented from doing any harm.

As you know, this is how I currently determine ownership of such resources as  
cluster snapshot metadata and ddraid dirty log.  I find the approach 
distinctly unsatisfactory.  The (g)dlm is rather verbose to use, particularly 
taking into the account the need to have two different state machine paths, 
depending on whether a lock happens to master locally or not, and the need to 
coordinate a number of loosely coupled elements: lock status blocks, asts, 
the calls themselves.  The result is quite a _long_ and opaque program to do 
a very simple thing.  It is full of long chains of reasoning, connected with 
the behavior of lvbs, asynchronous lock event flow, error behavior, myriad 
other details.  This just _feels wrong_ and the code looks ugly, no matter 
how much I try to dress it up.

And indeed, instinct turns out to be correct: there is a far simpler way to 
handle this: let the oldest member of the cluster decide who owns the 
metadata resources.  This is simple, unambiguous, fast, efficient, easy to 
implement and obviously correct.  And it has nothing to do with the dlm, it 
relies only on cman.  Or it would, if cman supported a stable ordering of 
cluster node longevity, which I do not think it does.  (Please correct me if 
I'm wrong, Patrick.)

So this is easy: fix cman so that it does support a stable ordering of cluster 
node membership age, if it does not already.

> So, when I said that the DLM was dependent on fencing, I was thinking
> of the membership, quorum, prevention of harm (stalling of i/o to
> prevent corrupting shared resource) as described above.
>
> So, if an application was using your DLM to protect shared storage,
> I think you are saying it possible the DLM lock could be granted
> before the node that was previously holding the lock and now is not
> part of the cluster is fenced.  Is that right?
>
> If it is, what prevents GFS from getting a DLM lock granted and writing
> to the shared storage before the node that previously had it is fenced?

In my opinion, using the dlm to protect the shared storage resource 
constitutes tackling the problem far too high up on the food chain.

> PS if an application is writing to local storage, what does it need a
> DLM for?

Good instinct.  In fact, as I've said before, you don't necessarily need a dlm 
in a cluster application at all.  What you need is _global synchronization_, 
however that is accomplished.  For example, I have found it simpler and more 
efficient to use network messaging for the cluster applications I've tackled 
so far.   This suggests to me that the dlm is going to end up pretty much as 
a service needed only by a cfs, and not much else.  The corollary of that is, 
we should concentrate on making the dlm work well for the cfs, and not get 
too wrapped up in trying to make it solve every global synchronization 
problem in the world.

Regards,

Daniel

  parent reply	other threads:[~2005-04-30  9:08 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-25 16:58 [PATCH 1b/7] dlm: core locking David Teigland
2005-04-25 18:34 ` Nikita Danilov
2005-04-25 20:44   ` Daniel Phillips
2005-04-25 22:27     ` Nikita Danilov
2005-04-26  1:34       ` Daniel Phillips
2005-04-25 20:41 ` Jesper Juhl
2005-04-26  5:00   ` Daniel Phillips
2005-04-25 21:54 ` Steven Dake
2005-04-26  5:49   ` David Teigland
2005-04-26 17:40     ` Steven Dake
2005-04-26 22:24       ` Daniel Phillips
2005-04-26 23:04         ` Steven Dake
2005-04-27  0:53           ` Daniel Phillips
2005-04-27  1:50             ` Steven Dake
2005-04-27  4:21               ` Daniel Phillips
2005-04-27  3:02       ` David Teigland
2005-04-27 13:41         ` Lars Marowsky-Bree
2005-04-27 14:26           ` David Teigland
2005-04-28 12:33             ` Lars Marowsky-Bree
2005-04-28 16:39               ` Daniel McNeil
2005-04-28 16:45                 ` Lars Marowsky-Bree
2005-04-29  8:25                   ` Daniel Phillips
2005-05-02 20:45                     ` Lars Marowsky-Bree
2005-05-02 23:23                       ` Daniel Phillips
2005-04-29  4:01                 ` David Teigland
2005-04-29 22:58                   ` Daniel McNeil
2005-04-30  4:29                     ` David Teigland
2005-04-30  9:09                     ` Daniel Phillips [this message]
2005-04-30 10:32                       ` Lars Marowsky-Bree
2005-04-30 11:12                         ` Daniel Phillips
2005-05-02 20:51                           ` Lars Marowsky-Bree
2005-05-02 22:21                             ` Daniel Phillips
2005-05-05 12:25                       ` Stephen C. Tweedie
2005-05-05 12:40                         ` copy_to_user question linux
2005-05-05 13:13                           ` Richard B. Johnson
2005-05-05 19:29                         ` [PATCH 1b/7] dlm: core locking Daniel Phillips
2005-04-28  2:52           ` Daniel Phillips
2005-04-28 12:37             ` Lars Marowsky-Bree
2005-04-28 23:43               ` Daniel Phillips
2005-04-28  6:49           ` Daniel Phillips
2005-04-28 12:55             ` Lars Marowsky-Bree
2005-04-29  0:26               ` Daniel Phillips
2005-04-29  2:52                 ` David Teigland
2005-04-29  3:49                   ` Daniel Phillips
2005-05-02 21:00                     ` Lars Marowsky-Bree
2005-05-03  2:54                       ` David Teigland
2005-04-27 12:33 ` Domen Puncer
2005-04-27 13:30   ` David Teigland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200504300509.24887.phillips@istop.com \
    --to=phillips@istop.com \
    --cc=akpm@osdl.org \
    --cc=daniel@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lmb@suse.de \
    --cc=pcaulfie@redhat.com \
    --cc=sdake@mvista.com \
    --cc=teigland@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox