tdb 1.2.9

tdb Documentation

This is a simple database API. It was inspired by the realisation that in Samba we have several ad-hoc bits of code that essentially implement small databases for sharing structures between parts of Samba.

The interface is based on gdbm. gdbm couldn't be use as we needed to be able to have multiple writers to the databases at one time.


You can download the latest releases of tdb from the tdb directory on the samba public source archive.

You can download the latest code either via git or rsync.

To fetch via git see the following guide:

Using Git for Samba Development Once you have cloned the tree switch to the master branch and cd into the source/lib/tdb directory.

To fetch via rsync use these commands:

  rsync -Pavz .
  rsync -Pavz .

and build in tdb. It will find the replace library in the directory above automatically.

Discussion and bug reports

tdb does not currently have its own mailing list or bug tracking system. For now, please use the samba-technical mailing list, and the Samba bugzilla bug tracking system.


add HAVE_MMAP=1 to use mmap instead of read/write add NOLOCK=1 to disable locking code


Compile tdbtest.c and link with gdbm for testing. tdbtest will perform identical operations via tdb and gdbm then make sure the result is the same

Also included is tdbtool, which allows simple database manipulation on the commandline.

tdbtest and tdbtool are not built as part of Samba, but are included for completeness.