Why Tigase Server have so high performance?
Hi,I want to know Why Tigase Server can reach so many connections? http://www.tigase.org/content/tigase-load-tests-again-500k-user-connections
I read tigase server code,and I found It use JAVA NIO API,seem nothing special.
so,I am not understand why tigase has higer performance than OpenFire(basing mina).
and,I also want to know why tigase using NIO API directly instead of mina ? It seems program with mina more easy than NIO API.
Hopefully you don't intend to insult me ;-)
The main reason for not using mina is that Tigase predates mina, and at that time there was no libraries for Java NIO except Java NIO.
Secondly, when mina was available I briefly looked in its code and found out the Tigase implementation is better than mina so decided to not switch over.
In fact, Openfire used to use (maybe it still does use) Tigase's code for Java NIO.
And answering your main question - why Tigase performance is better than others - I think it is not a result of simply using Java NIO. It certainly matters a lot but I think the whole server design and implementation of all other parts play crucial role.
Please note, Tigase also uses own XML parser specially designed and implemented for a very fast parsing XMPP stanzas with little resource consumption.
You can find optimisations like this all over the code. Maybe it is "nothing special" but almost every piece of Tigase's code was thought through and considered how it would work under a high load.
I see,thanks very much,and reading tigase code is a enjoyment.