Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

IDIEP-[NUMBER]
AuthorAlexander
Sponsor
Created

 

StatusDRAFT


Table of Contents

Motivation

Tracing provides information useful for debugging that both helps with regular, daily-basic system monitoring and with incidents analysis. Within the scope of Apache Ignite almost every process or sub-system could be traced including:

...

  • 1 byte: special flags;

    • First byte of the serializedSpan is reserved for special flags
  • 1 bytes: spi type;

    • In order to match whether span was serialized with the spi that is used on the node that is going to deserialize it.
  • 2 bytes: major protocol version;

    • Spans are considered as incompatible in case of different major protocol versions;
  • 2 bytes: minor protocol version;

    • Should be incremented in case of adding new fields, etc. Within the scope of the same major protocol version and different minor protocol versions spans are considered to be compatible.
  • 4 bytes: spi specific serialized span length;

  • n bytes: spi specific serialized span body;

  • 4 bytes: span type

  • 4 bytes included scopes size;

  • 2 * included scopes size: included scopes items one by one;

Trace Tree Example

Bellow there's an example of trace generated by pessimistic serializable transaction.

Image Added

Risks and Assumptions

  • Performance drop. So careful benchmarking is requires and probably lots of optimizations.
  • Spans inconsistencies during rolling upgrade if nodes have different versions of TracingManagers or Tracing Service Provider Interfaces. Span Serialization protocol must take this into account.

...