Home | History | Annotate | Line # | Download | only in html
CDB_README.html revision 1.1
      1  1.1  tron <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
      2  1.1  tron         "http://www.w3.org/TR/html4/loose.dtd">
      3  1.1  tron 
      4  1.1  tron <html>
      5  1.1  tron 
      6  1.1  tron <head>
      7  1.1  tron 
      8  1.1  tron <title>Postfix CDB Howto</title>
      9  1.1  tron 
     10  1.1  tron <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
     11  1.1  tron 
     12  1.1  tron </head>
     13  1.1  tron 
     14  1.1  tron <body>
     15  1.1  tron 
     16  1.1  tron <h1><img src="postfix-logo.jpg" width="203" height="98" ALT="">Postfix CDB Howto</h1>
     17  1.1  tron 
     18  1.1  tron <hr>
     19  1.1  tron 
     20  1.1  tron <h2>Introduction</h2>
     21  1.1  tron 
     22  1.1  tron <p> CDB (Constant DataBase) is an indexed file format designed by
     23  1.1  tron Daniel Bernstein. CDB is optimized exclusively for read access
     24  1.1  tron and guarantees that each record will be read in at most two disk
     25  1.1  tron accesses. This is achieved by forgoing support for incremental
     26  1.1  tron updates: no single-record inserts or deletes are supported.  CDB
     27  1.1  tron databases can be modified only by rebuilding them completely from
     28  1.1  tron scratch, hence the "constant" qualifier in the name.  </p>
     29  1.1  tron 
     30  1.1  tron <p> Postfix CDB databases are specified as "<a href="CDB_README.html">cdb</a>:<i>name</i>", where
     31  1.1  tron <i>name</i> specifies the CDB file name without the ".cdb" suffix
     32  1.1  tron (another suffix, ".tmp", is used temporarily while a CDB file is
     33  1.1  tron under construction).  CDB databases are maintained with the <a href="postmap.1.html">postmap(1)</a>
     34  1.1  tron or <a href="postalias.1.html">postalias(1)</a> command. The <a href="DATABASE_README.html">DATABASE_README</a> document has general
     35  1.1  tron information about Postfix databases.  </p>
     36  1.1  tron 
     37  1.1  tron <p> CDB support is available with Postfix 2.2 and later releases.
     38  1.1  tron This document describes how to build Postfix with CDB support. </p>
     39  1.1  tron 
     40  1.1  tron <h2>Building Postfix with CDB support</h2>
     41  1.1  tron 
     42  1.1  tron <p> These instructions assume that you build Postfix from source
     43  1.1  tron code as described in the <a href="INSTALL.html">INSTALL</a> document. Some modification may
     44  1.1  tron be required if you build Postfix from a vendor-specific source
     45  1.1  tron package.  </p>
     46  1.1  tron 
     47  1.1  tron <p> Postfix is compatible with two CDB implementations: </p>
     48  1.1  tron 
     49  1.1  tron <ul>
     50  1.1  tron 
     51  1.1  tron <li> <p> The original cdb library from Daniel Bernstein, available
     52  1.1  tron from <a href="http://cr.yp.to/cdb.html">http://cr.yp.to/cdb.html</a>, and </p>
     53  1.1  tron 
     54  1.1  tron <li> <p> tinycdb (version 0.5 and later) from Michael Tokarev,
     55  1.1  tron available from <a href="http://www.corpit.ru/mjt/tinycdb.html">http://www.corpit.ru/mjt/tinycdb.html</a>. </p>
     56  1.1  tron 
     57  1.1  tron </ul>
     58  1.1  tron 
     59  1.1  tron <p>  Tinycdb is preferred, since it is a bit faster, has additional
     60  1.1  tron useful functionality and is much simpler to use. </p>
     61  1.1  tron 
     62  1.1  tron <p>To build Postfix after you have installed tinycdb, use something
     63  1.1  tron like: </p>
     64  1.1  tron 
     65  1.1  tron <blockquote>
     66  1.1  tron <pre>
     67  1.1  tron % make tidy
     68  1.1  tron % CDB=../../../tinycdb-0.5
     69  1.1  tron % make -f Makefile.init makefiles "CCARGS=-DHAS_CDB -I$CDB" \
     70  1.1  tron     "AUXLIBS=$CDB/libcdb.a"
     71  1.1  tron % make
     72  1.1  tron </pre>
     73  1.1  tron </blockquote>
     74  1.1  tron 
     75  1.1  tron <p> Alternatively, for the D.J.B. version of CDB:<p>
     76  1.1  tron 
     77  1.1  tron <blockquote>
     78  1.1  tron <pre>
     79  1.1  tron % make tidy
     80  1.1  tron % CDB=../../../cdb-0.75
     81  1.1  tron % make -f Makefile.init makefiles "CCARGS=-DHAS_CDB -I$CDB" \
     82  1.1  tron     "AUXLIBS=$CDB/cdb.a $CDB/alloc.a $CDB/buffer.a $CDB/unix.a $CDB/byte.a"
     83  1.1  tron % make
     84  1.1  tron </pre>
     85  1.1  tron </blockquote>
     86  1.1  tron 
     87  1.1  tron <p> After Postfix has been built with cdb support, you can use
     88  1.1  tron "cdb" tables wherever you can use read-only "hash", "btree" or
     89  1.1  tron "dbm" tables. However, the "<b>postmap -i</b>" (incremental record
     90  1.1  tron insertion) and "<b>postmap -d</b>" (incremental record deletion)
     91  1.1  tron command-line options are not available. For the same reason the
     92  1.1  tron "cdb" map type cannot be used to store the persistent address
     93  1.1  tron verification cache for the <a href="verify.8.html">verify(8)</a> service, or to store
     94  1.1  tron TLS session information for the <a href="tlsmgr.8.html">tlsmgr(8)</a> service. </p>
     95