From: Peter van Dijk Date: Tue, 4 Jun 2019 18:06:20 +0000 (+0200) Subject: LUA record documentation (version number, shared model) X-Git-Tag: dnsdist-1.4.0-rc1~35^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=afafac858d89a27f5a1ba4349656ac4e86575c46;p=thirdparty%2Fpdns.git LUA record documentation (version number, shared model) Co-Authored-By: Frank Louwers <24672+franklouwers@users.noreply.github.com> --- diff --git a/docs/lua-records/index.rst b/docs/lua-records/index.rst index d44dbe1a0b..6f23cfed17 100644 --- a/docs/lua-records/index.rst +++ b/docs/lua-records/index.rst @@ -197,6 +197,20 @@ Note that to protect operators, support for LUA records must be enabled explicitly, either globally (``enable-lua-records``) or per zone (``ENABLE-LUA-RECORDS`` = 1). +.. _lua-records-shared-state: + +Shared Lua state model +---------------------- + +The default mode of operation for LUA records is to create a fresh Lua state for every query that hits a LUA record. +This way, different LUA records cannot accidentally interfere with each other, by leaving around global objects, or perhaps even deleting relevant functions. +However, creating a Lua state (and registering all our functions for it, see Reference below) takes measurable time. +For users that are confident they can write Lua scripts that will not interfere with eachother, a mode is supported where Lua states are created on the first query, and then reused forever. +In non-scientific testing this has yielded up to 10x QPS increases. + +To use this mode, set ``enable-lua-records=shared``. +Note that this enables LUA records for all zones. + Reference --------- diff --git a/docs/settings.rst b/docs/settings.rst index 50fa520f03..26417a6036 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -593,10 +593,14 @@ Enables EDNS subnet processing, for backends that support it. ``enable-lua-records`` ---------------------- -- Boolean +- One of ``no``, ``yes`` (or empty), or ``shared``, String - Default: no -Enable globally the LUA records feature +.. versionadded:: 4.2.0 + +Globally enable the :doc:`LUA records ` feature. + +To use shared LUA states, set this to ``shared``, see :ref:`lua-records-shared-state`. .. _setting-entropy-source: