Sendmail CDB patch for 8.12.7: sendmail-cdb-0.1.patch

cdb (constant database format) is a very fast non-relational database by Dan J. Bernstein. To create cdbs for use with this patch you will need either Dr. Bernstein's cdbmake utility at http://cr.yp.to/cdb.html or Michael Tokarev's tinycdb package at http://www.corpit.ru/mjt/tinycdb.html

To use, just change hash to cdb in the mc or cf file for database lookup maps.

The sendmail-cdb patch has been updated for sendmail-8.14.x. It is now located at http://sourceforge.net/projects/sendmail-cdb.

Reasons for using cdb databases. Fast lookups even with millions of entries. This makes cdb tables a good buffer against hammer slower table types such as mysql, ldap and others. cdb databases are also platform independent. This makes deployment of cdb databases across different platforms a nonissue.


Combination big-todo and ext-todo patch for qmail. If you have a high volume qmail server that has very high injection rates, then this patch gives both the benefits of ext-todo and big-todo by extending ext-todo to understand big-todo changes to qmail-send and qmail-queue.

Is this patch for me?

The big-todo patch modifies qmail-queue and qmail-send to support a hashed directory structure for the intd and todo subdirectories just like the mess/local/remote/info directories. For filesystems without hashed index directory support like ext2 or ext3 under 2.4, it is a necessity if there is going to be high injection rate. Even for filesystems like XFS, ext3 + htree under 2.6 and others it may prove to be necessary.

The ext-todo patch from the qmail-ldap guys takes the todo processing code from qmail-send and puts it into its own daemon that is managed by qmail-send. It also creates another qmail-clean to take care of the todo sub queue directories. This patch frees qmail-send from doing preprocessing and lets it concentrate on filling delivery slots available. It is used to counter what has been called the silly qmail syndrome which is where an unpatch qmail-send is busy processing todo and severely under using available slots for deliveries.

The combination patch just combines these together and modifies qmail-todo to understand the big-todo changes. If you have huge volumes of mail to deliver/handle, you will need the combination patch if the filesystem is slowing down qmail. If you also need to be able to concurrently get rid of lots of the mails, you can also apply the big-concurrency patch (see qmail.org) to allow for anything over 255 delivery slots. If after applying the combination patch you find that it does help but not enough, then you will have to go for hardware assistance. This basically is splitting the queue across two or more disk queues. man qmail-queue for details of what sub queue directories must be paired on the same filesystem.

Get it here: big-ext-todo-20030101