(Illustration by Gaich Muramatsu)
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 http://www.sleepycat.com. 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 transaction. 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: jrd_at_bu.edu Distributed Systems tel. (617)-353-8248 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++--+-+-+-+-+-+-Received on 1998-02-15 22:23:05