Have you ever asked how many contacts will you have on your roster in the future? Propietary instant messaging services limit your buddy list to 150 or so. Is there any limit in a Jabber roster? Of course, public servers should put a limit to prevent buggy clients from compromising the server. But how high is the technical limit? Maybe 500? 1000? And what happens when you have so many contacts in your roster?
As far as I know, XMPP does not impose any limit, and there is no recomendation. So servers and clients will tell what's the technical limit.
The process: I created 2001 accounts on my test Ejabberd server, one master account and two thousand slaves. Then the master account was subscribed to the slaves presences. No problem in this process. Once the master account had a roster with 2000 items, I logged in it and other three slaves with different clients: Psi 0.9.2, Exodus 0.9.0.23 and Tkabber 0.9.7beta. I performed some common tasks with the master account and evaluated the clients performance.
There are only two possibilities: the client is as fast with a roster of 2000 contacts as it is with a roster with 1 contact, or the client is incredibly slow when making some particular task. These are the results:
- Tasks that are completed by the clients as fast as with a normal roster:
- Move and resize the roster window
- Talk or receive messages from a contact
- Disconnect (log out)
- Tasks that make the three clients hang during some seconds (between a second and a minute):
- Show/hide offline contacts
- Connect (log in). Some of this time is spent recieving the roster (it's worth 150 KB)
- Tkabber also hangs during some seconds doing those tasks:
- collapse/expand a group
- a contact changes its presence
- when 'nested roster groups' is activated: open/close a chat window.
We can arrive to one conclusion: even with current, not-optimized clients, really big rosters can be used with not many problems. Probably with some optimizations related to roster management it would be possible to polish those inneficiencies. But who does really have such big rosters nowadays? This is a documented case. With increasing Jabber deployment, new bot contacts, chatroom bookmarks and who knows what will come in the future, roster sizes may increase (and server administrators will not be so happy).