THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
PlantUML |
---|
title This diagram shows a member (N) using a locator (L) discovering the Coordinator (C) and joining
hide footbox
entity N
entity L
entity C
N -> L : FindCoordinatorRequest(myId)
note right of N : via tcp/ip over ssl while starting the new node.
L --> N : FindCoordinatorResponse(c) this will have publickey for coordinator
note right of N
Restart of locator will use saved publickey in view.dat file, to encrypt FindCoordinator request over udp.
We will prefix its publicKey with FindCoordinator message, so that member can decrypt findCoordinator request.
end note
N -> C : N's Public key and JoinRequest (this request will be encrypted using N-C key)
note left of C : Application can authenticate new member here.
C -> N : coordinator will send joinResponse containing cluster-secret-key. This message will be encrypted using N-C key.
note right of N
From here all communication will happen through cluster-secret-key
end note
C -> N : PrepareView(c,l,n)
N --> C : ack
C -> L : PrepareView(c,l,n)
L --> C : ack
C -> N : InstallView(c,l,n)
N --> C : ack
C -> L : InstallView(c,l,n)
L --> C : ack |
The class GMSJoinLeave is responsible for knowing who is in the distributed system. It interacts with Locators and Membership Coordinators and makes decisions about who should fill the role of Coordinator. It is also responsible for detecting network partitions.
...