Versions Compared

Key

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

...

  • All peers hold predefined messages schemas.
  • Messages follow schema in strict way - no fields are skipped and order of fields is guaranteed.
  • Peers send messages as byte stream serializing fields one by one, no delimiters are used between fields and messages.
  • For serializing POJO fields different techniques are used:
    • External marshaller (e.g. JdkMarshaller for IgniteDiagnosticMessage, SchemaOperationStatusMessage... BinaryMarshaller for GridJobExecuteRequest#jobBytes) - sender consumes serialized byte array to message.
    • User's BinaryObjects, Binarylizable are marshalled to byte array prior to serializing a message (the array is stored in cache structures).
    • Some messages contain POJO field annotated with GridDirectTransient, and additional byte array field fill with GridCacheMessage#prepareMarshal (e.g. BinaryMarshaller for GridChangeGlobalStateMessageResponse).

Discovery protocol

Current implementation of Discovery protocol:

  • Peers use JdkMarshaller (java serialization) to serialize and deserialize a message.

Proposed changes

Message DTO

...