Why another database library?
I needed a database library to supplement
cdb.
cdb is a fast, reliable, constant database. An application i'm
developing stored constant data in a cdb, but also needed to store some
10000 records of new data, arriving over a period of 10 minutes to 10
hours. The database had also to allow for concurrent read access during
writes.
A quick look into other database libraries revealed:
- db (Version 1)
- no concurrent access. It's slow.
- db (Version 3)
- redistribution is restricted. It's fast. It offers quite a lot
of features.
- dbm / ndbm
- no concurrent access.
- gdbm
- no concurrent access.
- sdbm
- no concurrent access.
- dbz
- performs quite well, but has it's limitation (see source).
Also the performance of some of these systems is leaves quite a
lot to be desired. I'm going to post benchmark results later in the
year 2000.
In my application dyndb serves as storage for new data. If enough
records have been added then the records will be moved into a cdb
(this operation is too slow to be done for every record, but fast
enough if done rarely - say every 20000 or 50000 records).
This combination performs quite well.