Connection Mananger Specification/Documentation

I’m looking for it. We want to improve it or rewrite it if possible.

Without the connection mananger, OpenFire bloats by 70K per user. When we use the connection mananger, we get 30K per user, approx, and a max of 30,000 connections before it ran into problems.

It seems to me that the connection manager could perhaps be rewritten to use non-blocking connections and both save memory, and run more efficiently, or perhaps even written in another language like C. Then we can get results similar to the Tigase server’s memory footprint, and we may be able to support more than 30,000 connections in one instance of a connection manager.

It would help us greatly if there is any documentation or specification for how the connection manager relates to Openfire.

Looking into the connection manager, it seems that the NIOConnection class is 660K. This however, includes entities such as the org.apache.mina.transport.socket.nio.SocketSessionImpl, so it is difficult to discern what is a singleton or otherwise shared and what is needed for each NIOConnection.

I will try to determine this. I believe the excessive memory use per connection might be due to something that is duplicated per connection that should not be.