Hello,
I want to implement clustering using Terracotta (as you adviced and recomended)
you wrote TC is open-source/ free but I see it a commercial product.
moreover, I didn't understand which product should I use:
http://www.terracotta.org/products?src= ... found.html
1) is it the Ehcache?
2) I'm planning to place my application on EC2.
I would be happy if you could give me some details about clustering using terracotta (and how to put it on EC2)
3) if not terracotta - which another "JVMclustering software " would you advice me to use?
thanks in advanced
Flash
2X + Clustering
Hi,
Terracotta is absolutely open source and free. They also have a commercial version, which supports heap partitioning and other super advanced stuff. I can guarantee that the free edition already offers everything you need and tons of scalability.
You just need to register on their website and proceed to the download page where you will find both versions.
When we get questions like these about clustering my first reaction is always... why? Why do you think you need clustering?
Don't get me wrong, clustering is cool, but it also add another level of complexity to your design. Do you have an application that is not able to scale at the moment? Any other reasons?
Terracotta is absolutely open source and free. They also have a commercial version, which supports heap partitioning and other super advanced stuff. I can guarantee that the free edition already offers everything you need and tons of scalability.
You just need to register on their website and proceed to the download page where you will find both versions.
When we get questions like these about clustering my first reaction is always... why? Why do you think you need clustering?
Don't get me wrong, clustering is cool, but it also add another level of complexity to your design. Do you have an application that is not able to scale at the moment? Any other reasons?
Lapo wrote:Hi,
Terracotta is absolutely open source and free. They also have a commercial version, which supports heap partitioning and other super advanced stuff. I can guarantee that the free edition already offers everything you need and tons of scalability.
You just need to register on their website and proceed to the download page where you will find both versions.
When we get questions like these about clustering my first reaction is always... why? Why do you think you need clustering?
Don't get me wrong, clustering is cool, but it also add another level of complexity to your design. Do you have an application that is not able to scale at the moment? Any other reasons?
I will give you my reasons if that means anything. I'm working on an MMO that will run all players on one server (without shards) which means tens of thousands potential players - that definitely needs a clusters, especially with world complexity i'm working on..
Music was my first love, and it will be my last
Music of the future, and music of the past
To live without my music would be impossible to do
In this world of trauma my music pulls me through
Music of the future, and music of the past
To live without my music would be impossible to do
In this world of trauma my music pulls me through
I will give you my reasons if that means anything. I'm working on an MMO that will run all players on one server (without shards) which means tens of thousands potential players - that definitely needs a clusters, especially with world complexity i'm working on..
That sounds reasonable
You should probably think of sharding using multiple instances of the server. There are various strategies, for example one Lobby server + N game servers, one per game type.
Other options include multiple instances for different regions of the world (Asia, Europe, America...) or for different languages.
My producer, hopes to hundreds of thousands concurrent users so I must use clustering too.
Lapo, is there the same problem with 'Banned list' while using clustering like the problem with 'Buddy list'? Are there other areas which should be prepared for clustering (besides Buddy list and may be Banned list)?
Lapo, is there the same problem with 'Banned list' while using clustering like the problem with 'Buddy list'? Are there other areas which should be prepared for clustering (besides Buddy list and may be Banned list)?
@rav:
I don't know the context of your application so I might be entirely wrong here and I apologize in advance.
You shouldn't take decisions on clustering based on "hopes" but instead you should use realistic estimates.
We have got in the habit of asking "why clustering", because we get many requests from clients, small and big, who are starting to build an MMO or multiplayer game, and their first concern is to be able to handle zillions of concurrent users.
This is perfectly understandable but if you have experience in this field you know that the user base typically builds up over some time (usually months) and it's unlikely that will really need to start with a cluster. You won't need it for quite some time, actually.
Of course there are exceptions to this. If your company name is Disney, MTV, Warner Bros etc... or any another big guy who can do massive ad campaigns then of course you'll need to be prepared for the user flood.
Again this is why we ask and in general we tend to discourage clustering , especially if it's the first application of this type being developed. Why? For a series of good reasons:
1- A single dedicated server can handle tens of thousands of clients depending on the hardware, complexity of server code etc...
Let's say the hardware limit is 50K CCU. This roughly means 10 million unique visits a day... which is the kind of web traffic that a first class news website does.
Bottom line: not everyone is in the range of the NY Times right? So we want make sure that the customer's traffic expectations are based on sound estimates, not just anxiety or excess of self confidence.
2- Clustering adds an extra layer of complexity which probably, in 50% of the cases, can be avoided or at least postponed.
It is great to think ahead of problems, but it is also wise to take care of problems when they are a real concern instead of slowing down the development with extra work.
Bottom line: while designing your application think of good strategies to scale your application. Then spend some time in studying a realistic traffic estimate and see if clustering is really needed from start.
3- The Terracotta fever.
Terracotta is cool and everyone wants to use it. It can do great stuff with a Java application in terms of scalability. It is also the most complex of the options and it requires excellent understanding of the Java platform, scalability issues and server architectures.
If you are new to this field you should take one step at a time unless your team is made of up real gurus.
Also Terracotta is not the only way for clustering SmartFoxServer. In fact we have a number of very big clients that run stellar traffic with large clusters and don't even use it.
Bottom line: carefully evaluate the scalabilty strategy taking into account its complexity and the overall impact on managing the infrastructure.
I don't know the context of your application so I might be entirely wrong here and I apologize in advance.
My producer, hopes to hundreds of thousands concurrent users so I must use clustering too.
You shouldn't take decisions on clustering based on "hopes" but instead you should use realistic estimates.
We have got in the habit of asking "why clustering", because we get many requests from clients, small and big, who are starting to build an MMO or multiplayer game, and their first concern is to be able to handle zillions of concurrent users.
This is perfectly understandable but if you have experience in this field you know that the user base typically builds up over some time (usually months) and it's unlikely that will really need to start with a cluster. You won't need it for quite some time, actually.
Of course there are exceptions to this. If your company name is Disney, MTV, Warner Bros etc... or any another big guy who can do massive ad campaigns then of course you'll need to be prepared for the user flood.
Again this is why we ask and in general we tend to discourage clustering , especially if it's the first application of this type being developed. Why? For a series of good reasons:
1- A single dedicated server can handle tens of thousands of clients depending on the hardware, complexity of server code etc...
Let's say the hardware limit is 50K CCU. This roughly means 10 million unique visits a day... which is the kind of web traffic that a first class news website does.
Bottom line: not everyone is in the range of the NY Times right? So we want make sure that the customer's traffic expectations are based on sound estimates, not just anxiety or excess of self confidence.
2- Clustering adds an extra layer of complexity which probably, in 50% of the cases, can be avoided or at least postponed.
It is great to think ahead of problems, but it is also wise to take care of problems when they are a real concern instead of slowing down the development with extra work.
Bottom line: while designing your application think of good strategies to scale your application. Then spend some time in studying a realistic traffic estimate and see if clustering is really needed from start.
3- The Terracotta fever.
Terracotta is cool and everyone wants to use it. It can do great stuff with a Java application in terms of scalability. It is also the most complex of the options and it requires excellent understanding of the Java platform, scalability issues and server architectures.
If you are new to this field you should take one step at a time unless your team is made of up real gurus.
Also Terracotta is not the only way for clustering SmartFoxServer. In fact we have a number of very big clients that run stellar traffic with large clusters and don't even use it.
Bottom line: carefully evaluate the scalabilty strategy taking into account its complexity and the overall impact on managing the infrastructure.
I fully agree with you, Lapo. And I don't want to implement clustering from the begining. I just want to understand which problems I'll get while implementing clustering.
First problem I know: embedded Buddy list
Second problem (not sure about this): embedded Ban list
Third problem: ??? etc?
I want to use embedded features over some kind of proxy (When time will come I just implement this features with clustering). But if I ignore this I will lose my eggs - producer will smash them
and also I suppose that 50k CCU is means nearly 2 millions unique players
First problem I know: embedded Buddy list
Second problem (not sure about this): embedded Ban list
Third problem: ??? etc?
I want to use embedded features over some kind of proxy (When time will come I just implement this features with clustering). But if I ignore this I will lose my eggs - producer will smash them
and also I suppose that 50k CCU is means nearly 2 millions unique players
The clustering whitepaper and the related sources are a good place to start learning how Terracotta can work with SFS. It is valid for both 1.x and 2X
In our whitepaper we discuss the integration of the Terracotta DSO with SFS. Today the Terracotta guys have shifted their business to the most profitable area of websites/db cachei-ing and large distributed caches and they mostly push those technologies in their website.
The DSO has almost disappeared from their website, which is quite a pity. Actually the DSO (Data Shared Object) is still at the core of all their technology and it is very powerful to provide a fine grained clustering.
Anyways, depending on the level of integration you need with Terracotta you might also consider the use of their EHCache system instead of the DSO. The advantage is that EHCache is much simpler compared to the DSO approach.
In our whitepaper we discuss the integration of the Terracotta DSO with SFS. Today the Terracotta guys have shifted their business to the most profitable area of websites/db cachei-ing and large distributed caches and they mostly push those technologies in their website.
The DSO has almost disappeared from their website, which is quite a pity. Actually the DSO (Data Shared Object) is still at the core of all their technology and it is very powerful to provide a fine grained clustering.
Anyways, depending on the level of integration you need with Terracotta you might also consider the use of their EHCache system instead of the DSO. The advantage is that EHCache is much simpler compared to the DSO approach.
Lapo wrote:Maybe you can drop us an email directly and we'll give you some more details.
ryabinin.alexander@gmail.com
Looking throw EHCache I came to conclusion: pure EHCache is not enough for clustering, besides EHCache I have to use Distributed Caching With Terracotta
Lapo, in regards to your quote below:
"
1- A single dedicated server can handle tens of thousands of clients depending on the hardware, complexity of server code etc...
Let's say the hardware limit is 50K CCU. This roughly means 10 million unique visits a day... which is the kind of web traffic that a first class news website does."
I'd like to know if you guys ever tested these numbers with OpenSpace users. Is a single server really capable of running 50K CCU or even 20K when it has to handle pathfinding on top of other game related work?
(obviously i'm not expecting a low-end machine to do this. for the sake of this question, let's assume a high-end hardware from the EC2 server options).
Thanks,
Dan
"
1- A single dedicated server can handle tens of thousands of clients depending on the hardware, complexity of server code etc...
Let's say the hardware limit is 50K CCU. This roughly means 10 million unique visits a day... which is the kind of web traffic that a first class news website does."
I'd like to know if you guys ever tested these numbers with OpenSpace users. Is a single server really capable of running 50K CCU or even 20K when it has to handle pathfinding on top of other game related work?
(obviously i'm not expecting a low-end machine to do this. for the sake of this question, let's assume a high-end hardware from the EC2 server options).
Thanks,
Dan
Who is online
Users browsing this forum: Alexwek and 83 guests