From d557573f7f89272c9ea1665d3e1af8701bc7d013 Mon Sep 17 00:00:00 2001 From: Kseniia Antonova Date: Mon, 15 Aug 2022 12:59:18 +0300 Subject: [PATCH 1/7] Add event, timeout, and netbox method --- doc/reference/reference_lua/box_ctl.rst | 4 +++ .../reference_lua/box_ctl/on_shutdown.rst | 10 +++--- .../box_ctl/set_on_shutdown_timeout.rst | 16 +++++++++ .../box_events/system_events.rst | 23 ++++++++++++ doc/reference/reference_lua/net_box.rst | 35 +++++++++++++++++-- 5 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst diff --git a/doc/reference/reference_lua/box_ctl.rst b/doc/reference/reference_lua/box_ctl.rst index 005b0dd5f4..4255f74f66 100644 --- a/doc/reference/reference_lua/box_ctl.rst +++ b/doc/reference/reference_lua/box_ctl.rst @@ -44,6 +44,9 @@ Below is a list of all ``box.ctl`` functions. * - :doc:`./box_ctl/on_shutdown` - Create a "shutdown trigger" + * - :doc:`.box_ctl/set_on_shutdown_timeout` + - Set a timeout in seconds for the ``on_shutdown`` trigger + * - :doc:`./box_ctl/is_recovery_finished` - Check if recovery has finished @@ -57,5 +60,6 @@ Below is a list of all ``box.ctl`` functions. box_ctl/wait_rw box_ctl/on_schema_init box_ctl/on_shutdown + box_ctl/set_on_shutdown_timeout box_ctl/is_recovery_finished box_ctl/promote diff --git a/doc/reference/reference_lua/box_ctl/on_shutdown.rst b/doc/reference/reference_lua/box_ctl/on_shutdown.rst index a04ce2bbac..fd07c43bf8 100644 --- a/doc/reference/reference_lua/box_ctl/on_shutdown.rst +++ b/doc/reference/reference_lua/box_ctl/on_shutdown.rst @@ -1,16 +1,17 @@ -.. _box_ctl-on_shutdown: +.. _box_ctl-on_shutdown: =============================================================================== box.ctl.on_shutdown() =============================================================================== -.. module:: box.ctl +.. module:: box.ctl The ``box.ctl`` submodule also contains two functions for the two :ref:`server trigger ` definitions: ``on_shutdown`` and ``on_schema_init``. Please, familiarize yourself with the mechanism of trigger functions before using them. +Details about trigger characteristics are in the :ref:`triggers ` section. -.. function:: on_shutdown(trigger-function [, old-trigger-function]) +.. function:: on_shutdown(trigger-function [, old-trigger-function]) Create a "shutdown :ref:`trigger `". The ``trigger-function`` will be executed @@ -29,5 +30,6 @@ Please, familiarize yourself with the mechanism of trigger functions before usin If the parameters are (nil, old-trigger-function), then the old trigger is deleted. - Details about trigger characteristics are in the :ref:`triggers ` section. + If you want to set a timeout for this trigger, + use the :ref:`set_on_shutdown_timeout ` function. diff --git a/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst b/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst new file mode 100644 index 0000000000..01ecf1745c --- /dev/null +++ b/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst @@ -0,0 +1,16 @@ +.. _box_ctl-on_shutdown_timeout: + +=============================================================================== +box.ctl.set_on_shutdown_timeout() +=============================================================================== + +.. module:: box.ctl + +.. function:: set_on_shutdown_timeout([timeout]) + + Set a timeout for the :ref:`on_shutdown ` trigger. + + :param double timeout: time to wait for the trigger to be completed. The default value is 3 seconds. + + :return: nil + diff --git a/doc/reference/reference_lua/box_events/system_events.rst b/doc/reference/reference_lua/box_events/system_events.rst index 8dfaf0c7f2..53ee58093a 100644 --- a/doc/reference/reference_lua/box_events/system_events.rst +++ b/doc/reference/reference_lua/box_events/system_events.rst @@ -3,6 +3,7 @@ System events ============= +Since 2.10.0. Predefined events have a special naming schema -- theirs names always start with the reserved ``box.`` prefix. It means that you cannot create new events with it. @@ -12,6 +13,7 @@ The system processes the following events: * ``box.status`` * ``box.election`` * ``box.schema`` +* ``box.shutdown`` In response to each event, the server sends back certain ``IPROTO`` fields. @@ -86,6 +88,7 @@ that are necessary to find out the most recent writable leader. MP_STR “leader”: MP_UINT box.info.election.leader, } + box.schema ~~~~~~~~~~ @@ -99,6 +102,26 @@ Contains schema-related data. MP_STR “version”: MP_UINT schema_version, } +.. _system-events_box-shutdown: + +box.shutdown +~~~~~~~~~~~~ + +Contains a boolean value which states if there is an active shutdown request. + +``box.shutdown`` is supposed to be used with connectors to implement the graceful shutdown protocol. + +The event is generated when the server receives a shutdown request (``os.exit()`` command or +:ref:`SIGTERM ` signal). +The server calls :ref:`box.broadcast('box.shutdown', true) ` +from the :ref:`box.ctl.on_shutdown() ` trigger callback. +Then the server stops accepting new connections. +It waits for all the subscribed connections to be closed. +The client receives the event marked as ``true`` and closes the connection gracefully. +If all the subscribed connections are closed, the server will be shutdown. +Otherwise, a timeout occurs. +The timeout is configured with the :ref:`set_on_shutdown_timeout() ` function. + Usage example ------------- diff --git a/doc/reference/reference_lua/net_box.rst b/doc/reference/reference_lua/net_box.rst index 3526ef8a71..3c3372ef88 100644 --- a/doc/reference/reference_lua/net_box.rst +++ b/doc/reference/reference_lua/net_box.rst @@ -131,7 +131,9 @@ Below is a list of all ``net.box`` functions. * - :ref:`conn:on_connect() ` - Define a connect trigger * - :ref:`conn:on_disconnect() ` - - Define a disconnect trigger + - Define a disconnect trigger + * - :ref:`conn:on_shutdown() ` + - Define a shutdown trigger * - :ref:`conn:on_schema_reload() ` - Define a trigger when schema is modified * - :ref:`conn:new_stream() ` @@ -820,9 +822,38 @@ With the ``net.box`` module, you can use the following be replaced by trigger-function :return: nil or function pointer +.. _net_box-on_shutdown: + +.. function:: conn:on_shutdown([trigger-function[, old-trigger-function]]) + + Define a trigger for shutdown when a :ref:`box.shutdown ` event is received. + + The trigger is invoked in a new fiber. + While ``on_shutdown()`` trigger is running, the connection remains active. + It means that it is allowed to send new requests from a trigger callback. + + After the ``on_shutdown()`` trigger return, the ``net.box`` connection switches to the ``graceful_shutdown`` state + (check :ref:`the state diagram ` for details). + In this state, no new requests are allowed. + + If all in-progress requests are completed, the connection wil be closed. + It means that the ``net.box`` connection switches to the ``error`` or ``error_reconnect`` state. + The state depends on whether the ``reconnect_after`` option is set. + + Servers that do not support the ``box.shutdown`` event or :ref:`IPROTO_WATCH ` + close the connection abruptly. + In this case, the ``on_shutdown()`` triggers will never be executed. + + :param function trigger-function: function which will become the trigger + function. Takes the ``conn`` + object as the first argument + :param function old-trigger-function: existing trigger function which will + be replaced by trigger-function + :return: nil or function pointer + .. _net_box-on_schema_reload: -.. function:: conn:on_schema_reload([trigger-function[, old-trigger-function]]) +.. function:: conn:on_schema_reload([trigger-function[, old-trigger-function]]) Define a trigger executed when some operation has been performed on the remote server after schema has been updated. So, if a server request fails due to a From d2bde96e779e7c7c94c08f5229229a360e858fd1 Mon Sep 17 00:00:00 2001 From: Kseniia Antonova Date: Wed, 24 Aug 2022 00:18:08 +0300 Subject: [PATCH 2/7] Add diagram, fix .po file --- .../box_events/system_events.rst | 1 - doc/reference/reference_lua/net_box.rst | 26 +++-- doc/reference/reference_lua/net_states.png | Bin 0 -> 193596 bytes doc/reference/reference_lua/net_states.svg | 104 ------------------ .../reference_lua/box_ctl/on_shutdown.po | 15 ++- 5 files changed, 26 insertions(+), 120 deletions(-) create mode 100644 doc/reference/reference_lua/net_states.png delete mode 100644 doc/reference/reference_lua/net_states.svg diff --git a/doc/reference/reference_lua/box_events/system_events.rst b/doc/reference/reference_lua/box_events/system_events.rst index 53ee58093a..c2b2f3bfa4 100644 --- a/doc/reference/reference_lua/box_events/system_events.rst +++ b/doc/reference/reference_lua/box_events/system_events.rst @@ -88,7 +88,6 @@ that are necessary to find out the most recent writable leader. MP_STR “leader”: MP_UINT box.info.election.leader, } - box.schema ~~~~~~~~~~ diff --git a/doc/reference/reference_lua/net_box.rst b/doc/reference/reference_lua/net_box.rst index 3c3372ef88..e0f715bafd 100644 --- a/doc/reference/reference_lua/net_box.rst +++ b/doc/reference/reference_lua/net_box.rst @@ -60,25 +60,29 @@ The diagram below shows possible connection states and transitions: .. ifconfig:: builder not in ('latex', ) - .. image:: net_states.svg + .. image:: net_states.png :align: center - :alt: net_states.svg + :alt: net_states.png On this diagram: -* ``net_box.connect()`` method spawns a worker fiber, which will establish the connection and start the state machine. +* ``net_box.connect()`` method spawns a worker fiber, which will establish the connection and start the state machine. -* The state machine goes to the ‘initial‘ state. +* The state machine goes to the ``initial`` state. -* Authentication and schema upload. - It is possible later on to re-enter the ‘fetch_schema’ state from ‘active’ to trigger schema reload. +* Authentication and schema upload. + It is possible later on to re-enter the ``fetch_schema`` state from ``active`` to trigger schema reload. -* The transport goes to the ‘error’ state in case of an error. - It can happen, for example, if the server closed the connection. - If the ``reconnect_after`` option is set, instead of the ‘error’ state, the transport goes to the ‘error_reconnect’ state. +* If there was an active :ref:`on_shutdown ` trigger, the state changes + to the ``graceful_shutdown`` state after the trigger return. -* ``conn.close()`` method sets the state to ‘closed’ and kills the worker. - If the transport is already in the ‘error’ state, ``close()`` does nothing. +* The transport goes to the ‘error’ state in case of an error. + It can happen, for example, if the server closed the connection. + If the ``reconnect_after`` option is set, instead of the ‘error’ state, + the transport goes to the ``error_reconnect`` state. + +* ```conn.close()`` method sets the state to ``closed`` and kills the worker. + `If the transport is already in the ``error`` state, ``close()`` does nothing. =============================================================================== Index diff --git a/doc/reference/reference_lua/net_states.png b/doc/reference/reference_lua/net_states.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1c43f57f250037be4ad68b1dbac03c5f6ffe45 GIT binary patch literal 193596 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�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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/locale/ru/LC_MESSAGES/reference/reference_lua/box_ctl/on_shutdown.po b/locale/ru/LC_MESSAGES/reference/reference_lua/box_ctl/on_shutdown.po index cd25c99419..db2ae65e5a 100644 --- a/locale/ru/LC_MESSAGES/reference/reference_lua/box_ctl/on_shutdown.po +++ b/locale/ru/LC_MESSAGES/reference/reference_lua/box_ctl/on_shutdown.po @@ -13,6 +13,13 @@ msgstr "" "``on_schema_init``. Пожалуйста, ознакомьтесь с механизмом триггерных функций" " перед их использованием." +msgid "" +"Details about trigger characteristics are in the :ref:`triggers ` section." +msgstr "" +"Подробная информация о характеристиках триггера находится в разделе " +":ref:`Триггеры `." + msgid "" "Create a \"shutdown :ref:`trigger `\". The ``trigger-function`` " "will be executed whenever :ref:`os.exit() ` happens, or when the " @@ -49,8 +56,8 @@ msgstr "" "удален." msgid "" -"Details about trigger characteristics are in the :ref:`triggers ` section." +"If you want to set a timeout for this trigger, " +"use the :ref:`set_on_shutdown_timeout ` function." msgstr "" -"Подробная информация о характеристиках триггера находится в разделе " -":ref:`Триггеры `." +"Если вы хотите установить таймаут для этого триггера, " +"используйте функцию :ref:`set_on_shutdown_timeout `." From 928bbd0a8f2c86d80f8498f50f8c20f145b01ef8 Mon Sep 17 00:00:00 2001 From: Kseniia Antonova Date: Wed, 24 Aug 2022 01:08:36 +0300 Subject: [PATCH 3/7] fix typos --- doc/reference/reference_lua/box_ctl.rst | 2 +- doc/reference/reference_lua/net_box.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/reference/reference_lua/box_ctl.rst b/doc/reference/reference_lua/box_ctl.rst index 4255f74f66..ed31084d6e 100644 --- a/doc/reference/reference_lua/box_ctl.rst +++ b/doc/reference/reference_lua/box_ctl.rst @@ -44,7 +44,7 @@ Below is a list of all ``box.ctl`` functions. * - :doc:`./box_ctl/on_shutdown` - Create a "shutdown trigger" - * - :doc:`.box_ctl/set_on_shutdown_timeout` + * - :doc:`./box_ctl/set_on_shutdown_timeout` - Set a timeout in seconds for the ``on_shutdown`` trigger * - :doc:`./box_ctl/is_recovery_finished` diff --git a/doc/reference/reference_lua/net_box.rst b/doc/reference/reference_lua/net_box.rst index e0f715bafd..782e9928d4 100644 --- a/doc/reference/reference_lua/net_box.rst +++ b/doc/reference/reference_lua/net_box.rst @@ -81,8 +81,8 @@ On this diagram: If the ``reconnect_after`` option is set, instead of the ‘error’ state, the transport goes to the ``error_reconnect`` state. -* ```conn.close()`` method sets the state to ``closed`` and kills the worker. - `If the transport is already in the ``error`` state, ``close()`` does nothing. +* ``conn.close()`` method sets the state to ``closed`` and kills the worker. + If the transport is already in the ``error`` state, ``close()`` does nothing. =============================================================================== Index From 60ca7e057c0046bcf9dd8b8e10113568b5bb1225 Mon Sep 17 00:00:00 2001 From: Kseniia Antonova Date: Wed, 24 Aug 2022 13:57:38 +0300 Subject: [PATCH 4/7] Apply suggestions from review --- doc/dev_guide/internals/box_protocol.rst | 33 ++++++++++++++++++ .../box_ctl/set_on_shutdown_timeout.rst | 2 ++ doc/reference/reference_lua/box_events.rst | 2 ++ .../box_events/system_events.rst | 18 ++++------ doc/reference/reference_lua/net_box.rst | 25 +++++++------ doc/reference/reference_lua/net_states.png | Bin 193596 -> 191811 bytes 6 files changed, 57 insertions(+), 23 deletions(-) diff --git a/doc/dev_guide/internals/box_protocol.rst b/doc/dev_guide/internals/box_protocol.rst index a4c6d84906..2714bcc8c1 100644 --- a/doc/dev_guide/internals/box_protocol.rst +++ b/doc/dev_guide/internals/box_protocol.rst @@ -967,6 +967,8 @@ See the :ref:`Watchers ` section below. Watchers -------- +Since :doc:`2.10.0 `. + The commands below support asynchronous server-client notifications signalled with :ref:`box.broadcast() `. Servers that support the new feature set the ``IPROTO_FEATURE_WATCHERS`` feature in reply to the ``IPROTO_ID`` command. @@ -1073,6 +1075,37 @@ The body is a 2-item map: ``IPROTO_EVENT_DATA`` (code 0x57) contains data sent to a remote watcher. The parameter is optional, the default value is ``nil``. +.. _box-protocol-shutdown: + +Graceful shutdown protocol +-------------------------- + +Since :doc:`2.10.0 `. + +The protocol uses the event subscription system. +For more information about it, see :ref:`box.shutdown ` +and :ref:`reference for the event watchers `. + +The shutdown protocol works in the following way: + +#. First, the server receives a shutdown request. + It can be either an ``os.exit()`` command or a :ref:`SIGTERM ` signal. + +#. Then the :ref:`box.shutdown ` event is generated. + The server broadcasts it to all subscribed remote watchers (see :ref:`IPROTO_WATCH `). + That is, the server calls :ref:`box.broadcast('box.shutdown', true) ` + from the :ref:`box.ctl.on_shutdown() ` trigger callback. + Once this is done, the server stops accepting new connections. + +#. From now on, the server waits until all subscribed connections are terminated. + +#. At the same time, the client gets the ``box.shutdown`` event and shuts the connection down gracefully. + +#. After all connections are closed, the server will be stopped. + Otherwise, a timeout occurs, and the Tarantool exits immediately. + +You can set up the required timeout with the :ref:`set_on_shutdown_timeout() ` function. + .. _box_protocol-responses: Responses if no error and no SQL diff --git a/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst b/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst index 01ecf1745c..afb6c1cd58 100644 --- a/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst +++ b/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst @@ -9,6 +9,8 @@ box.ctl.set_on_shutdown_timeout() .. function:: set_on_shutdown_timeout([timeout]) Set a timeout for the :ref:`on_shutdown ` trigger. + If the timeout has expired, the server stops immediately + regardless of whether there are any ``on_shutdown`` triggers left. :param double timeout: time to wait for the trigger to be completed. The default value is 3 seconds. diff --git a/doc/reference/reference_lua/box_events.rst b/doc/reference/reference_lua/box_events.rst index 60a5330405..513c57faed 100644 --- a/doc/reference/reference_lua/box_events.rst +++ b/doc/reference/reference_lua/box_events.rst @@ -3,6 +3,8 @@ Event watchers ============== +Since :doc:`2.10.0 `. + The ``box`` module contains some features related to event subscriptions, also known as :term:`watchers `. The subscriptions are used to inform the client about server-side :term:`events `. Each event subscription is defined by a certain key. diff --git a/doc/reference/reference_lua/box_events/system_events.rst b/doc/reference/reference_lua/box_events/system_events.rst index c2b2f3bfa4..11ddca8f00 100644 --- a/doc/reference/reference_lua/box_events/system_events.rst +++ b/doc/reference/reference_lua/box_events/system_events.rst @@ -3,7 +3,8 @@ System events ============= -Since 2.10.0. +Since :doc:`2.10.0 `. + Predefined events have a special naming schema -- theirs names always start with the reserved ``box.`` prefix. It means that you cannot create new events with it. @@ -106,20 +107,13 @@ Contains schema-related data. box.shutdown ~~~~~~~~~~~~ -Contains a boolean value which states if there is an active shutdown request. - -``box.shutdown`` is supposed to be used with connectors to implement the graceful shutdown protocol. +Contains a boolean value which indicates whether there is an active shutdown request. The event is generated when the server receives a shutdown request (``os.exit()`` command or :ref:`SIGTERM ` signal). -The server calls :ref:`box.broadcast('box.shutdown', true) ` -from the :ref:`box.ctl.on_shutdown() ` trigger callback. -Then the server stops accepting new connections. -It waits for all the subscribed connections to be closed. -The client receives the event marked as ``true`` and closes the connection gracefully. -If all the subscribed connections are closed, the server will be shutdown. -Otherwise, a timeout occurs. -The timeout is configured with the :ref:`set_on_shutdown_timeout() ` function. + +The ``box.shutdown`` event is supposed to be used with connectors. +For more information, refer to the :ref:`graceful shutdown protocol ` section. Usage example ------------- diff --git a/doc/reference/reference_lua/net_box.rst b/doc/reference/reference_lua/net_box.rst index 782e9928d4..11b95e9dcb 100644 --- a/doc/reference/reference_lua/net_box.rst +++ b/doc/reference/reference_lua/net_box.rst @@ -73,10 +73,12 @@ On this diagram: * Authentication and schema upload. It is possible later on to re-enter the ``fetch_schema`` state from ``active`` to trigger schema reload. -* If there was an active :ref:`on_shutdown ` trigger, the state changes - to the ``graceful_shutdown`` state after the trigger return. +* The state changes to the ``graceful_shutdown`` state when the state machine + receives a :ref:`box.shutdown ` event from the remote host + (see :ref:``). + Once all pending requests are completed, the state machine switches to the ``error`` (``error_reconnect``) state. -* The transport goes to the ‘error’ state in case of an error. +* The transport goes to the ``error`` state in case of an error. It can happen, for example, if the server closed the connection. If the ``reconnect_after`` option is set, instead of the ‘error’ state, the transport goes to the ``error_reconnect`` state. @@ -832,21 +834,22 @@ With the ``net.box`` module, you can use the following Define a trigger for shutdown when a :ref:`box.shutdown ` event is received. - The trigger is invoked in a new fiber. - While ``on_shutdown()`` trigger is running, the connection remains active. + The trigger starts in a new fiber. + While the ``on_shutdown()`` trigger is running, the connection stays active. It means that it is allowed to send new requests from a trigger callback. - After the ``on_shutdown()`` trigger return, the ``net.box`` connection switches to the ``graceful_shutdown`` state + After the trigger return, the ``net.box`` connection goes to the ``graceful_shutdown`` state (check :ref:`the state diagram ` for details). In this state, no new requests are allowed. + The connection waits for all pending requests to be completed. - If all in-progress requests are completed, the connection wil be closed. - It means that the ``net.box`` connection switches to the ``error`` or ``error_reconnect`` state. - The state depends on whether the ``reconnect_after`` option is set. + Once all in-progress requests have been processed, the connection is closed. + The state changes to ``error`` or ``error_reconnect`` + (if the ``reconnect_after`` option is defined). Servers that do not support the ``box.shutdown`` event or :ref:`IPROTO_WATCH ` - close the connection abruptly. - In this case, the ``on_shutdown()`` triggers will never be executed. + just close the connection abruptly. + In this case, the ``on_shutdown()`` trigger is not executed. :param function trigger-function: function which will become the trigger function. Takes the ``conn`` diff --git a/doc/reference/reference_lua/net_states.png b/doc/reference/reference_lua/net_states.png index 2f1c43f57f250037be4ad68b1dbac03c5f6ffe45..0e3bfe8105379bb4b865ab3d46c8f6a38d7d793d 100644 GIT binary patch delta 9556 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

^$z$76hdFcgeA6rOs=x{ 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 delta 12060 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 P_cM@t+IRC+tX};u=@*h) From 40ed099ab9b781c396ca59004cec25c966684c65 Mon Sep 17 00:00:00 2001 From: Kseniia Antonova Date: Thu, 25 Aug 2022 15:10:55 +0300 Subject: [PATCH 5/7] Fix typos --- doc/dev_guide/internals/box_protocol.rst | 6 +++--- doc/reference/reference_lua/net_box.rst | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/dev_guide/internals/box_protocol.rst b/doc/dev_guide/internals/box_protocol.rst index 2714bcc8c1..03c4f74a51 100644 --- a/doc/dev_guide/internals/box_protocol.rst +++ b/doc/dev_guide/internals/box_protocol.rst @@ -1083,7 +1083,7 @@ Graceful shutdown protocol Since :doc:`2.10.0 `. The protocol uses the event subscription system. -For more information about it, see :ref:`box.shutdown ` +For more information about it, see :ref:`box.shutdown ` and :ref:`reference for the event watchers `. The shutdown protocol works in the following way: @@ -1103,8 +1103,8 @@ The shutdown protocol works in the following way: #. After all connections are closed, the server will be stopped. Otherwise, a timeout occurs, and the Tarantool exits immediately. - -You can set up the required timeout with the :ref:`set_on_shutdown_timeout() ` function. + You can set up the required timeout with the + :ref:`set_on_shutdown_timeout() ` function. .. _box_protocol-responses: diff --git a/doc/reference/reference_lua/net_box.rst b/doc/reference/reference_lua/net_box.rst index 11b95e9dcb..977de23e08 100644 --- a/doc/reference/reference_lua/net_box.rst +++ b/doc/reference/reference_lua/net_box.rst @@ -75,7 +75,7 @@ On this diagram: * The state changes to the ``graceful_shutdown`` state when the state machine receives a :ref:`box.shutdown ` event from the remote host - (see :ref:``). + (see :ref:`conn:on_shutdown() `). Once all pending requests are completed, the state machine switches to the ``error`` (``error_reconnect``) state. * The transport goes to the ``error`` state in case of an error. From d5e2ce7b0254f0157144131545350b261de9ef87 Mon Sep 17 00:00:00 2001 From: Kseniia Antonova Date: Fri, 26 Aug 2022 13:03:46 +0300 Subject: [PATCH 6/7] Apply suggestions from code review --- doc/dev_guide/internals/box_protocol.rst | 17 ++++++++++++++--- .../box_ctl/set_on_shutdown_timeout.rst | 2 +- .../reference_lua/box_events/system_events.rst | 15 +++++++++------ doc/reference/reference_lua/net_box.rst | 6 ++++-- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/doc/dev_guide/internals/box_protocol.rst b/doc/dev_guide/internals/box_protocol.rst index 03c4f74a51..ecdd5be639 100644 --- a/doc/dev_guide/internals/box_protocol.rst +++ b/doc/dev_guide/internals/box_protocol.rst @@ -1082,9 +1082,20 @@ Graceful shutdown protocol Since :doc:`2.10.0 `. +The graceful shutdown protocol is a mechanism that helps to prevent data loss in requests in case of a shutdown command. +According to the protocol, when a server receives an ``os.exit()`` command or a ``SIGTERM`` signal, +it does not exit immediately. +Instead of that, first, the server stops listening for new connections. +Then, the server sends the shutdown packets to all connections that support the graceful shutdown protocol. +When a client is notified about the upcoming server exit, it stops serving any new requests and +waits for active requests to complete before closing the connections. +Once all connections are terminated, the server will be shut down. + The protocol uses the event subscription system. -For more information about it, see :ref:`box.shutdown ` -and :ref:`reference for the event watchers `. +That is, the feature is available if a server supports :ref:`box.shutdown ` event +and ``IPROTO_WATCH``. +For more information about it, see :ref:`reference for the event watchers ` +and the :ref:`corresponding section ` in Box Protocol. The shutdown protocol works in the following way: @@ -1095,7 +1106,7 @@ The shutdown protocol works in the following way: The server broadcasts it to all subscribed remote watchers (see :ref:`IPROTO_WATCH `). That is, the server calls :ref:`box.broadcast('box.shutdown', true) ` from the :ref:`box.ctl.on_shutdown() ` trigger callback. - Once this is done, the server stops accepting new connections. + Once this is done, the server stops listening for new connections. #. From now on, the server waits until all subscribed connections are terminated. diff --git a/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst b/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst index afb6c1cd58..30fbe6f5b6 100644 --- a/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst +++ b/doc/reference/reference_lua/box_ctl/set_on_shutdown_timeout.rst @@ -10,7 +10,7 @@ box.ctl.set_on_shutdown_timeout() Set a timeout for the :ref:`on_shutdown ` trigger. If the timeout has expired, the server stops immediately - regardless of whether there are any ``on_shutdown`` triggers left. + regardless of whether any ``on_shutdown`` triggers are left unexecuted. :param double timeout: time to wait for the trigger to be completed. The default value is 3 seconds. diff --git a/doc/reference/reference_lua/box_events/system_events.rst b/doc/reference/reference_lua/box_events/system_events.rst index 11ddca8f00..1dd5aec81f 100644 --- a/doc/reference/reference_lua/box_events/system_events.rst +++ b/doc/reference/reference_lua/box_events/system_events.rst @@ -29,7 +29,7 @@ This triggers the ``box.info`` event, which states that the value of ``box.info. while ``box.info.uuid`` and ``box.info.cluster.uuid`` remain the same. box.id -~~~~~~ +------ Contains :ref:`identification ` of the instance. Value changes are rare. @@ -53,7 +53,7 @@ Value changes are rare. } box.status -~~~~~~~~~~ +---------- Contains generic information about the instance status. @@ -70,7 +70,7 @@ Contains generic information about the instance status. } box.election -~~~~~~~~~~~~ +------------ Contains fields of :doc:`box.info.election ` that are necessary to find out the most recent writable leader. @@ -90,7 +90,7 @@ that are necessary to find out the most recent writable leader. } box.schema -~~~~~~~~~~ +---------- Contains schema-related data. @@ -105,14 +105,17 @@ Contains schema-related data. .. _system-events_box-shutdown: box.shutdown -~~~~~~~~~~~~ +------------ Contains a boolean value which indicates whether there is an active shutdown request. The event is generated when the server receives a shutdown request (``os.exit()`` command or :ref:`SIGTERM ` signal). -The ``box.shutdown`` event is supposed to be used with connectors. +The ``box.shutdown`` event is applied for the graceful shutdown protocol. +It is a feature which is available since :doc:`2.10.0 `. +This protocol is supposed to be used with connectors to signal a client about the upcoming server shutdown and +close active connections without broken requests. For more information, refer to the :ref:`graceful shutdown protocol ` section. Usage example diff --git a/doc/reference/reference_lua/net_box.rst b/doc/reference/reference_lua/net_box.rst index 977de23e08..e4c4792555 100644 --- a/doc/reference/reference_lua/net_box.rst +++ b/doc/reference/reference_lua/net_box.rst @@ -56,6 +56,8 @@ Most ``net.box`` methods accept the last ``{options}`` argument, which can be: The default value is ``false``. For an example, see option description :ref:`below `. +.. _net_box-state_diagram: + The diagram below shows possible connection states and transitions: .. ifconfig:: builder not in ('latex', ) @@ -836,10 +838,10 @@ With the ``net.box`` module, you can use the following The trigger starts in a new fiber. While the ``on_shutdown()`` trigger is running, the connection stays active. - It means that it is allowed to send new requests from a trigger callback. + It means that the trigger callback is allowed to send new requests. After the trigger return, the ``net.box`` connection goes to the ``graceful_shutdown`` state - (check :ref:`the state diagram ` for details). + (check :ref:`the state diagram ` for details). In this state, no new requests are allowed. The connection waits for all pending requests to be completed. From c8356ae9841d578c5516eb3a0fcb7532dae7b7c8 Mon Sep 17 00:00:00 2001 From: Kseniia Antonova Date: Mon, 5 Sep 2022 13:46:14 +0300 Subject: [PATCH 7/7] Minor fixes --- doc/dev_guide/internals/box_protocol.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/dev_guide/internals/box_protocol.rst b/doc/dev_guide/internals/box_protocol.rst index ecdd5be639..de4f85eed9 100644 --- a/doc/dev_guide/internals/box_protocol.rst +++ b/doc/dev_guide/internals/box_protocol.rst @@ -1092,10 +1092,10 @@ waits for active requests to complete before closing the connections. Once all connections are terminated, the server will be shut down. The protocol uses the event subscription system. -That is, the feature is available if a server supports :ref:`box.shutdown ` event +That is, the feature is available if the server supports the :ref:`box.shutdown ` event and ``IPROTO_WATCH``. For more information about it, see :ref:`reference for the event watchers ` -and the :ref:`corresponding section ` in Box Protocol. +and the :ref:`corresponding section ` of this document. The shutdown protocol works in the following way: