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
{{ NEW }} Clustering SmartFoxServer
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.
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.
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?
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?
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
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
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.
So the == operator will still work with shared objects.
That's "transparency"!
In fact using a cache always provides you with copies of an object.
With Terracotta you actually get a reference to the same object.
So the == operator will still work with shared objects.
That's "transparency"!
Return to “SmartFoxServer 1.x Discussions and Help”
Who is online
Users browsing this forum: No registered users and 70 guests