What Should ZipTie's Default Database Be?
The database we use must be open source software (OSS). If we intend to "ship it", it must be under a license that is compatible with MPL 1.1. If we don't intend to, no such restriction exists.
Resources:
http://www.devx.com/dbzone/Article/29480
http://www.polepos.org/
http://weblogs.java.net/blog/davidvc/archive/2007/06/replication_in.html
Things That Concern Me
Apache Derby:
Speed, speed and speed. Unclean shutdown sometimes requires manual restart. No scrollable cursors (
do we care? I don't know.). No updatable cursors.
HSQLDB:
No ACID. Issues of corruption during unclean shutdowns, preventing restarts (requiring smoking the DB). Basically, HSQLDB is right out.
MySQL:
We can't ship it. Means an additional install for the user. Also no scrollable cursors. No encrypted database support (Derby and H2 have it).
H2:
Stability. Completely new database from the HSQLDB guy.
One guy (
H2 Group my ass). It's 1.0. Beware that benchmarks of this database are running with Index logging off. Any serious application would run with it on. Scary caveats:
http://www.h2database.com/html/frame.html?faq.html&main
Update (2007/08/10)
The decision has been made to go with Apache Derby for the Kepler release (and possibly Draper). It has proven more robust then we thought, and provides the best out-of-box experience particularly on Windows where a database is not generally present (unlike Linux).