Versions Compared

Key

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

...

  • Error during service initialization on a node, included into assignment. In this case the problematic node sends failure details to the coordinator over the communication protocol. Once the coordinator receives the failure details, it sends a discovery message, containing this information, to all nodes, so the deploying methods can throw a corresponding exception.
  • Failure of a node, included into assignment. This situation triggers recalculation of service deployment assignments. Coordinator node sends another discovery message with a set of new assignments in it. If a node already initialized a service and it is not present in the new assignments set, then the service should be cancelled.
  • Coordinator failure. This situation is processed in a similar way as the previous one. The only difference is that the nodes should resend deployment results to the new coordinator.

Service versioning

It should be possible to update service implementation or configuration without downtime. Introduction of a service version should solve this problem.

ServiceConfiguration class should contain integer version parameter, that will increase monotonically between deployments.

When a node is processing a service deployment request, it performs deployment only if it doesn't have a deployed service of the same or a newer version.

Service version update implies classes redeployment. So, user is responsible for configuring a proper DeploymentSpi to be able to replace service classes at runtime. Service processor should unregister and re-register a service class, when version update happens.

Deployment after restart

TBD

Risks and Assumptions

These changes will break compatibility with previous versions of Apache Ignite completely.

...