You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

IDIEP-76
Author
Sponsor
Created

  

Status
DRAFT


Motivation

Thin client protocol will be the primary way to interact with Ignite 3.0 from code.

Description

Adapt Ignite 2.x protocol for Ignite 3.0. Main differences are:

TCP Socket

  • Every Ignite node listens on a TCP port. Thin client implementations connect to any node in the cluster (possibly multiple nodes) through a TCP socket and perform Ignite operations using a well-defined binary protocol.
  • Server-side connection parameters are defined in ClientConnectorConfiguration class.
    • Default port is 10800.
    • Connector is enabled by default, no configuration changes needed.
  • Netty is used on the server for network IO.

Data Format

MsgPack is used for data serialization.

Data Types Mapping

Ignite data types defined in IEP-54 map to MsgPack data types the following way:

Ignite Type

Size

MsgPack TypeNotes
Bitmask(n)n/8 bytesbin8 / bin16 / bin32
IntX, UintX1-8 bytesfixint / intX / uintXInteger types are interchangeable when possible. fixint (1 byte) can be passed as a value for uint64 column.
Float4 bytesfloat32
Double8 bytesfloat64
Number([n])Variableext16 (up to 2^8 - 1 bytes)Extension 1
DecimalVariableext16 (up to 2^8 - 1 bytes)Extension 2
UUID16 bytesfixext16Extension 3
StringVariablestr
Date3 bytesfixext4Extension 4
Time4 bytesfixext4Extension 5
Datetime7 bytesfixext8Extension 6
Timestamp8 bytestimestamp 64
BinaryVariablebin32 (up to 2^32 - 1 bytes)

"Extension X" is a MsgPack extension type (up to 128 extension types are allowed).

Message format

All messages, request and response, except handshake, start with unsigned integer message length (excluding the length itself). Any MsgPack integer type can be used, so that shorter messages use smaller type to encode length. Empty message will be single 0 byte.

positive fixint / uint8 / uint16 / uint32 / uint64 Length of Payload
...Payload


Handshake

TODO: Magic word, features as map (question)

Risks and Assumptions

TODO

Discussion Links

  • TODO

Reference Links

Tickets

key summary type created updated due assignee reporter priority status resolution

JQL and issue key arguments for this macro require at least one Jira application link to be configured

  • No labels