Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Sep 1997 19:36:15 -0700 (PDT)
From:      Simon Shapiro <Shimon@i-Connect.Net>
To:        FreeBSD-Hackers@FreeBSD.org
Subject:   Distributed Lock Manager on FreeBSD
Message-ID:  <XFMail.970916193615.Shimon@i-Connect.Net>

next in thread | raw e-mail | index | archive | help
We are putting the finishing touches on a true general purpose distributed
lock manager for FreeBSD.  This message is a solicitation for interest.  If
I receive enough interest in it I will start a chain of discussions on the
subject and solicit core review for inclusion in FreeBSD.  This may not be
easy as some of my management would like to keep it proprietary.

To illustrate, an Oracle equivalent (subset, really) had a cost of over
$250,000 for the source and about 1/5 for binary.


VERY BRIEF SUMMARY:

DLM is a method by which cooperating processes on different machines (even
different operating systems) can inform each other of interest in a named
object.  Just like a database lock manager, or a file system lock manager,
but with the ability to span hosts in real time.

Some highlight of this DLM:

* Kernel implementation;  All the locking logic is in the O/S kernel, not
  in userspace.

* Multi-state, hirerchial lock with up to 32 states per lock.

* Conflict resolution built in;  Caller can specify which states to
  consider in conflict analysis.

* Conflict Blocking;  Caller can specify which conflict to block on.

* Programmable conflict block;  Allows caller to specify how long to wait.

* Multiple-locking.  Individual states can accumulate;  A locker can      
  specify that multiple ``read'' locks are permitted.  the DLM will
  track how many are actually applied.

* Remote Locking;  A call to the local DLM agent for locking a remote
  resource is automatically proxied.

* Shared Locking;  If a resource is shared, the DLM will apply both local
  and remote lock and automatically/instantly resolve deadlocks.

* Multi-path;  Each resource can have its own data path (TCP/IP, SCSI,
  RCS-232, etc.)  UDP support is running, SCSI support via DPT is
  forthcoming.

* External resource management;  The mapping of resources is external to
  the locking agent.

* Distributed;  There is no central locking authority, although you can
  easily create one via resource configuration.

+ What is it good for?  We are using it to build our non-stop RDBMS server,
  which is composed of a group of FreeBSD machines tied to a single disk
  farm.  The RDBMS is PgSQL with the lock manager replaced with the DLM and
  the storage manager replaced with the DBFS/DIO module I am still working
  on.

If any of this is of any interest to any of you, drop me a line.  Please
try to do so soon , so I can decide how to document the thing.



---


Sincerely Yours,                               (Sent on 16-Sep-97, 19:18:09
by XF-Mail)

Simon Shapiro                                                Atlas Telecom
Senior Architect         14355 SW Allen Blvd., Suite 130 Beaverton OR 97005
Shimon@i-Connect.Net          Voice:  503.643.5559, Emergency: 503.799.2313



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.970916193615.Shimon>