[ejabberd] More virt host woes.

Pedro Melo melo at simplicidade.org
Thu Feb 7 18:18:38 MSK 2008

On Feb 7, 2008, at 2:58 PM, Jesse Thompson wrote:

> Pedro Melo wrote:
>> If you are a hosting company or an ISP and want to offer XMPP hosting
>> to your clients then you need to host thousands of domains in a
>> single ejabberd cluster.
>> Doing that with current ejabberd is impossible.
> Obviously you can run multiple domains in a single ejabberd cluster.
> We're running 15 currently.  There are limitations to running many
> domains, but is it really impossible to run thousands?  Maybe it would
> be better for everyone if we stick to addressing the issues, rather  
> than
> declaring the task impossible.

Yes, we run about 10 at SAPO too.

Ok, let me qualify my "impossible": for more than 1000 hosts (i know  
of a site with 30k domains that wants this) it would require between  
5000 and 10000 MySQL connections.

And 1000 diferent databases on the server side (talking about mysql  

Impossible maybe not, but I would not like to manage that.

So s/impossible/administrative nightmare/ if you will.

> * You can't add domains without restarting ejabberd.  We schedule
> restarts during our weekly maintenance window to add new domains.

Thats not an option where I work, sorry.

We choose ejabberd because we want the least downtime possible.

Restart to add a domain, is not an option for us.

> * You might run into file descriptor limits.  We had to compile
> erlang/ejabberd as 64-bit to keep from running into a file descriptor
> limit bug in 32-bit Solaris libc.

fd limit? where? client connections? mysql connections?

I don't see this as a problem right now.

> * ODBC/LDAP connections aren't pooled across vhosts.  But you don't  
> need
> to use ODBC.  We use use an external authentication script (one  
> instance
> per vhost) that authenticates against LDAP and also has some  
> additional
> authnz logic specific to our environment.  We use Mnesia for  
> rosters and
> vcards.

We MySQL/ODBC for everything. With over 2M registered users, It would  
be difficult to keep yet another copy of our user data in MNesia.

Besides we use the user infor and roster info to integrate other  
services, so SQL is a better fit for us.

> * Certificate management.  The XMPP specification requires that the  
> cert
> match the domain, not the server.  This makes it very difficult for
> hosting providers.

Yes, in a mass vhost environment, certs must be loaded from the  

> I'm still new to ejabberd, so I'm sure that there are more issues
> lurking under the surface.  However, our load testing has shown  
> that it
> is possible to run at least a few hundred domains in single ejabberd
> instance, which meets our requirements for future growth.

I changed the impossible to something more accurate above. Yes you  
can do it, but for really large numbers its not feasible.

Best regards,
Pedro Melo
Blog: http://www.simplicidade.org/notes/
XMPP ID: melo at simplicidade.org

More information about the ejabberd mailing list