Just got back from a weekend with Barbara in College
Station, TX, where she is working on her master's in
computer graphics at the TAMU Vizlab. Saw Final Fantasy at
the big megaplex on the edge of town, followed up with lots
of kibbitizing on the graphics technologies used.
More work on Ganymede. I
downloaded the 1.4 JDK beta towards the end of last week and
made a few fixups to get everything to work under 1.4. So
far as I know, all of the Ganymede code, server, client,
everything, now work on every version of Java from 1.1.7 to
1.4beta. Pretty impressive if you ask me.
I keep finding myself scheming about things to do once I
officially drop support for JDK 1.1, though. In particular,
I'm thinking how much fun it would be to implement support
for a more scalable, disk-based database system using the
random access file methods and the Java weak reference API
for implementing a memory cache.
Anyone have any good white papers on simple key-based
transactional database systems? I've looked at Berkeley DB,
but I'm thinking I shouldn't need to create a dependency on
their code with as much transactional logic as is already in
the Ganymede server. How hard can it be to implement a
random access paging file with discrete indices for
namespace constraints? Seems like the only real trick would
be figuring out how to make transactional commits reasonably
atomic on disk. The way Ganymede does it now, by keeping a
ganymede.db file and an ongoing journal file is easy, File
append and atomic rename make reliable transactions simple
to do.
Anyone want to email me with
suggestions on books and/or web pages describing simple
transactional disk models I might look at?