What is cdb?
cdb is a fast, reliable, simple package for creating and reading constant databases. Its database structure provides several features:
- Fast lookups: A successful lookup in a large database normally takes just two disk accesses. An unsuccessful lookup takes only one.
- Low overhead: A database uses 2048 bytes, plus 24 bytes per record, plus the space for keys and data.
- No random limits: cdb can handle any database up to 4 gigabytes. There are no other restrictions; records don’t even have to fit into memory. Databases are stored in a machine-independent format.
- Fast atomic database replacement: cdbmake can rewrite an entire database two orders of magnitude faster than other hashing packages.
- Fast database dumps: cdbdump prints the contents of a database in cdbmake-compatible format.
cdb is designed to be used in mission-critical applications like e-mail. Database replacement is safe against system crashes. Readers don’t have to pause during a rewrite.
wget http://cr.yp.to/cdb/cdb-0.75.tar.gz
if you are using centos 6 you should change source code a bit: grep -r “extern int errno” .
vim ./error.hand should add #include <errno.h> instead of extern int errno
make && make setup check
./cdbmake-sv test.cdb test.tmp < /etc/services
./cdbtest < test.cdb
querying database like this: ./cdbget smtp/tcp < test.cdb && echo ‘ ‘ or
./cdbget @25/tcp < test.cdb && echo ‘ ‘