Versions Compared

Key

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

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.

...