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 |
|||
| ⚫ | |||
# 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? |
|||
| ⚫ | |||
=== Cross node teleports === |
=== Cross node teleports === |
||