[Linux-cluster] GFS lock problem?

Lon Hohberger lhh at redhat.com
Thu Jun 9 15:20:39 UTC 2005


On Thu, 2005-06-09 at 08:14 -0500, Michael Conrad Tadpol Tilstra wrote:
> On Wed, Jun 08, 2005 at 10:52:46PM -0500, Andrew C. Dingman wrote:
> > Wouldn't each lock in GFS be used to impliment some sort of
> > filesystem-level lock, such as an fcntl() or flock(), which would in
> > turn belong to a process?
> 
> Your question isn't parsing, but I'll try to answer anyways.
> 
> flock and fcntl locks can be implemented. (and have been.) However they,
> by themselves, are insuficent for creating a clustered filesystem.  But
> since those are advisory locks, they might exist, and even then they can
> be ignored.  So there might be some in the lock space, but there will
> mostly be gfs locks.

Adding some thoughts:

Locks used by GFS are primarily used for meta-data synchronization and
are transparently taken and released to most processes.

Of course, if a process takes a lock on a file on a GFS mount, the lock
is an advisory lock -- but can be seen by other processes (and other
nodes).

So, you can implement synchronization across multiple processes on
different nodes on a GFS mount using fcntl() in the same way you can
implement synchronization across multiple processes on a single node (on
any file system).

However -- I don't know if there's a way to tell which process on which
node has which fcntl()-taken lock.  (If there is, I'm pretty sure you
can not do it using standard POSIX calls...)

-- Lon




More information about the Linux-cluster mailing list