DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
| ID | IEP-25 |
| Author | |
| Sponsor | |
| Created |
|
| Status | DRAFT |
Partition Map Exchange is an internal process crucial for Ignite cluster maintaining view of partitions distribution across all nodes in the cluster. Any event triggering of partitions distribution triggers PME as well, e.g. server nodes joining and leaving, dynamic caches etc.
PME consists of two phases:
The important thing about PME is that when it is in progress no new transactions can be started as partition map is changing. So if PME hangs for any reason (bug in , undelivered messages, slow nodes) the whole cluster freezes requiring manual intervention to bring it back to operational state (usually it means restarting nodes that PME to finish).
solution is to stop nodes automatically in known situations in which PME hangs.
The following scenarios should be covered:
When coordinator on phase 1 detects that particular nodes don't reply in time with their local partition maps, it may decide to forcibly stop these nodes to unblock exchange.
It should be possible for user to configure a minimal number of copies. If stopping these nodes would cause some partitions to have less copies, coordinator should print warning to logs and keep waiting.
When node (say ) has sent local partition map successfully but doesn't receive full partition map in time it should check of its exchange on .
If coordinator informs that exchange has already been finished nodeA should stop itself as its partition map is out-of-date with the rest of the cluster.
When coordinator node detects that it received all local partition maps but didn't send back full partition map it should stop itself.
requires defining new policy in public API for scenario#1, new protocol should be developed for scenario#2 (non-coordinator node requests status of specific exchange from coordinator).