Versions Compared

Key

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

...

  • If a cluster contains nodes of only version, then the joining node can be greater/less than this version by up to 1 minor version.
  • If a cluster contains nodes of two versions, then joining node version must be one of them.

Message

...

serialization framework

There should be one serialization framework for communication and discovery protocol. 

  1. MessageWriter, MessageReader logic is depends on a remote IgniteProductVersion.
  2. Message#writeTo, Message#readFrom is auto-generated and stored separately from Message DTO classes classes.
  3. Add Message#writeObject - for serializing Objects (java functions, and user objects):
    1. MessageWriter for communication protocol use BinaryMarshaller
    2. MessageWriter for discovery protocol use JdkMarshaller
  4. Message fields contain:
    1. primitive classes.
    2. known collections.
    3. POJO - that are other Message.
    4. Users classes and java functions (e.g. ComputeJob).
    5. byte[] fields (objects serialized externally) must be avoided as much as possible, because their compatibility can't be guaranteed.
  5. Order of fields in Message is fixed with @Order annotation.
  6. Add  @Since, @Until  annotations for Message classes and fields.

...