Cluster Support: Difference between revisions

From Arianne
Jump to navigation Jump to search
imported>Hendrik Brummermann
Messages and structure of tasks
imported>Hendrik Brummermann
Messages and structure of tasks
(No difference)

Revision as of 09:45, 11 December 2010

This article describes a future concept. It may still have some open issues and it was not decided, yet, whether to implement it in this way.

This article is going to collect some ideas, issues and possible approaches. The scenario is about splitting a Stendhal Server across multiple cluster nodes, so this article does not draw a strict line between Marauroa and Stendhal in the beginning.

Communication

The idea is to do the split on a zone level. So every cluster node is responsible for a number of zones. The client connects directly to the node responsible for its zone. This way we avoid a load balancing server as single point of failure and possible bottle neck.

Communication Client - Node

As the clients connect directly to the nodes, there needs to be some mechanism to tell a client to which node to connect.

MessageS2CLoginACK
will be extended to contain a session id, it needs to be encrypted similar to the password transmission
MessageS2CForward
The current node tells the client to disconnect and reconnect to the node specified in the message
MessageC2SReconnect
A quick way to login. Assuming that all nodes use the same key, the key exchange can be shortened. The selection of character step can be skipped, too, because the sessionid is bound to a character.

Communication Node - Node

Tasks

Authentication

Cross node zone change

Cross node teleports

  • Target allowed to teleport into?

Online/Offline notifications

Cross node actions

  • /tellall
  • /msg
  • /who
  • /where

Cross node admin actions

  • /inspect
  • /script DeepInspect.class

See also