[comp.databases] database implementations...

swfc@cs.columbia.edu (Shu-Wie F Chen) (12/06/90)

1. I am looking for papers that describe in some detail *implementations*
of transaction managers.  In particular, I am interested in commit
protocols, lock managers, and log processing.  I already have papers
on Camelot and ARIES.  Please e-mail me any other references you may
have.

2. Does anyone know if the Proceedings of the 1st
International Workshop on High Performance Transaction Systems (1985)
was ever published?

3. What is the difference between a lock and a latch?  Better yet,
what is a latch? (I encountered these terms in one of the ARIES
(IBM/Almaden) papers.)

Thanks.

*swfc
--
-------------------------------------------------------------------------------
Shu-Wie F Chen	             Columbia University Department of Computer Science
swfc@cs.columbia.edu	     500 W120th Street, New York, NY 10027

dlw@odi.com (Dan Weinreb) (12/08/90)

In article <SWFC.90Dec5184342@mendelssohn.cs.columbia.edu> swfc@cs.columbia.edu (Shu-Wie F Chen) writes:

   3. What is the difference between a lock and a latch?  Better yet,
   what is a latch? (I encountered these terms in one of the ARIES
   (IBM/Almaden) papers.)

A latch is a lower-level primitive, used by the lock manager of a
transaction system, as a cheap serialization mechanism WITHIN the lock
manager itself.  Latches are typically lightweight and fast, and do
not deal with deadlock detection or fancy modes (such as "intent"
locking).  They are completely internal to the database system.  They
can be released during a transaction without violation of strict
two-phase locking, since they are not the real locks protecting the
real data.  They are a lower-level primitive sort of lock; real locks
are built at a higher level of abstraction within the transaction
manager.

Simple example: you might have a DBMS running on a multiprocessor, and
there might be a single latch that implements mutually exclusive
access to the in-memory table of locks.  So before a process can
seize or release a lock, it must first acquire this latch; then it
can do the lock operation, and then it must release the latch.