[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [JDEV] Status Notifications.



> i would recommend against keeping the "roster" on the server side.

Well, as like everything else in Jabber this can be optional, but I'm am
quite sure that in almost every possible case this feature will be used.

Jabber is designed around a "smart" server concept, where clients can be
simple "lightweight" processes and aren't required to store any data at
all.

> assuming the "roster" is on the server side, here's the reason:
> 
>   1. servers must keep a list of currently logged-in users.
>      assuming N users logged at one time, the server must maintain
>      N records.

It does this already... the server must always know who's logged in, it's
inherent to it's functionality.

>   2. servers maintain a "roster" for each user logged in.
>      at worst, each user will have each other user in their roster.
>      this means that the total roster list could approach N^2.
>      this will be very bad in large installations.

Large installations will most likely be using an SQL database in the
backend to store all of this information.  Say you have 10,000 users and
on average they have 100(high end average) in their roster, thats 100k
rows in a table, something my 486 and msql doesn't even have a problem
doing :)

Also, the data to send a roster whenever a client connects, even for a
large roster, is still very very little(100 users might be at most 10k)...
and clients can fetch the roster in chunks if needed.

IMHO, server side rosters ranks up there near the top in my own personal
"most important features".

Jer