From c7a0a15334e1cf3e9569752c8879990102fb9aee Mon Sep 17 00:00:00 2001 From: Nico Cartron <nicolas@ncartron.org> Date: Tue, 7 May 2019 15:23:26 +0200 Subject: [PATCH] added LMDB backend info --- docs/backends/index.rst | 2 ++ docs/backends/lmdb.rst | 73 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 docs/backends/lmdb.rst diff --git a/docs/backends/index.rst b/docs/backends/index.rst index b71c933cd..a4403bccc 100644 --- a/docs/backends/index.rst +++ b/docs/backends/index.rst @@ -22,6 +22,8 @@ The following table describes the supported backends and some of their capabilit +------------------------------------------------+--------+--------+-------+--------------+-------------+---------------------------------+--------------+ | :doc:`LDAP <ldap>` | Yes | No | No | No | No | No | ``ldap`` | +------------------------------------------------+--------+--------+-------+--------------+-------------+---------------------------------+--------------+ +| :doc:`LMDB <lmdb>` | Yes | Yes | Yes | No | Yes | Yes | ``lmdb`` | ++------------------------------------------------+--------+--------+-------+--------------+-------------+---------------------------------+--------------+ | :doc:`Lua <lua>` | Yes | Yes | No | No | Yes | Yes | ``lua`` | +------------------------------------------------+--------+--------+-------+--------------+-------------+---------------------------------+--------------+ | :doc:`Lua2 <lua2>` | Yes | Yes | No | No | Yes | Yes | ``lua2`` | diff --git a/docs/backends/lmdb.rst b/docs/backends/lmdb.rst new file mode 100644 index 000000000..eec1f7983 --- /dev/null +++ b/docs/backends/lmdb.rst @@ -0,0 +1,73 @@ +LMDB backend +============ + +* Native: Yes +* Master: Yes +* Slave: Yes +* Superslave: No +* Case: All lower +* DNSSEC: Yes +* Disabled data: No +* Comments: No +* Module name: lmdb +* Launch name: ``lmdb`` + +Enabling the backend +-------------------- + +When building PowerDNS yourself, append ``lmdb`` to ``--with-modules`` +or ``--with-dynmodules``. It is expected that most pre-built packages +contain this backend or be separately installable. + + +Settings +-------- + +.. _setting-lmdb-filename: + +``lmdb-filename`` +^^^^^^^^^^^^^^^^^ + +Path to the LMDB file (e.g. */var/spool/powerdns/pdns.lmdb*) + +.. warning:: + On systemd systems, + When running PowerDNS via the provided systemd service file, + `ProtectSystem <http://www.freedesktop.org/software/systemd/man/systemd.exec.html#ProtectSystem=>`_ + is set to ``full``, this means PowerDNS is unable to write to e.g. + ``/etc`` and ``/home``, possibly being unable to write to the LMDB database. + +.. _setting-lmdb-shards: + +``lmdb-shards`` +^^^^^^^^^^^^^^^^^ + +Records database will be split into this number of shards +e.g. lmdb-shards=64 + +.. _setting-lmdb-sync-mode: + +``lmdb-sync-mode`` +^^^^^^^^^^^^^^^^^ + +Synchronisation mode: nosync, nometasync, mapasync + +* ``parsed successfully at <time>`` or + +* ``nosync``: Don't flush systems buffers to disk when committing a transation. + This means a system crash can corrupt the database or lose the last + transactions if buffers are not yet flushed to disk. +* ``nometasync``: Flush the data on a commit. Slightly faster than doing a + full sync, but can potentially lose the last committed transaction if the + operating system crashes. +* ``mapasync``: use asynchronous flushes to disk. As with nosync, a system crash + can then corrupt the database or lose the last transactions. + + +LMDB Structure +-------------- + +PowerDNS will create the database structure, no need to manually create the +database schema. +Also, it is not possible to directly query the LMDB DB, so recommendation is to +use either the API, or pdnsutil. -- 2.40.0