From d3f5af03478028562c6e48426b6d270f487c66b8 Mon Sep 17 00:00:00 2001 From: "a.ardeev" Date: Fri, 26 Sep 2025 13:30:25 +0300 Subject: [PATCH 1/6] Adds description of IPROTO_INSERT_ARROW request The structure of the `IPROTO_INSERT_ARROW` request is similar to `IPROTO_INSERT` * Changes the latest IPROTO version to `10` Fixes #4561 --- .../internals/iproto/images/insert_arrow.puml | 34 +++++ .../internals/iproto/images/insert_arrow.svg | 117 ++++++++++++++++++ doc/reference/internals/iproto/keys.rst | 3 + doc/reference/internals/iproto/requests.rst | 23 +++- prolog.rst | 2 +- 5 files changed, 176 insertions(+), 3 deletions(-) create mode 100644 doc/reference/internals/iproto/images/insert_arrow.puml create mode 100644 doc/reference/internals/iproto/images/insert_arrow.svg diff --git a/doc/reference/internals/iproto/images/insert_arrow.puml b/doc/reference/internals/iproto/images/insert_arrow.puml new file mode 100644 index 0000000000..4162d9d885 --- /dev/null +++ b/doc/reference/internals/iproto/images/insert_arrow.puml @@ -0,0 +1,34 @@ +@startuml + +skinparam { + HyperlinkColor #0077FF + FontColor #313131 + BorderColor #313131 + BackgroundColor transparent +} + +json "**IPROTO_ARROW**" as insert_request { + "Size": "MP_UINT", + "Header": { + "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_REQUEST_TYPE]]": "IPROTO_ARROW", + "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_SYNC]]": "MP_UINT" + }, + "Body": { + "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_SPACE_ID]]": "MP_UINT", + "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_ARROW]]": "MP_ARROW" + } +} + +json "**Response to IPROTO_ARROW**" as insert_response { + "Size": "MP_UINT", + "Header": { + "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_REQUEST_TYPE]]": "IPROTO_OK", + "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_SYNC]]": "MP_UINT", + "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_SCHEMA_VERSION]]": "MP_UINT" + }, + "Body": { + "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_DATA]]": "Empty body" + } +} + +@enduml diff --git a/doc/reference/internals/iproto/images/insert_arrow.svg b/doc/reference/internals/iproto/images/insert_arrow.svg new file mode 100644 index 0000000000..bb6cf35149 --- /dev/null +++ b/doc/reference/internals/iproto/images/insert_arrow.svg @@ -0,0 +1,117 @@ + + + + Layer 1 + + + IPROTO_ARROW + + + Size + MP_UINT + + Header + + + + IPROTO_REQUEST_TYPE + + IPROTO_ARROW + + + IPROTO_SYNC + + MP_UINT + + Body + + + + IPROTO_SPACE_ID + + MP_UINT + + + IPROTO_ARROW + + MP_ARROW + + Response to IPROTO_ARROW + + + Size + MP_UINT + + Header + + + + IPROTO_REQUEST_TYPE + + IPROTO_OK + + + IPROTO_SYNC + + MP_UINT + + + IPROTO_SCHEMA_VERSION + + MP_UINT + + Body + + + + IPROTO_DATA + + Empty body + + + + \ No newline at end of file diff --git a/doc/reference/internals/iproto/keys.rst b/doc/reference/internals/iproto/keys.rst index 4a55b38ea8..32dfcc7b11 100644 --- a/doc/reference/internals/iproto/keys.rst +++ b/doc/reference/internals/iproto/keys.rst @@ -491,6 +491,9 @@ Available IPROTO_FEATURES are the following: - ``IPROTO_FEATURE_WATCHERS = 3`` -- remote watchers support: :ref:`IPROTO_WATCH `, :ref:`IPROTO_UNWATCH `, and :ref:`IPROTO_EVENT ` commands. +- ``IPROTO_FEATURE_INSERT_ARROW = 12`` -- support of data insertion in the Arrow format. Learn more + about the :ref:`feature `. Available since version :doc:`3.3.0 `. + .. _internals-iproto-keys-sync: IPROTO_SYNC diff --git a/doc/reference/internals/iproto/requests.rst b/doc/reference/internals/iproto/requests.rst index df2026d976..836a1b82c2 100644 --- a/doc/reference/internals/iproto/requests.rst +++ b/doc/reference/internals/iproto/requests.rst @@ -42,6 +42,11 @@ Overview - -1 |br| MP_UINT - An unknown request type + * - :ref:`IPROTO_INSERT_ARROW ` + - 0x11 + - Insert Arrow data request. Available since + version :doc:`3.3.0 `. + * - :ref:`IPROTO_SELECT ` - 0x01 - :ref:`Select ` request @@ -90,8 +95,6 @@ Overview - 0x49 - Share iproto version and supported features - - .. _internals-iproto-ok: IPROTO_OK @@ -142,6 +145,22 @@ Code: -1. An unknown request type. The constant is used to override the handler of unknown IPROTO request types. Learn more: :ref:`box.iproto.override() ` and :ref:`box_iproto_override `. +.. _internals-iproto-arrow: + +IPROTO_ARROW +------------------- + +Since version :doc:`3.3.0 `. + +Code: 0x11 +The body is a 2-item map: + +.. raw:: html + :file: images/insert_arrow.svg + +The structure of the ``IPROTO_INSERT_ARROW`` request is similar to +:ref:`IPROTO_INSERT `. + .. _box_protocol-select: IPROTO_SELECT diff --git a/prolog.rst b/prolog.rst index 4bcdce13c0..a2722a5d90 100644 --- a/prolog.rst +++ b/prolog.rst @@ -34,7 +34,7 @@
-.. |iproto_version| replace:: 3 +.. |iproto_version| replace:: 10 .. |tcm_full_name| replace:: Tarantool Cluster Manager From 252f98de61477a21ccf26e49da5224dd554cbfc4 Mon Sep 17 00:00:00 2001 From: "a.ardeev" Date: Fri, 26 Sep 2025 13:43:24 +0300 Subject: [PATCH 2/6] link added --- doc/reference/internals/iproto/requests.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/reference/internals/iproto/requests.rst b/doc/reference/internals/iproto/requests.rst index 836a1b82c2..34f3506a09 100644 --- a/doc/reference/internals/iproto/requests.rst +++ b/doc/reference/internals/iproto/requests.rst @@ -42,7 +42,7 @@ Overview - -1 |br| MP_UINT - An unknown request type - * - :ref:`IPROTO_INSERT_ARROW ` + * - :ref:`IPROTO_INSERT_ARROW ` - 0x11 - Insert Arrow data request. Available since version :doc:`3.3.0 `. From 36762d9720190220ce09b46461090eb6161d2558 Mon Sep 17 00:00:00 2001 From: "a.ardeev" Date: Tue, 30 Sep 2025 17:05:59 +0300 Subject: [PATCH 3/6] Fix by comments --- ...rt_arrow.puml => iproto_insert_arrow.puml} | 8 +- ...sert_arrow.svg => iproto_insert_arrow.svg} | 90 +++++++++---------- doc/reference/internals/iproto/requests.rst | 9 +- 3 files changed, 52 insertions(+), 55 deletions(-) rename doc/reference/internals/iproto/images/{insert_arrow.puml => iproto_insert_arrow.puml} (82%) rename doc/reference/internals/iproto/images/{insert_arrow.svg => iproto_insert_arrow.svg} (63%) diff --git a/doc/reference/internals/iproto/images/insert_arrow.puml b/doc/reference/internals/iproto/images/iproto_insert_arrow.puml similarity index 82% rename from doc/reference/internals/iproto/images/insert_arrow.puml rename to doc/reference/internals/iproto/images/iproto_insert_arrow.puml index 4162d9d885..163493984f 100644 --- a/doc/reference/internals/iproto/images/insert_arrow.puml +++ b/doc/reference/internals/iproto/images/iproto_insert_arrow.puml @@ -7,19 +7,19 @@ skinparam { BackgroundColor transparent } -json "**IPROTO_ARROW**" as insert_request { +json "**IPROTO_INSERT_ARROW**" as insert_request { "Size": "MP_UINT", "Header": { - "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_REQUEST_TYPE]]": "IPROTO_ARROW", + "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_REQUEST_TYPE]]": "IPROTO_INSERT_ARROW", "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_SYNC]]": "MP_UINT" }, "Body": { "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_SPACE_ID]]": "MP_UINT", - "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_ARROW]]": "MP_ARROW" + "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_INSERT_ARROW]]": "MP_ARROW" } } -json "**Response to IPROTO_ARROW**" as insert_response { +json "**Response to IPROTO_INSERT_ARROW**" as insert_response { "Size": "MP_UINT", "Header": { "[[https://tarantool.io/en/doc/latest/reference/internals/iproto/keys IPROTO_REQUEST_TYPE]]": "IPROTO_OK", diff --git a/doc/reference/internals/iproto/images/insert_arrow.svg b/doc/reference/internals/iproto/images/iproto_insert_arrow.svg similarity index 63% rename from doc/reference/internals/iproto/images/insert_arrow.svg rename to doc/reference/internals/iproto/images/iproto_insert_arrow.svg index bb6cf35149..3c6fe313e6 100644 --- a/doc/reference/internals/iproto/images/insert_arrow.svg +++ b/doc/reference/internals/iproto/images/iproto_insert_arrow.svg @@ -1,72 +1,72 @@ - + Layer 1 - - - IPROTO_ARROW + + + IPROTO_INSERT_ARROW - + Size MP_UINT - + Header - - + + IPROTO_REQUEST_TYPE - IPROTO_ARROW - + IPROTO_INSERT_ARROW + IPROTO_SYNC - MP_UINT - + MP_UINT + Body - - + + IPROTO_SPACE_ID - MP_UINT - + MP_UINT + - IPROTO_ARROW + IPROTO_INSERT_ARROW - MP_ARROW - - Response to IPROTO_ARROW - - - Size - MP_UINT - - Header - - + MP_ARROW + + Response to IPROTO_INSERT_ARROW + + + Size + MP_UINT + + Header + + - IPROTO_REQUEST_TYPE + IPROTO_REQUEST_TYPE - IPROTO_OK - + IPROTO_OK + - IPROTO_SYNC + IPROTO_SYNC - MP_UINT - + MP_UINT + - IPROTO_SCHEMA_VERSION + IPROTO_SCHEMA_VERSION - MP_UINT - - Body - - + MP_UINT + + Body + + - IPROTO_DATA + IPROTO_DATA - Empty body + Empty body