Coda File System

Re: protection database - lower edge

From: Jim Doyle <>
Date: Sun, 15 Feb 1998 22:20:53 -0500 (EST)
Brian read my mind this morning and posted before I had a chance to
sit down! :)

> Recommendation: use the XDR routines from Sun RPC to marshall the
> in-core structures to and from a packed format, rather than coding the
> transform by hand.

Yes. XDR is the right thing to do!   There are examples of using XDR 
to serialize (pickle) complex C types (structs, unions) in the O'Reilly
book Power Programming with RPC.  On the Mac/Windows side, you can get
a portable implementation of Sun RPC/XDR from the Kerberos 5 sources.
Just pull out the parts you need.

When you define the C datatype representation of the PTS server database
entry, dont forget to add a version tag to the entry. That way, you can
revise the C datatype (add new member fields) while still maintaining
backwards compatibility.

> Recommendation: dump gdbm in favor of the follow-on work to Berkeley
> dbm, available from  This code has lots of
> good properties, including speed, transactions, multi-user locking,
> on-line hot backups, and a port to Windows.  *I have never encountered

BSD DB 2.0 provides a very refined local transaction manager which supports
WAL logging, escalating locks, recoverable locks, deadlock detection as
well as simple flat and nested transactions. Access methods to the database
are concurrent (by nature of finely-grained row locks and txns), all access
methods available (record-oriented, linear hash, B tree) can be covered by 

BSD DB 2.0 even includes facilities to implement recoverable shared memory,
although I have no idea how that compares to RVM, which i believe to be 
very robust and optimized for performance.

Finally, DB 2.0 is fast. 

-- Jim

Jim Doyle                         Boston University   Information Technology
Systems Analyst/Programmer        email:   Distributed Systems
						      tel. (617)-353-8248
Received on 1998-02-15 22:23:05