Cluster Support: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
imported>Hendrik Brummermann
imported>Hendrik Brummermann
 
(18 intermediate revisions by the same user not shown)
Line 30: Line 30:


=== Cross node zone change ===
=== Cross node zone change ===

[[Image:Cross node zone change.png|thumb|Cross node zone change]]


Cross node zone change require the client to connect to another server:
Cross node zone change require the client to connect to another server:


Problems:
# Node 1: Remove client from zone, ignore any actions sent from it
* Client may disappear during zone change
# Node 1: Change zone to target in the player object
* Target zone server may be unavailable
# Node 1: Save player to database
* See [[Cluster_Support#Online.2FOffline_notifications online/offline]] section.
# Node 1: Wait till save complete
{{br}}
# Node 1: Sent client a MessageS2CForward
# Client: Disconnect from node 1 (in a way which makes it clear that this is not going offline
# Client: Connect to Node 2
# Node 2: Authenticate client
# Node 2: Check that client is in a zone which this node is responsive for
# Node 2: place player in world (or go to step 1 if this zone is not here)


Alternatives: Node 1 may sent the MessageS2CForward before the saving is completed. This would speed up the zone change progress, but it is hard to tell on Node 2 that the save completed. <del>Especially given that the player might have been last saved on a zone on node 2.</del>. Transfering to a zone on node 1 would have saved him in the mean time. But what if the zones had been split different across nodes back then?

Problems: See [[Cluster_Support#Online.2FOffline_notifications online/offline]] section.


=== Cross node teleports ===
=== Cross node teleports ===