[PATCH 0/7] dlm: overview

David Teigland
2005-04-25T15:08:13Z

Hi,

This is a distributed lock manager (dlm) that we'd like to see added to
the kernel. The dlm programming api is very similar to that found on
other operating systems, but this is modeled most closely after that in
VMS.

Many distributed/cluster applications use a dlm for inter-process
synchronization where processes may live on different machines. (GFS and
CLVM are two examples which our group also develop; GFS using the dlm from
the kernel and CLVM from userspace.)

We've done a lot of work in this second version to meet the kernel's
conventions. Comments and suggestions are welcome; we're happy to answer
questions and make changes so this can be a widely useful feature for
people running Linux clusters.

The dlm requires configuration from userspace. In particular, it needs to
be told which other nodes it should work with, and provided with their IP
addresses. In a typical setup, a cluster-membership system in userspace
would do this configuration (the dlm is agnostic about what system that
is). A command line tool can also be used to configure it manually.
(It's helpful to compare this with device-mapper where dmsetup/LVM2/EVMS
are all valid userland alternatives for driving device-mapper.)

Features _not_ in this patchset that can be added incrementally:
. hierarchical parent/child locks
. lock querying interface
. deadlock handling, lock timeouts
. configurable method for master selection (e.g. static master
assignment with no resource directory)

Background: we began developing this dlm from the ground up about 3 years
ago at Sistina. It became GPL after the Red Hat acquisition.

The following patches are against 2.6.12-rc3 and do not touch any existing
files in the kernel.