powered by Jive Software

Loading huge user rosters!

Hello

Using shared groups, loading a user roster can be a heavy duty process.

In my implementation each one of 10000 users belong to the same shared group.

I noticed (at least in sparkweb) openfire answers to the roster query with online and offline users (refer to bold prepared statement below).

Im afraid ~1Mb of roster has to be transferred for each roster initialization.

Is there any configuration option i missed?

Why cant only the online users be sent?

(Using online presence updates to add members to roster)

Im not very willing to change the following openfire class (RosterItemProvider) used by roster requests:

private static final String LOAD_ROSTER =
“SELECT jid, rosterID, sub, ask, recv, nick FROM ofRoster WHERE username=?”;

To a query that checks if the user isnt offline.

Is this a viable solution? Anyone has had this problem, or tried another solution?

Tx!!

joao

because pretty much all chat software loads your entire roster at boot. they then show you what you have chosen in the preferences, e.x. Show offline users, or not show offline users. In the case of spark this is group or not group offline users. This is standard practice with every protocol I have ever used (AIM, Yahoo, MSN, iChat(xmmp, AIM), etc). You need to load your entire roster in order to know when somebody comes online or goes offline. The status of their presense is linked to the ID loading in the roster. IF the user is not in the roster at the outset the app will not be notified of status changes.

Thanks for your help…again

I agree with you. but, in my opinion, that solution does not scale well.

Regarding what you said:

“You need to load your entire roster in order to know when somebody comes online or goes offline. The status of their presense is linked to the ID loading in the roster. IF the user is not in the roster at the outset the app will not be notified of status changes.”

This should not be necessary, linking a user to roster members should be done only in database. The fact that the user receives roster info has nothing to do with the desire of receiving presence notifications (if offline presence display is disabled off course).

I already added a component that is contacted everytime a user logs in and broadcasts its presence to all online users of the same shared group. This was done to try to correct sparkweb not updating new shared group users to already online users.

So maybe ill give it a try this experience to load only online users.

Im very concerned to deploy this and the clients wait forever to load their roster.

tx alot again

joao