]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.11-20130319
authorWietse Venema <wietse@porcupine.org>
Tue, 19 Mar 2013 02:12:26 +0000 (22:12 -0400)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Sat, 6 Apr 2013 03:31:29 +0000 (23:31 -0400)
12 files changed:
postfix/HISTORY
postfix/README_FILES/DATABASE_README
postfix/README_FILES/LMDB_README
postfix/RELEASE_NOTES
postfix/html/DATABASE_README.html
postfix/html/LMDB_README.html
postfix/html/postconf.1.html
postfix/man/man1/postconf.1
postfix/proto/DATABASE_README.html
postfix/proto/LMDB_README.html
postfix/src/postconf/postconf.c
postfix/src/util/dict_lmdb.c

index 6a75cbb04e288ecd9cf2c78b8330f71d28514065..c01254ea97957015743c29eb4be890d09faef2dc 100644 (file)
@@ -18288,3 +18288,13 @@ Apologies for any names omitted.
 20130318
 
        Portability: botched #ifdef. File: util/dict_lmdb.c.
+
+20130319
+
+       Postfix support for LMDB databases is withdrawn due to the
+       existence of a hard limit (an "out of storage" failure mode
+       that cannot be resolved by increasing the database size).
+
+       Postfix may support LMDB again when without exceptions all
+       "out of storage" failure modes are resolved by increasing
+       the database size.
index ceb661b7d5b73210b0d862e4c35246e9d17fc7fc..a9fe9b06aa42147aa0e7988038af1a60b12acbb2 100644 (file)
@@ -210,12 +210,11 @@ To find out what database types your Postfix system supports, use the "p\bpo\bos\bs
     i\bin\bnt\bte\ber\brn\bna\bal\bl
         A non-shared, in-memory hash table. Its content are lost when a process
         terminates.
-    l\blm\bmd\bdb\bb
+    l\blm\bmd\bdb\bb (unsupported)
         The OpenLDAP LMDB database (a memory-mapped, persistent file). Database
         files are created with the postmap(1) or postalias(1) command. The
         database name as used in "lmdb:table" is the database file name without
-        the ".lmdb" suffix. This database type has unexpected limitations and
-        is therefore not part of the stable Postfix release.
+        the ".lmdb" suffix.
     l\bld\bda\bap\bp (read-only)
         Perform lookups using the LDAP protocol. Configuration details are
         given in the ldap_table(5).
index e39d2777d6a49d7521854ff40d43be7729a7af2e..da1be827dbdf358b1e5eee97f3e0224a64a8d8d1 100644 (file)
@@ -4,6 +4,14 @@ P\bPo\bos\bst\btf\bfi\bix\bx O\bOp\bpe\ben\bnL\bLD\bDA\bAP\bP L\bLM\bMD\bDB\bB H\bHo\bow\bwt\bto\bo
 
 I\bIn\bnt\btr\bro\bod\bdu\buc\bct\bti\bio\bon\bn
 
+Note:
+    Postfix support for LMDB databases is withdrawn due to the existence of a
+    hard limit (an "out of storage" failure mode that cannot be resolved by
+    increasing the database size).
+
+    Postfix may support LMDB again when without exception all "out of storage"
+    failure modes are resolved by increasing the database size.
+
 Postfix uses databases of various kinds to store and look up information.
 Postfix databases are specified as "type:name". OpenLDAP LMDB implements the
 Postfix database type "lmdb". The name of a Postfix OpenLDAP LMDB database is
@@ -70,6 +78,20 @@ that don't exist with other Postfix databases.
 
 U\bUn\bne\bex\bxp\bpe\bec\bct\bte\bed\bd p\bpo\bos\bst\btm\bma\bap\bp(\b(1\b1)\b)/\b/p\bpo\bos\bst\bta\bal\bli\bia\bas\bs(\b(1\b1)\b) "\b"d\bda\bat\bta\bab\bba\bas\bse\be f\bfu\bul\bll\bl"\b" e\ber\brr\bro\bor\brs\bs.\b.
 
+Problem:
+    The "postmap lmdb:filename" command fails with an MDB_TXN_FULL error. This
+    problem does not exist with other Postfix databases.
+
+Background:
+    The LMDB implementation has a hard limit on the total transaction size.
+    This limit is independent of the LMDB database size. Therefore, the problem
+    cannot be resolved by increasing the lmdb_map_size value.
+
+    This symptom is indicative of a flawed design. All LMDB data structures
+    should share the same storage pool so that they can scale with the database
+    size, and so that all "out of storage" errors are resolved by increasing
+    the database size.
+
 Problem:
     The "postmap lmdb:filename" command fails with an MDB_MAP_FULL error. This
     problem does not exist with other Postfix databases.
index ef167571bf8a7b886d463f56b6870680f2942a4f..6a9e1a7826db3233308b55e90c0d542875064333 100644 (file)
@@ -14,6 +14,16 @@ specifies the release date of a stable release or snapshot release.
 If you upgrade from Postfix 2.9 or earlier, read RELEASE_NOTES-2.10
 before proceeding.
 
+Major changes with snapshot 20130319
+====================================
+
+Postfix support for LMDB databases is withdrawn due to the existence
+of a hard limit (an "out of storage" failure mode that cannot be
+resolved by increasing the database size).
+
+Postfix may support LMDB again when without exception all "out of
+storage" failure modes are resolved by increasing the database size.
+
 Major changes with snapshot 20130315
 ====================================
 
index 0c1169d99d32d9834ce80fbdf090d5f6d938f94c..775db144522b05b9caf1da77bb20a5b65ed76e4f 100644 (file)
@@ -311,14 +311,12 @@ name as used in "hash:table" is the database file name without the
 <dd> A non-shared, in-memory hash table. Its content are lost when
 a process terminates. </dd>
 
-<dt> <b>lmdb</b> </dt>
+<dt> <b>lmdb</b> (unsupported) </dt>
 
 <dd> The OpenLDAP LMDB database (a memory-mapped, persistent file).
 Database files are created with the <a href="postmap.1.html">postmap(1)</a> or <a href="postalias.1.html">postalias(1)</a>
 command. The database name as used in "<a href="LMDB_README.html">lmdb</a>:table" is the database
-file name without the ".lmdb" suffix. This database type has
-unexpected limitations and is therefore not part of the stable
-Postfix release.
+file name without the ".lmdb" suffix.
 
 <dt> <b>ldap</b> (read-only) </dt>
 
index 4b336814572a82ccbe195063f145f26f23b1ddcd..f2621032551680b63cc8fdaeeef8f659c62c0629 100644 (file)
 
 <h2>Introduction</h2>
 
+<dl> <dt> Note: </dt> <dd> <p> Postfix support for LMDB databases
+is withdrawn due to the existence of a hard limit (an "out of
+storage" failure mode that cannot be resolved by increasing the
+database size). </p> <p> Postfix may support LMDB again when without
+exception all "out of storage" failure modes are resolved by
+increasing the database size.  </p> </dd> </dl>
+
 <p> Postfix uses databases of various kinds to store and look up
 information. Postfix databases are specified as "type:name".
 OpenLDAP LMDB implements the Postfix database type "lmdb".
@@ -120,6 +127,24 @@ errors.  </strong></p>
 
 <dl>
 
+<dt> Problem: </dt> <dd> <p> The "postmap <a href="LMDB_README.html">lmdb</a>:filename" command
+fails with an MDB_TXN_FULL error.  This problem does not exist with
+other Postfix databases. </p> </dd>
+
+<dt> Background: </dt>
+
+<dd>
+
+<p> The LMDB implementation has a hard limit on the total transaction
+size. This limit is independent of the LMDB database size. Therefore,
+the problem cannot be resolved by increasing the <a href="postconf.5.html#lmdb_map_size">lmdb_map_size</a>
+value. </p>
+
+<p> This symptom is indicative of a flawed design.  All LMDB data
+structures should share the same storage pool so that they can scale
+with the database size, and so that all "out of storage" errors are
+resolved by increasing the database size. </p> </dd>
+
 <dt> Problem: </dt> <dd> <p> The "postmap <a href="LMDB_README.html">lmdb</a>:filename" command
 fails with an MDB_MAP_FULL error.  This problem does not exist with
 other Postfix databases. </p> </dd>
index 309215529dd20ba2b54b215258d34a9316d203e6..e411e8c2294da3284946b5c1961d6bbf3684d368 100644 (file)
@@ -195,8 +195,12 @@ POSTCONF(1)                                                        POSTCONF(1)
                      A non-shared, in-memory hash table. Its con-
                      tent are lost when a process terminates.
 
+              <b>lmdb</b> (unsupported)
+                     The OpenLDAP LMDB database (a memory-mapped,
+                     persistent file).
+
               <b>ldap</b> (read-only)
-                     Perform lookups  using  the  LDAP  protocol.
+                     Perform  lookups  using  the  LDAP protocol.
                      This is described in <a href="ldap_table.5.html"><b>ldap_table</b>(5)</a>.
 
               <b>memcache</b>
@@ -204,156 +208,156 @@ POSTCONF(1)                                                        POSTCONF(1)
                      This is described in <a href="memcache_table.5.html"><b>memcache_table</b>(5)</a>.
 
               <b>mysql</b> (read-only)
-                     Perform lookups using  the  MYSQL  protocol.
+                     Perform  lookups  using  the MYSQL protocol.
                      This is described in <a href="mysql_table.5.html"><b>mysql_table</b>(5)</a>.
 
               <b>pcre</b> (read-only)
                      A lookup table based on Perl Compatible Reg-
-                     ular  Expressions.  The   file   format   is
+                     ular   Expressions.   The   file  format  is
                      described in <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>.
 
               <b>pgsql</b> (read-only)
-                     Perform  lookups using the PostgreSQL proto-
+                     Perform lookups using the PostgreSQL  proto-
                      col. This is described in <a href="pgsql_table.5.html"><b>pgsql_table</b>(5)</a>.
 
-              <b>proxy</b>  A lookup table that is implemented  via  the
-                     Postfix  <a href="proxymap.8.html"><b>proxymap</b>(8)</a> service. The table name
+              <b>proxy</b>  A  lookup  table that is implemented via the
+                     Postfix <a href="proxymap.8.html"><b>proxymap</b>(8)</a> service. The table  name
                      syntax is <i>type</i><b>:</b><i>name</i>.
 
               <b>regexp</b> (read-only)
                      A lookup table based on regular expressions.
-                     The  file  format is described in <a href="regexp_table.5.html"><b>regexp_ta-</b></a>
+                     The file format is described  in  <a href="regexp_table.5.html"><b>regexp_ta-</b></a>
                      <a href="regexp_table.5.html"><b>ble</b>(5)</a>.
 
               <b>sdbm</b>   An indexed file type based on hashing.  This
-                     is  available  on  systems  with support for
+                     is available on  systems  with  support  for
                      SDBM databases.
 
               <b>socketmap</b> (read-only)
                      Query a Sendmail-style socketmap server. The
-                     name      of     the     table     specifies
-                     <b>inet</b>:<i>host</i>:<i>port</i>:<i>socketmap-name</i>  for  a   TCP-
+                     name     of     the     table      specifies
+                     <b>inet</b>:<i>host</i>:<i>port</i>:<i>socketmap-name</i>   for  a  TCP-
                      based  server,  or  <b>unix</b>:<i>pathname</i>:<i>socketmap-</i>
                      <i>name</i>  for  a  UNIX-domain  server.  In  both
-                     cases,  <i>socketmap-name</i>  is  the  name of the
+                     cases, <i>socketmap-name</i> is  the  name  of  the
                      socketmap.
 
               <b>sqlite</b> (read-only)
-                     Perform lookups from SQLite database  files.
+                     Perform  lookups from SQLite database files.
                      This is described in <a href="sqlite_table.5.html"><b>sqlite_table</b>(5)</a>.
 
               <b>static</b> (read-only)
-                     A  table  that  always  returns  its name as
-                     lookup result.  For  example,  <b><a href="DATABASE_README.html#types">static</a>:foobar</b>
-                     always  returns  the string <b>foobar</b> as lookup
+                     A table that  always  returns  its  name  as
+                     lookup  result.  For  example, <b><a href="DATABASE_README.html#types">static</a>:foobar</b>
+                     always returns the string <b>foobar</b>  as  lookup
                      result.
 
               <b>tcp</b> (read-only)
                      Perform lookups using a simple request-reply
-                     protocol  that is described in <a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>.
+                     protocol that is described in  <a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>.
 
               <b>texthash</b> (read-only)
-                     Produces similar  results  as  hash:  files,
+                     Produces  similar  results  as  hash: files,
                      except  that  you  don't  need  to  run  the
-                     <a href="postmap.1.html"><b>postmap</b>(1)</a> command before you  can  use  the
-                     file,  and  that  it does not detect changes
+                     <a href="postmap.1.html"><b>postmap</b>(1)</a>  command  before  you can use the
+                     file, and that it does  not  detect  changes
                      after the file is read.
 
               <b>unix</b> (read-only)
-                     A limited way to query the UNIX  authentica-
+                     A  limited way to query the UNIX authentica-
                      tion  database.  The  following  tables  are
                      implemented:
 
                      <b>unix:passwd.byname</b>
-                            The table is the UNIX password  data-
-                            base.  The  key is a login name.  The
-                            result is a password  file  entry  in
+                            The  table is the UNIX password data-
+                            base. The key is a login  name.   The
+                            result  is  a  password file entry in
                             <b>passwd</b>(5) format.
 
                      <b>unix:group.byname</b>
                             The table is the UNIX group database.
-                            The key is a group name.  The  result
-                            is  a  group  file  entry in <b>group</b>(5)
+                            The  key is a group name.  The result
+                            is a group  file  entry  in  <b>group</b>(5)
                             format.
 
-              Other table types may exist depending on how  Post-
+              Other  table types may exist depending on how Post-
               fix was built.
 
-       <b>-M</b>     Show  <a href="master.5.html"><b>master.cf</b></a>  file  contents  instead of <a href="postconf.5.html"><b>main.cf</b></a>
-              file contents.  Specify <b>-Mf</b> to fold long lines  for
+       <b>-M</b>     Show <a href="master.5.html"><b>master.cf</b></a> file  contents  instead  of  <a href="postconf.5.html"><b>main.cf</b></a>
+              file  contents.  Specify <b>-Mf</b> to fold long lines for
               human readability.
 
               If <i>service ...</i> is specified, only the matching ser-
-              vices will be output. For  example,  "<b>postconf  -Mf</b>
-              <b>inet</b>"  will  output all services that listen on the
+              vices  will  be  output. For example, "<b>postconf -Mf</b>
+              <b>inet</b>" will output all services that listen  on  the
               network.
 
-              Specify zero or more arguments, each  with  a  <i>ser-</i>
-              <i>vice-type</i>  name (<b>inet</b>, <b>unix</b>, <b>fifo</b>, or <b>pass</b>) or with
-              a <i>service-name.service-type</i>  pair,  where  <i>service-</i>
+              Specify  zero  or  more arguments, each with a <i>ser-</i>
+              <i>vice-type</i> name (<b>inet</b>, <b>unix</b>, <b>fifo</b>, or <b>pass</b>) or  with
+              a  <i>service-name.service-type</i>  pair,  where <i>service-</i>
               <i>name</i> is the first field of a <a href="master.5.html">master.cf</a> entry.
 
-              This  feature  is  available  with  Postfix 2.9 and
+              This feature is  available  with  Postfix  2.9  and
               later.
 
-       <b>-n</b>     Show  only  configuration  parameters   that   have
-              explicit  <i>name=value</i>  settings in <a href="postconf.5.html"><b>main.cf</b></a>.  Specify
+       <b>-n</b>     Show   only   configuration  parameters  that  have
+              explicit <i>name=value</i> settings in  <a href="postconf.5.html"><b>main.cf</b></a>.   Specify
               <b>-nf</b> to fold long lines for human readability (Post-
               fix 2.9 and later).
 
        <b>-o</b> <i>name=value</i>
               Override <a href="postconf.5.html"><b>main.cf</b></a> parameter settings.
 
-              This  feature  is  available  with Postfix 2.10 and
+              This feature is available  with  Postfix  2.10  and
               later.
 
        <b>-t</b> [<i>template</i><b>_</b><i>file</i>]
-              Display the templates for text that appears at  the
-              beginning  of  delivery  status  notification (DSN)
+              Display  the templates for text that appears at the
+              beginning of  delivery  status  notification  (DSN)
               messages, without expanding $<b>name</b> expressions.
 
-              To override the built-in templates, specify a  tem-
-              plate  file name at the end of the <a href="postconf.1.html"><b>postconf</b>(1)</a> com-
-              mand line, or specify a file name in  <a href="postconf.5.html"><b>main.cf</b></a>  with
+              To  override the built-in templates, specify a tem-
+              plate file name at the end of the <a href="postconf.1.html"><b>postconf</b>(1)</a>  com-
+              mand  line,  or specify a file name in <a href="postconf.5.html"><b>main.cf</b></a> with
               the <b><a href="postconf.5.html#bounce_template_file">bounce_template_file</a></b> parameter.
 
               To force selection of the built-in templates, spec-
-              ify an empty template file name on the  <a href="postconf.1.html"><b>postconf</b>(1)</a>
+              ify  an empty template file name on the <a href="postconf.1.html"><b>postconf</b>(1)</a>
               command line (in shell language: "").
 
-              This  feature  is  available  with  Postfix 2.3 and
+              This feature is  available  with  Postfix  2.3  and
               later.
 
        <b>-v</b>     Enable verbose logging for debugging purposes. Mul-
-              tiple  <b>-v</b>  options  make  the software increasingly
+              tiple <b>-v</b> options  make  the  software  increasingly
               verbose.
 
        <b>-x</b>     Expand <i>$name</i> in <a href="postconf.5.html"><b>main.cf</b></a> or <a href="master.5.html"><b>master.cf</b></a> parameter val-
               ues. The expansion is recursive.
 
-              This  feature  is  available  with Postfix 2.10 and
+              This feature is available  with  Postfix  2.10  and
               later.
 
        <b>-X</b>     Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and remove the
-              parameters  named  on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line.
+              parameters named on the <a href="postconf.1.html"><b>postconf</b>(1)</a>  command  line.
               The file is copied to a temporary file then renamed
               into place.  Specify a list of parameter names, not
-              "<i>name=value</i>" pairs.  There is no  <a href="postconf.1.html"><b>postconf</b>(1)</a>  com-
+              "<i>name=value</i>"  pairs.   There is no <a href="postconf.1.html"><b>postconf</b>(1)</a> com-
               mand to perform the reverse operation.
 
-              This  feature  is  available  with Postfix 2.10 and
+              This feature is available  with  Postfix  2.10  and
               later.
 
-       <b>-#</b>     Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration  file,  and  comment
+       <b>-#</b>     Edit  the  <a href="postconf.5.html"><b>main.cf</b></a>  configuration file, and comment
               out the parameters named on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command
-              line, so that  those  parameters  revert  to  their
-              default  values.  The file is copied to a temporary
-              file then renamed into place.  Specify  a  list  of
-              parameter  names, not "<i>name=value</i>" pairs.  There is
+              line,  so  that  those  parameters  revert to their
+              default values.  The file is copied to a  temporary
+              file  then  renamed  into place.  Specify a list of
+              parameter names, not "<i>name=value</i>" pairs.  There  is
               no <a href="postconf.1.html"><b>postconf</b>(1)</a> command to perform the reverse oper-
               ation.
 
-              This  feature  is  available  with  Postfix 2.6 and
+              This feature is  available  with  Postfix  2.6  and
               later.
 
 <b>DIAGNOSTICS</b>
@@ -364,18 +368,18 @@ POSTCONF(1)                                                        POSTCONF(1)
               Directory with Postfix configuration files.
 
 <b>CONFIGURATION PARAMETERS</b>
-       The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are  especially  relevant
+       The  following  <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant
        to this program.
 
-       The  text  below  provides  only  a parameter summary. See
+       The text below provides  only  a  parameter  summary.  See
        <a href="postconf.5.html"><b>postconf</b>(5)</a> for more details including examples.
 
        <b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
-              The default location of  the  Postfix  <a href="postconf.5.html">main.cf</a>  and
+              The  default  location  of  the Postfix <a href="postconf.5.html">main.cf</a> and
               <a href="master.5.html">master.cf</a> configuration files.
 
        <b><a href="postconf.5.html#bounce_template_file">bounce_template_file</a> (empty)</b>
-              Pathname  of  a configuration file with bounce mes-
+              Pathname of a configuration file with  bounce  mes-
               sage templates.
 
 <b>FILES</b>
@@ -391,7 +395,7 @@ POSTCONF(1)                                                        POSTCONF(1)
        <a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
 
 <b>LICENSE</b>
-       The  Secure  Mailer  license must be distributed with this
+       The Secure Mailer license must be  distributed  with  this
        software.
 
 <b>AUTHOR(S)</b>
index 9cbd7518c60fee1be3574edb0334873f708f7e5f..080087767eb630c8f1a6ac142fe8e296eea64eb1 100644 (file)
@@ -183,6 +183,9 @@ databases.
 .IP \fBinternal\fR
 A non-shared, in-memory hash table. Its content are lost
 when a process terminates.
+.IP "\fBlmdb\fR (unsupported)"
+The OpenLDAP LMDB database (a memory-mapped, persistent
+file).
 .IP "\fBldap\fR (read-only)"
 Perform lookups using the LDAP protocol. This is described
 in \fBldap_table\fR(5).
index 0de4f55a27e4800dd69900370a68d7b546d650fc..591cf0d029c17f245c07881a20a65308474f9066 100644 (file)
@@ -311,14 +311,12 @@ name as used in "hash:table" is the database file name without the
 <dd> A non-shared, in-memory hash table. Its content are lost when
 a process terminates. </dd>
 
-<dt> <b>lmdb</b> </dt>
+<dt> <b>lmdb</b> (unsupported) </dt>
 
 <dd> The OpenLDAP LMDB database (a memory-mapped, persistent file).
 Database files are created with the postmap(1) or postalias(1)
 command. The database name as used in "lmdb:table" is the database
-file name without the ".lmdb" suffix. This database type has
-unexpected limitations and is therefore not part of the stable
-Postfix release.
+file name without the ".lmdb" suffix.
 
 <dt> <b>ldap</b> (read-only) </dt>
 
index 4220785dd5c67a43688629130c689a3eae6442b5..df47dc431f1385dd2fffd10321915c2f638ef630 100644 (file)
 
 <h2>Introduction</h2>
 
+<dl> <dt> Note: </dt> <dd> <p> Postfix support for LMDB databases
+is withdrawn due to the existence of a hard limit (an "out of
+storage" failure mode that cannot be resolved by increasing the
+database size). </p> <p> Postfix may support LMDB again when without
+exception all "out of storage" failure modes are resolved by
+increasing the database size.  </p> </dd> </dl>
+
 <p> Postfix uses databases of various kinds to store and look up
 information. Postfix databases are specified as "type:name".
 OpenLDAP LMDB implements the Postfix database type "lmdb".
@@ -120,6 +127,24 @@ errors.  </strong></p>
 
 <dl>
 
+<dt> Problem: </dt> <dd> <p> The "postmap lmdb:filename" command
+fails with an MDB_TXN_FULL error.  This problem does not exist with
+other Postfix databases. </p> </dd>
+
+<dt> Background: </dt>
+
+<dd>
+
+<p> The LMDB implementation has a hard limit on the total transaction
+size. This limit is independent of the LMDB database size. Therefore,
+the problem cannot be resolved by increasing the lmdb_map_size
+value. </p>
+
+<p> This symptom is indicative of a flawed design.  All LMDB data
+structures should share the same storage pool so that they can scale
+with the database size, and so that all "out of storage" errors are
+resolved by increasing the database size. </p> </dd>
+
 <dt> Problem: </dt> <dd> <p> The "postmap lmdb:filename" command
 fails with an MDB_MAP_FULL error.  This problem does not exist with
 other Postfix databases. </p> </dd>
index 95bea170272464a9f210a01fdc420d5b076d1de6..9b0344c691545bcd9c3f905cf8c64ddb702b4414 100644 (file)
 /* .IP \fBinternal\fR
 /*     A non-shared, in-memory hash table. Its content are lost
 /*     when a process terminates.
+/* .IP "\fBlmdb\fR (unsupported)"
+/*     The OpenLDAP LMDB database (a memory-mapped, persistent
+/*     file).
 /* .IP "\fBldap\fR (read-only)"
 /*     Perform lookups using the LDAP protocol. This is described
 /*     in \fBldap_table\fR(5).
index 62d882a3ae24a6e5f53d1dba9f9757a30b2649ea..3b692facb0fdb31b518903bf474e6ee89d7ca294 100644 (file)
 /*     size the table can grow to, so it must be set large enough
 /*     to accomodate the largest tables in use.
 /*
-/*     As a safety measure, when Postfix opens an LMDB database it
-/*     will set the memory size limit to at least 3x the
-/*     ".lmdb" file size, so that there is room for the file to
-/*     grow. This ensures continued availability of Postfix daemon
-/*     processes.
+/*     As a safety measure, when Postfix opens an LMDB database
+/*     it will set the memory map size to at least 3x the ".lmdb"
+/*     file size, so that there is room for the file to grow. This
+/*     ensures that a process can recover from a "table full" error
+/*     with a simple terminate-and-restart.
 /* DIAGNOSTICS
 /*     Fatal errors: cannot open file, file write error, out of memory.
 /* SEE ALSO
@@ -472,11 +472,11 @@ DICT   *dict_lmdb_open(const char *path, int open_flags, int dict_flags)
 
     /*
      * Try to ensure that the LMDB size limit is at least 3x the current LMDB
-     * file size. This should be sufficient to ensure that short-lived
-     * Postfix daemon processes can recover from a "table full" error.
+     * file size. This ensures that Postfix daemon processes can recover from
+     * a "table full" error with a simple terminate-and-restart.
      * 
-     * Note: readers must increase their LMDB size limit, too, otherwise they
-     * won't be able to continue reading a table after grows.
+     * Note: read-only applications must increase their LMDB size limit, too,
+     * otherwise they won't be able to read a table after it grows.
      */
 #ifndef SIZE_T_MAX
 #define SIZE_T_MAX __MAXINT__(size_t)