Metadata from the quarantined messages (sender, recipient, date, subject, etc) is stored in a database to speed up queries of the quarantine. PureMessage supports two database formats for these indexes. PostgreSQL, an object-relational database system, is the default PureMessage database. CDB is a simple flat-file database, which is suitable for smaller installations running on a single PureMessage server.
- PostgreSQL: PostgreSQL is a full-fledged relational database. It is required for installations using Centralized Quarantine Management and Reporting and is recommended for installations using the End User Web Interface.
- CDB: CDB (a package for creating and reading constant databases) is a flat-file
database back end for storing quarantine metadata. A CDB-indexed quarantine can scale to
millions of messages, is usually less work to administer and is much faster to index than
PostgreSQL. Note, however, that the reporting functionality in PureMessage relies on PostgreSQL. You can manually re-index the
database back end by running the command:
pmx-quarantine reindex --index-type=cdb
When using CDB, the Quarantine ID, Queue ID (as designated by the MTA), recipient and sender fields are indexed. Searching for an exact value in any of these fields results in fast search results. If a wildcard is specified in an address search, no index is used, resulting in a slower search (commensurate with the number of messages in the quarantine).
When using PostgreSQL, information from the Subject, Body and other message parts are also indexed to provide fast queries and message previews in the End User Web Interface and the Manager interface to the quarantine. Advanced queries or queries involving wildcards are faster than with CDB.