Howto CDB de Postfix


Introduction

CDB (Constant DataBase) est un format de fichier indexé inventé par Daniel Bernstein. CDB est optimisé exclusivement pour l'accès en lecture et garantie que chaque enregistrement sera lu en au plus deux accès au disque. Ceci est réalisé en excluant le support des mises à jour incrémentales : aucun enregistrement ou effacement n'est supporté. Les bases de données CDB ne peuvent être modifiées qu'en les reconstruisant complètement, d'où leur qualificatif de "constantes".

Les bases de données CDB de Postfix sont utilisée avec le préfixe "cdb:nom", où nom indique le nom du fichier CDB sans le suffixe ".cdb" (un autre suffixe, ".tmp", est utilisé temporairement tant que le fichier CDB file est en construction). Les bases de données CDB sont maintenues avec les commandes postmap(1) ou postalias(1). La page DATABASE_README présente les informations générales sur les bases de données de Postfix.

Le support CDB est disponible sur les versions 2.2 et supérieures de Postfix. Ce document montre comment compiler Postfix avec le support CDB.

Compiler Postfix avec CDB

Postfix est compatible avec deux implémentations de CDB :

Tinycdb est préférable, car il est un peu plus rapide, dispose de fonctionnalités pratiques et est plus simple à utiliser.

Pour compiler Postfix après avoir installé tinycdb, utilisez quelque chose comme ça :

% make tidy
% CDB=../../../tinycdb-0.5
% make -f Makefile.init makefiles "CCARGS=-DHAS_CDB -I$CDB" \
    "AUXLIBS=$CDB/libcdb.a"
% make

Autrement, pour la version de D.J.B. de CDB:

% make tidy
% CDB=../../../cdb-0.75
% make -f Makefile.init makefiles "CCARGS=-DHAS_CDB -I$CDB" \
    "AUXLIBS=$CDB/cdb.a $CDB/alloc.a $CDB/buffer.a $CDB/unix.a $CDB/byte.a"
% make

Après que Postfix ait été compilé avec le support CDB, vous pouvez utiliser les tables "cdb" partout où pouvez utiliser en lecture seule les tables "hash", "btree" ou "dbm". Bien entendu, les commandes en ligne "postmap -i" (insertion incrémentale d'un enregistrement) et "postmap -d" (effacement incremental d'un enregistrement) ne sont pas disponibles. Pour les mêmes raisons, les correspondances type "cdb" ne peuvent être utilisées pour stocker le cache persistant des vérifications d'adresse du service verify(8).

Valid HTML 4.01! traduction par Xavier Guimard - Retour au menu