Page 1 of 21

Clustering development insight

PostPosted: Wed Feb 17, 2016 12:28 pm
by Daemon
Dear community,

As announced previously, the development team started working on a clustering system for our PvP realm.
A clustering system will allow us to distribute the load of a realm over a cluster of servers.

Image

The first advantage of this system is scalability: it would split the computations over different servers, thus allowing the realm to be more responsive when we are over 10k players.
The second advantage is flexibility: since we're getting more players, we would only have to plug new servers on the system, instead of having to buy a completely new hardware each time.
And the third advantage is resilience: if one node crashes, only the players logged to this node will be disconnected. The other players won't even notice it. If the master server crashes, the nodes will still be able to save the players to the database, which will mean the end of the rollbacks.

https://youtu.be/RL06DdydiC0

This video show a succesfull transfer of a character from master's server to a different node/realm. Technically, from a player point of view, it's the same mechanism as when a character enter/leave a donjon.

This is the first time that a clustering system is developed for WoW emulation at this level. To our knowledge, no-one has ever created a clustering system used in a production by a server. Why ? It is not an easy thing to set up, and it requires a true programming expertise in different fields (security, network, performance, wow emulation ...) to code it.

Now that this first step is done, next one will be to deploy this system for donjons at first, then raids, battlegrounds and finally continent as a whole, resulting into a no lag server no matter the number of players logged in.

In our implementation choices, we kept in mind that this system could allow us - in the future - to create cross-realms battlegrounds ;)

Once again, thanks for your support, and get ready for more interesting news !

Nostalrius dev team.

Re: Clustering development insight

PostPosted: Wed Feb 17, 2016 12:30 pm
by Ghostly
Well fug me this sounds incredible

Re: Clustering development insight

PostPosted: Wed Feb 17, 2016 12:31 pm
by Jzk
Noice

Re: Clustering development insight

PostPosted: Wed Feb 17, 2016 12:37 pm
by SkjipNL
This sounds amazing,

Thanks for all the effort and dedication towards the server.

Re: Clustering development insight

PostPosted: Wed Feb 17, 2016 12:40 pm
by weeezing
Oh boy oh boy

Re: Clustering development insight

PostPosted: Wed Feb 17, 2016 12:45 pm
by Keycan
sounds amazing

Re: Clustering development insight

PostPosted: Wed Feb 17, 2016 12:46 pm
by venger
OMG i love you nostalrius

Re: Clustering development insight

PostPosted: Wed Feb 17, 2016 12:48 pm
by ceen2
I remember Molten Core announcing cross realm battlegrounds 3 years ago ^^
It didn't work out well ^^

Re: Clustering development insight

PostPosted: Wed Feb 17, 2016 12:49 pm
by Simonich
It was annoying , world pvping at spots and suddenly see people fade, then having to go in their phase to re-engage.

But really this is good anyway, its not that much of a big issue, good work :)

Re: Clustering development insight

PostPosted: Wed Feb 17, 2016 12:51 pm
by LYQ
wow this is huge

edit:
Simonich wrote:It was annoying , world pvping at spots and suddenly see people fade, then having to go in their phase to re-engage.

But really this is good anyway, its not that much of a big issue, good work :)

pretty sure that's not how it's intended - I guess it's just easier to demonstrate and explain the system, how the video is setup.

like it was titled in the video. eg. one continent is on one Server-Node, while the other continent is on another Server-Node.

the demonstration in the video has the same zone on two different Nodes, just to demonstrate that it those two servers are basically the same "WoW Realm" while the load itself is placed on two different "physical"-servers

so that eg. if someone on kalimdor uses an exploit to crash the "server", he will only crash the physical server, not the entire realm
-> the player would only cause the disconnect of all players on Kalimdor, everyone else in instances/eastern kingdom continent wouldn't notice anything - since they are on another physical server