NAME
cdbmake - create a constant database
SYNOPSIS
cdbmake cdb cdb.tmp
DESCRIPTION
cdbmake reads a series of encoded records from its standard input and
writes a constant database to cdb.
cdbmake ensures that cdb is updated atomically, so programs reading cdb
never have to wait for cdbmake to finish. It does this by first
writing the database to cdb.tmp and then moving cdb.tmp on top of cdb.
If cdb.tmp already exists, it is destroyed. The directories containing
cdb.tmp and cdb must be writable to cdbmake; they must also be on the
same filesystem.
cdbmake always makes sure that cdb.tmp is safely written to disk before
it replaces cdb. If the input is in a bad format or if cdbmake has any
trouble writing cdb.tmp to disk, cdbmake complains and leaves cdb
alone.
RECORD FORMAT
Records are indexed by keys. A key is a string. cdb is structured so
that another program, starting from a key, can quickly find the
relevant record. cdbmake allows several records with the same key,
although most readers take only the first record, and cdbmake slows
down somewhat if there are many records with the same key.
cdbmake and cdbdump(1) preserve the order of records.
A record is encoded for cdbmake as +klen,dlen:key->data followed by a
newline. Here klen is the number of bytes in key and dlen is the
number of bytes in data. The end of data is indicated by an extra
newline. For example:
+3,5:one->Hello
+3,7:two->Goodbye
key and data may contain any characters, including colons, dashes,
newlines, and nulls.
Keys and data do not have to fit into memory. A database cannot exceed
4 gigabytes.
cdb is portable across machines.
SEE ALSO
cdbdump(1), cdbget(1), cdbstats(1)
cdbmake(1)