photon loadbalancing on azure

Options
cindyb2087
edited June 2013 in Photon Server
In azure, what happens if a master server is rebooted?
will all the game servers be down?
Will any new users be able to connect and play games during the time master server is down?

If a game server is rebooted, will we lose all the games going on that machine?

Azure sends an event with a timeout of 5 mins when a machine is about to be rebooted. Is there a way to stop the master server from sending new games to gameserver once that event is received on gameserver? This will help in saving gamedata for existing games and not start any new games till reboot happen and thus minimize gamesesssions lost.

Comments

  • Philip
    Options
    cindyb2087 wrote:
    In azure, what happens if a master server is rebooted?
    The gameservers will reconnect once the master is available again.
    And resync the lists of games.
    cindyb2087 wrote:
    will all the game servers be down?
    no - games running on the game servers will stay up and clients stay connected
    cindyb2087 wrote:
    Will any new users be able to connect and play games during the time master server is down?
    no - they will when the master is up again. Currently we don't have fail-over support. We are working on it.
    cindyb2087 wrote:
    If a game server is rebooted, will we lose all the games going on that machine?
    yes.
    cindyb2087 wrote:
    Azure sends an event with a timeout of 5 mins when a machine is about to be rebooted. Is there a way to stop the master server from sending new games to gameserver once that event is received on gameserver?
    Yes, currently you have to implement one part your self.
    - inform the gameserver when the photon worker role receives the event (per file for instance)
    - in the Photon.Loadbalancing.OutgoingServerPeer set GameApplication.Instance.WorkloadController.ServerState = ServerState.OutOfRotation
    - and call
    this.UpdateServerState();

    [code2=csharp]public void UpdateServerState()
    {
    if (this.Connected == false)
    {
    return;
    }

    this.UpdateServerState(
    GameApplication.Instance.WorkloadController.FeedbackLevel,
    GameApplication.Instance.PeerCount,
    GameApplication.Instance.WorkloadController.ServerState);
    }[/code2]
    cindyb2087 wrote:
    This will help in saving gamedata for existing games and not start any new games till reboot happen and thus minimize gamesesssions lost.
    Yes - thats correct.
  • Thanks for the detailed response.

    Any idea when the failover feature would be available. In azure, reboots are fairly common. Hence the question.
  • Philip
    Options
    If interested I can provide access to an alfa version, send a mail to developers@exitgames.com.