Skip to content

[3pt] Document IPROTO_ID request #2419

Closed
@Totktonada

Description

@Totktonada

Product: Tarantool
Since: 2.10.0-beta2
Audience/target: developers
Root document: https://www.tarantool.io/en/doc/latest/dev_guide/internals/box_protocol/
SME: @ locker

Details

The new request code is 73. It takes a map in the body with the
following keys:

  • IPROTO_VERSION (0x54) - protocol version (unsigned).
  • IPROTO_FEATURES (0x55) - array of protocol feature ids (unsigned).

A client (connector) can send this request to let the server know about
the protocol version and features it supports. The server may enable or
disable certain functionality basing on the features supported by the
client. In reply to the request, the server sends an IPROTO_OK response,
in the body of which it reports its own protocol version and features
(the format of the response body is the same as the request body).
The request doesn't need authentication to pass.

Currently, the actual protocol version is 1 3 and there are two four features
defined:

  • IPROTO_FEATURE_STREAMS - streams support (IPROTO_STREAM_ID header
    key), id = 0.
  • IPROTO_FEATURE_TRANSACTIONS - transactions support (IPROTO_BEGIN,
    IPROTO_COMMIT, IPROTO_ROLLBACK commands), id = 1.
  • IPROTO_FEATURE_ERROR_EXTENSION, id = 2,
  • IPROTO_FEATURE_WATCHERS, id = 3

Requested by @locker in tarantool/tarantool@0be1faf

UPD 2022-05-30: As of Tarantool 2.10, the protocol version is 3. New features added since version 1:

  • IPROTO_FEATURE_ERROR_EXTENSION = 2,
  • IPROTO_FEATURE_WATCHERS = 3

Metadata

Metadata

Assignees

Labels

featureA new functionalityiprotoRelated to the iproto protocolserver[area] Task relates to Tarantool's server (core) functionality

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions