1#++ 2# NAME 3# lmdb_table 5 4# SUMMARY 5# Postfix LMDB adapter 6# SYNOPSIS 7# \fBpostmap lmdb:/etc/postfix/\fIfilename\fR 8# .br 9# \fBpostmap -i lmdb:/etc/postfix/\fIfilename\fB <\fIinputfile\fR 10# 11# \fBpostmap -d "\fIkey\fB" lmdb:/etc/postfix/\fIfilename\fR 12# .br 13# \fBpostmap -d - lmdb:/etc/postfix/\fIfilename\fB <\fIinputfile\fR 14# 15# \fBpostmap -q "\fIkey\fB" lmdb:/etc/postfix/\fIfilename\fR 16# .br 17# \fBpostmap -q - lmdb:/etc/postfix/\fIfilename\fB <\fIinputfile\fR 18# DESCRIPTION 19# The Postfix LMDB adapter provides access to a persistent, 20# memory-mapped, key-value store. The database size is limited 21# only by the size of the memory address space (typically 31 22# or 47 bits on 32-bit or 64-bit CPUs, respectively) and by 23# the available file system space. 24# REQUESTS 25# .ad 26# .fi 27# The LMDB adapter supports all Postfix lookup table operations. 28# This makes LMDB suitable for Postfix address rewriting, 29# routing, access policies, caches, or any information that 30# can be stored under a fixed lookup key. 31# 32# When a transaction fails due to a full database, Postfix 33# resizes the database and retries the transaction. 34# 35# Postfix table lookups may generate partial search keys such 36# as domain names without one or more subdomains, network 37# addresses without one or more least-significant octets, or 38# email addresses without the localpart, address extension 39# or domain portion. This behavior is also found with, for 40# example, btree:, hash:, or ldap: tables. 41# 42# Changes to an LMDB database do not trigger an automatic 43# daemon restart, and do not require a daemon restart with 44# "\fBpostfix reload\fR". 45# RELIABILITY 46# .ad 47# .fi 48# LMDB's copy-on-write architecture provides safe updates, 49# at the cost of using more space than some other flat-file 50# databases. Read operations are memory-mapped for speed. 51# Write operations are not memory-mapped to avoid silent 52# corruption due to stray pointer bugs. 53# 54# Multiple processes can safely update an LMDB database without 55# serializing requests through the proxymap(8) service. This 56# makes LMDB suitable as a shared cache for verify(8) or 57# postscreen(8) services. 58# SYNCHRONIZATION 59# .ad 60# .fi 61# The Postfix LMDB adapter does not use LMDB's built-in locking 62# scheme, because that would require world-writable lockfiles 63# and would violate the Postfix security model. Instead, 64# Postfix uses fcntl(2) locks with whole-file granularity. 65# Programs that use LMDB's built-in locking protocol will 66# corrupt a Postfix LMDB database or will read garbage. 67# 68# Every Postfix LMDB database read or write transaction must 69# be protected from start to end with a shared or exclusive 70# fcntl(2) lock. A writer may atomically downgrade an exclusive 71# lock to a shared lock, but it must hold an exclusive lock 72# while opening another write transaction. 73# 74# Note that fcntl(2) locks do not protect transactions within 75# the same process against each other. If a program cannot 76# avoid making simultaneous database requests, then it must 77# protect its transactions with in-process locks, in addition 78# to the per-process fcntl(2) locks. 79# CONFIGURATION PARAMETERS 80# .ad 81# .fi 82# Short-lived programs automatically pick up changes to 83# main.cf. With long-running daemon programs, Use the command 84# "\fBpostfix reload\fR" after a configuration change. 85# .IP "\fBlmdb_map_size (16777216)\fR" 86# The initial OpenLDAP LMDB database size limit in bytes. 87# SEE ALSO 88# postconf(1), Postfix supported lookup tables 89# postmap(1), Postfix lookup table maintenance 90# postconf(5), configuration parameters 91# README FILES 92# .ad 93# .fi 94# Use "\fBpostconf readme_directory\fR" or 95# "\fBpostconf html_directory\fR" to locate this information. 96# .na 97# .nf 98# DATABASE_README, Postfix lookup table overview 99# LMDB_README, Postfix OpenLDAP LMDB howto 100# LICENSE 101# .ad 102# .fi 103# The Secure Mailer license must be distributed with this software. 104# HISTORY 105# LMDB support was introduced with Postfix version 2.11. 106# AUTHOR(S) 107# Howard Chu 108# Symas Corporation 109# 110# Wietse Venema 111# IBM T.J. Watson Research 112# P.O. Box 704 113# Yorktown Heights, NY 10598, USA 114# 115# Wietse Venema 116# Google, Inc. 117# 111 8th Avenue 118# New York, NY 10011, USA 119#-- 120