112 lines
5.7 KiB
HTML
112 lines
5.7 KiB
HTML
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"https://www.w3.org/TR/html4/loose.dtd">
|
|
<html> <head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<link rel='stylesheet' type='text/css' href='postfix-doc.css'>
|
|
<title> Postfix manual - lmdb_table(5) </title>
|
|
</head> <body> <pre>
|
|
LMDB_TABLE(5) LMDB_TABLE(5)
|
|
|
|
<b><a name="name">NAME</a></b>
|
|
lmdb_table - Postfix LMDB adapter
|
|
|
|
<b><a name="synopsis">SYNOPSIS</a></b>
|
|
<b>postmap <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i>
|
|
<b>postmap -i <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i> <<i>inputfile</i>
|
|
|
|
<b>postmap -d "</b><i>key</i><b>" <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i>
|
|
<b>postmap -d - <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i> <<i>inputfile</i>
|
|
|
|
<b>postmap -q "</b><i>key</i><b>" <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i>
|
|
<b>postmap -q - <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i> <<i>inputfile</i>
|
|
|
|
<b><a name="description">DESCRIPTION</a></b>
|
|
The Postfix LMDB adapter provides access to a persistent, mem-
|
|
ory-mapped, key-value store. The database size is limited only by the
|
|
size of the memory address space (typically 31 or 47 bits on 32-bit or
|
|
64-bit CPUs, respectively) and by the available file system space.
|
|
|
|
<b><a name="requests">REQUESTS</a></b>
|
|
The LMDB adapter supports all Postfix lookup table operations. This
|
|
makes LMDB suitable for Postfix address rewriting, routing, access
|
|
policies, caches, or any information that can be stored under a fixed
|
|
lookup key.
|
|
|
|
When a transaction fails due to a full database, Postfix resizes the
|
|
database and retries the transaction.
|
|
|
|
Postfix table lookups may generate partial search keys such as domain
|
|
names without one or more subdomains, network addresses without one or
|
|
more least-significant octets, or email addresses without the local-
|
|
part, address extension or domain portion. This behavior is also found
|
|
with, for example, <a href="DATABASE_README.html#types">btree</a>:, <a href="DATABASE_README.html#types">hash</a>:, or <a href="ldap_table.5.html">ldap</a>: tables.
|
|
|
|
Changes to an LMDB database do not trigger an automatic daemon restart,
|
|
and do not require a daemon restart with "<b>postfix reload</b>".
|
|
|
|
<b><a name="reliability">RELIABILITY</a></b>
|
|
LMDB's copy-on-write architecture provides safe updates, at the cost of
|
|
using more space than some other flat-file databases. Read operations
|
|
are memory-mapped for speed. Write operations are not memory-mapped to
|
|
avoid silent corruption due to stray pointer bugs.
|
|
|
|
Multiple processes can safely update an LMDB database without serializ-
|
|
ing requests through the <a href="proxymap.8.html">proxymap(8)</a> service. This makes LMDB suitable
|
|
as a shared cache for <a href="verify.8.html">verify(8)</a> or <a href="postscreen.8.html">postscreen(8)</a> services.
|
|
|
|
<b><a name="synchronization">SYNCHRONIZATION</a></b>
|
|
The Postfix LMDB adapter does not use LMDB's built-in locking scheme,
|
|
because that would require world-writable lockfiles and would violate
|
|
the Postfix security model. Instead, Postfix uses fcntl(2) locks with
|
|
whole-file granularity. Programs that use LMDB's built-in locking pro-
|
|
tocol will corrupt a Postfix LMDB database or will read garbage.
|
|
|
|
Every Postfix LMDB database read or write transaction must be protected
|
|
from start to end with a shared or exclusive fcntl(2) lock. A writer
|
|
may atomically downgrade an exclusive lock to a shared lock, but it
|
|
must hold an exclusive lock while opening another write transaction.
|
|
|
|
Note that fcntl(2) locks do not protect transactions within the same
|
|
process against each other. If a program cannot avoid making simulta-
|
|
neous database requests, then it must protect its transactions with
|
|
in-process locks, in addition to the per-process fcntl(2) locks.
|
|
|
|
<b><a name="configuration_parameters">CONFIGURATION PARAMETERS</a></b>
|
|
Short-lived programs automatically pick up changes to <a href="postconf.5.html">main.cf</a>. With
|
|
long-running daemon programs, Use the command "<b>postfix reload</b>" after a
|
|
configuration change.
|
|
|
|
<b><a href="postconf.5.html#lmdb_map_size">lmdb_map_size</a> (16777216)</b>
|
|
The initial OpenLDAP LMDB database size limit in bytes.
|
|
|
|
<b><a name="see_also">SEE ALSO</a></b>
|
|
<a href="postconf.1.html">postconf(1)</a>, Postfix supported lookup tables
|
|
<a href="postmap.1.html">postmap(1)</a>, Postfix lookup table maintenance
|
|
<a href="postconf.5.html">postconf(5)</a>, configuration parameters
|
|
|
|
<b><a name="readme_files">README FILES</a></b>
|
|
<a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
|
|
<a href="LMDB_README.html">LMDB_README</a>, Postfix OpenLDAP LMDB howto
|
|
|
|
<b><a name="license">LICENSE</a></b>
|
|
The Secure Mailer license must be distributed with this software.
|
|
|
|
<b><a name="history">HISTORY</a></b>
|
|
LMDB support was introduced with Postfix version 2.11.
|
|
|
|
<b>AUTHOR(S)</b>
|
|
Howard Chu
|
|
Symas Corporation
|
|
|
|
Wietse Venema
|
|
IBM T.J. Watson Research
|
|
P.O. Box 704
|
|
Yorktown Heights, NY 10598, USA
|
|
|
|
Wietse Venema
|
|
Google, Inc.
|
|
111 8th Avenue
|
|
New York, NY 10011, USA
|
|
|
|
LMDB_TABLE(5)
|
|
</pre> </body> </html>
|