General development

General article about development like development update

1mln or more online users on the Tigase cluster

Submitted by kobit (not verified) on Thu, 2009-11-26 11:28

I have been working on clustering code improvements in the Tigase server for last a few months to make it more reliable and better scale. In article about XMPP Service sharding - Tigase on Intel ATOMs I have presented some preliminary results on a small scale.

In last weeks I had a great opportunity to run several tests over the Tigase cluster of 10 nodes on much better hardware. The goal was to achieve 1mln online users connected to the cluster generating sensible traffic. More tests have been run to see how the cluster behaves with a different number of connections and under a different load.

Below are charts taken from two tests. One test with top 1mln 128k online users and moderate traffic and the second with peak 1mln 685k online users and very reduced traffic.

All tests were carried out until the number of connections reached its maximum and for some time after that to make sure we receive a stable service when connections start dropping.

The test for 1mln online users run with a moderate traffic, that is a message from each online user every 400 seconds and status change every 2800 seconds.

The other test for 1mln 500k online users ran with no additional traffic except user login, roster retrieval, initial presence broadcast and offline presence broadcast on connection close.

The roster size for all online users was 150 elements of which 20% (30) were online during the test and new connections rate was 100/sec.

If you are interested in more details, please continue reading...

XMPP Service sharding - Tigase on Intel ATOMs

Submitted by kobit (not verified) on Thu, 2009-11-26 11:28

Since FOSDEM 2008, when I first met Florian Jensen, I wondered whether XMPP service sharding is even possible or feasible. He presented, there his FlexiServ machines, tiny servers with no hard drive and very limited CPU power. He asked how the Tigase would work on this kind of hardware and if running a cluster of the Tigase server on FlexiServ to provide XMPP service makes sense.

Of course, for small XMPP installations the Tigase server would work wonderfully on these tiny machines. However I was quite reluctant to recommend setting XMPP cluster up on them. To be honest, however, I have never stopped thinking about it. I was always very keen on implementing clustering in the Tigase which would work successfully on small machines in sharding configuration. Ideally you could stick more nodes (shards) to the cluster when you need them.

I have been working and improving clustering code in the Tigase server for over a year. It seems to me it works pretty well now so I decided to publish results from tests run on my development installation. The goal behind the tests was to determine whether clustering gives you any benefits other than just HA service. Whether adding more nodes to the cluster helps spread the load and improves the service throughput. This article presents all the details from tests I ran.

Again, I know many people are quite busy and prefer to get to the point as soon as possible. So I am starting with the conclusion and providing all the details later on. The table below presents CPU usage depending on the number of user connections to the cluster. RAM usage is displayed for the point when CPU usage was above 90% but not yet saturated.

I have run 5 tests. Each test puts the load to selected cluster nodes only.

Results 1 node 2 nodes 3 nodes 4 nodes 5 nodes
CPU usage <80% <12k  <18k  <30k  <36k  <42k
CPU usage >90% 18k-24k  18k-24k  30k-36k  36k-42k  42k-50k
CPU Saturation >24k  >26k  >36k  >42k  >50k
RAM Usage on node  80%  50%  45%  40%  40%

Please note, even though the table shows number of user connections, this is not what really caused the load. Number of connections are presented here as kind of symbolic factor. Each connection generates some load on the server sending messages and changing presence status. The traffic generated by all the connections is what causes the load. Of course the more connections the more traffic, so number of connections is indirect factor of the total load.

If you are interested in all the details, please continue reading...

From Tigase SVN to Ubuntu packages

Submitted by kobit (not verified) on Fri, 2009-05-08 10:15

If you use Ubuntu and also run the most recent Tigase version from SVN you no longer have to compile the code yourself.

I have just received a word from Smoku that he has updated Ubuntu packages for the Tigase server he maintains. Fresh packages are now generated straight from the Tigase SVN every 2 hours.

For more details please refer to his announcement.

If you have any comments or suggestions on this, please don't hesitate to let us know.

Database converter

Submitted by kobit (not verified) on Tue, 2009-05-05 12:54

Thanks to our new contributor smoku we have now the user database converter.

You can convert user database from format used by other XMPP servers to Tigase format. This is Groovy based script or rather extensible framework and you can easily 'plug' more source formats for different servers if you need a conversion from the format not yet supported.

Tigase can store users' data in different ways. The converter handles this very well. It reads the Tigase configuration you use for your installation and loads all the user data in a correct format using Tigase own database connectors. This way there is no place for incompatibility.

The converter is already available in our SVN repository for Tigase converter and the README file explains how to use it.

Please feel free to try it and send us your comments.