{{ NEW }} Clustering SmartFoxServer

Need help with SmartFoxServer? You didn't find an answer in our documentation? Please, post your questions here!

Moderators: Lapo, Bax

User avatar
Lapo
Site Admin
Posts: 23025
Joined: 21 Mar 2005, 09:50
Location: Italy

{{ NEW }} Clustering SmartFoxServer

Postby Lapo » 19 May 2008, 13:22

Hello everyone!

We announce the availability of an in-depth white-paper that discusses building highly available SmartFoxServer clusters, with no single point of failure, high horizontal scalability and failure resilience.

The study presented in the document is particularly suited for MMO communities, virtual worlds and large gaming systems, where a high server capacity and quick crash recovery are determinant for the success of the service.


http://www.smartfoxserver.com/clustering/

Happy clustering :)
Lapo
--
gotoAndPlay()
...addicted to flash games
poppop
Posts: 57
Joined: 07 Jul 2007, 10:24

Postby poppop » 19 May 2008, 13:30

Looks great Lapo!

I'm reading it now -- i just hope one day when our game gets big (and finished lol) - we will need it :lol:
Belgarath
Posts: 28
Joined: 25 Apr 2006, 14:38

Postby Belgarath » 21 May 2008, 07:00

this looks really great!! takes some time to read through the 30 pages ;)
User avatar
potmo
Posts: 154
Joined: 02 Feb 2007, 14:28
Location: Stockholm Sweden
Contact:

Postby potmo » 21 May 2008, 08:17

This really looks great.
It looks like its not that much to recode for us at least.
This was actually the only concern we had about Smartfox that it wasnt scaleable but now it is. Good work! Go Smartfox!
Nisse Bergman
Raketspel
User avatar
Lapo
Site Admin
Posts: 23025
Joined: 21 Mar 2005, 09:50
Location: Italy

Postby Lapo » 21 May 2008, 11:34

Thanks Potmo :)
Yep, the good news is that you can start clustering applications with the current version of the server. No need to update to new versions with new APIs to learn, no major impact over your existing code.

In the long term we plan to provide a tighter clustering integration to further "hide" the clustering details.
Lapo

--

gotoAndPlay()

...addicted to flash games
patso
Posts: 380
Joined: 13 Nov 2006, 13:44
Location: Sofia, Bulgaria

Postby patso » 21 May 2008, 14:58

Great article. Thanks Lapo.

I hope there will be more articles on this interesting topic. Here is one thing that comes me in mind and I think it's interesting.

One of advantages of when your system is clustered is that you can turn off given machine for maintenance and the others will take the users so you can make maintenance without your users even notice.

And here comes the interesting question. Can the developer make change that requires restart of the smartfoxserver without the user notice - just restarting the servers one by one and this way keeping the service alive - one server is restarting and the others handle the users disconnected from the server that is currently restarting?
User avatar
Lapo
Site Admin
Posts: 23025
Joined: 21 Mar 2005, 09:50
Location: Italy

Postby Lapo » 22 May 2008, 06:03

Nice question: Yes, it is possible.
Let me explain a little bit better what happens when a server instance starts and joins the cluster.

1- the server classes are instrumented, at byte code level, by the Terracotta boot jar.
2- before the server starts the instrumented code talks to the TC Server and gets in synch with the shared objects
3- the application starts

So when the server starts (or it is restarted) all its shared objects are auto-magically populated.

In the specific case of the example presented in the whitepaper the server instance will come up again and will see all the data available in the DataStore (user list, game list, friend list, cluster node list etc...)

cheers
Lapo

--

gotoAndPlay()

...addicted to flash games
User avatar
Lapo
Site Admin
Posts: 23025
Joined: 21 Mar 2005, 09:50
Location: Italy

Postby Lapo » 22 May 2008, 06:06

I forgot to mention that these objects passed around in the cluster maintain their identity! This is really a great advantage when compare to regulare cacheing systems.

In fact using a cache always provides you with copies of an object.
With Terracotta you actually get a reference to the same object. :shock:
So the == operator will still work with shared objects. 8)

That's "transparency"! :P
Lapo

--

gotoAndPlay()

...addicted to flash games

Return to “SmartFoxServer 1.x Discussions and Help”

Who is online

Users browsing this forum: No registered users and 33 guests