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?