On Tue, May 18, 2010 at 01:46, Eray Aslan eray.aslan@caf.com.tr wrote:
We use Michael Tokarev's tinycdb:
- stable on disk format
- has atomic updates
- has a tiny library in case you want to link it statically
- uses a lot less memory when the process count is large, i.e. scales well
- rebuilding the database a few times a day is just fine with a few million records. If you go into tens or hundreds of millions, test rebuild times before putting into production
Using cdb is by no means a MUST but don't dissmiss it out of hand. It has its uses.
I assume the update is rebuilding the CDB file from the data source, and when complete and tested (look up at least the first and last records added), doing a move to replace the old CDB so when the program using it does open, again (something it should do periodically and when it gets a SIGHUP), it gets the new one.
Or has tinycdb figured a way to update in place?
If I needed to change records fast, and have each one be active, fast, I'd certainly choose something other than CDB or equivalents to it. That might be Berkeley DB (BTDT). That might even be a big directory of millions of files on a B-tree based filesystem (BTDT). That might even be SQL (BTDT with 3 different SQL RDB systems). I pick what's right for the given circumstance (and just being mail does not narrow down the circumstance). I don't just use something because "everyone else" does. CDB fits a lot of circumstances well ... not all, fo sure ... but a lot (including my current case, so I wish it were available).