Reputation: 11
I am using community edition of ejabberd, and I am a bit anxious about the environment that is configured in the current system so I would want your advices.
On AWS, we are using auto-scalable XMPP ec2 instances and I am required to handle 5,000,000 (5M) concurrent sessions for 72hours. Although the ejabberd outputs some warning messages of "mnesia overload", I confirmed that this requirement can be achieved by 15 instances of r4.8xlarge.
so the questions here is below:
In the official page of process one, it says "clustering with number of 10 nodes is recommended". Since our current system runs with 15 instances and it seems to be running properly, I think I will stick with using 15 instances. Will there be any risk to use more than 10 instances?
I made some investigation and I consider,ed using business edition of ejabberd, but it seems that business edition also outputs the "mnesia overload" and when this occurs, they simply do some kind of automatic recovery, and I dont think theres any big difference between using the community and business edition. Correct me If Im wrong and please tell me if theres some advantages of using business edition in our system.
Waiting for answers.
Upvotes: 1
Views: 687
Reputation: 9055
ejabberd Business Edition has a different clustering mechanisms. It is not based on Mnesia replication. eBE even have a completely different back-end for session that do not rely on Mnesia at all. It is much more scalable, especially when you target system in terms of millions concurrent users and can indeed avoid this "Mnesia overloaded" issue. The more nodes you add in your cluster, the more overhead you will with internode trafic with Mnesia. There is a level at which adding new nodes will have no effect.
The other benefit of eBE is that it comes with support from the developers that have built ejabberd. If something goes wrong at that scale, you need a lot of expertise to make the system still run fine (or even recover).
And finally, as for the sizing and the tuning, it really depends the use case, what the client are doing, usage patterns, etc. You need to benchmark at that level to ensure that you can at least reach the volume you target (knowing that even the best scenarii will behave differently under load).
Upvotes: 1