Hello. I'm new here and have some questions about ejabberd that I haven't been able to find quick answers to. My apologies if the answers should be obvious.
We're working on a new service that's going to have something chat-like at its core; we're sure we want to use XMPP, and are still speccing out the exact implementation. So:
Just how big can an ejabberd installation get? If things go well, we need to support millions of registered users, with hundreds of thousands active at one time. Is anyone doing that already? One cluster? Several clusters in a farm?
Mnesia - it looks like it may be too small (4 gig hard table size limit, if I read right). Is this likely to be a problem? I've seen mentions of the next version talking to an SQL database. How close to ready is that? If it's not ready, might it be possible for me to shuttle user data in and out of ejabberd at need by some other means?
Thanks for your patience,
Andy Hickmott
Pando Networks
Anyone? Or is there a better
Anyone? Or is there a better place for me to ask this kind of question?
This forum is a good place. B
This forum is a good place. But you will want to ask this on the ejabberd mailing list (adding a link to this thread), to reach different people.
You can ask on jadmin (general list about Jabber server administration) too.
big server: possible hints
Until somebody with better knowledge in ejabberd and Erlang aswers, I'll try to give some hints, probably things you already noticed, and probably with errors since I'm speaking about things I've not tried myself.
You can run tests to check the limitations of the different implementations: how many total accounts (1M, 10M?...), how many roster items (10M, 100M?...), etc.
In ejabberd:
I don't know about ejabberd, but there were some emails on the jadmin mailing list some months ago from people interested in similar things.
You will probably need two things:
ejabberd at CVS has ODBC/PostgreSQL storage for the roster table (the biggest table on the database). If the bottleneck in your situtation is database limits then you will prefer PostgreSQL. If it's computational limits, then you will prefer Mnesia and deploy it in a cluster.
Links:
Thanks
Thanks for the info. I'm not sure it's enough to proceed with, but it looks good. I'll try the mailing list.