Clustering or other methods for fault tolerance?

Hi all,

I tried to use the community search, but seemed to get more similar questions than answers on what is the current status in clustering and/or providing other loadbalancing or fault tolerance solutions for openfire.

Afaik there are two different things going on:

  1. Coherence based clustering ( old Enterprise version )

  2. Connection manager ( http://www.igniterealtime.org/projects/openfire/connection_manager.jsp )

Coherence is a commercial software sold by Oracle. Situation is unclear how much it does cost and can it be just purchased directly from Oracle and used easily with the plugin. Most likely definitely maybe.

Connection manager handle client connections and ease the load on openfire server, but this still meansthat there has to be a proper server to handle all the messaging. Is anyone using connection managers at the moment and does anyone know whether they really work - and what the capacity planning should include for large deployments.

-huima

Hey Huima,

Afaik there are two different things going on:

  1. Coherence based clustering ( old Enterprise version )

Coherence is a commercial software sold by Oracle. Situation is unclear how much it does cost and can it be just purchased directly from Oracle and used easily with the plugin. Most likely definitely maybe.

Jive is currently not selling the clustering module. And as far as I know getting a license from Oracle is not going to work since the license of the code is not open source. Moreover, Oracle is not going to give support for an application that they didn’t write.

  1. Connection manager ( http://www.igniterealtime.org/projects/openfire/connection_manager.jsp )

Connection manager handle client connections and ease the load on openfire server, but this still meansthat there has to be a proper server to handle all the messaging. Is anyone using connection managers at the moment and does anyone know whether they really work - and what the capacity planning should include for large deployments.

As you said using CMs is not going to avoid the single point of failure. CMs are good for scalability but not for redundancy. To have fail over I would recommend having 2 Openfire servers where one is active and the other one is just sitting there. You may put a load balancer in front or something that will detect when a server goes down and then redirect the traffic to the other server.

Note that in XMPP the connections are long lived. That means that if an XMPP server goes down then clients will need to reconnect. This means that when a server goes down clients will notice it. Smart clients may reconnect and hide that fact to users but still there is a reconnection since the TCP connection went down.

Regards,

– Gato

Thank you for excellently clear answer.

I noticed few posts about interest for writing new clustering modeules either using Terracotta ( opensource ), Gigaspaces ( commercial ) or Shoal ( opensource ). Have you at Jive given any thought about putting any resources to direct community efforts or provide a base for creating a new clustering module - or would it be better to solve fault tolerance scenarios on other components in the infrastructure.

In my case I will lean towards the latter, but for future reference it would be interesting to know.

Hey Huima,

As you correctly mention, some people wanted to implement clustering in Openfire with any of those 3 products. Moreover, someone went ahead and implemented it with Shoal though it was for remote calls and not for clustered caches so he made half of the work but probably the hardest half. At Jive we offered ourselves many times to answer questions people might have while implementing clustering. I mentioned a few times that clustering support in Openfire is already there and what is missing is to hook up a product that does the actual low level clustering work (iow, the base as you called it is already there). Having said all this, if there are people interested in implementing clustering with an open source clustering solution please step up and lets start rolling the ball. We are open to help.

Regards,

– Gato