[jdev] Presence packets bottleneck on huge rosters

Bresler, Jonathan Jonathan.Bresler at usi.net
Thu Dec 9 07:59:39 CST 2004


One practical consequence for the XML stream is a separate <presence>
Stanza is sent from the server to the client for each contact.  I have
To check the karma code to see if the client connection's karma is charged
For this traffic.  

500 contacts means 500 <presence> stanzas, each one being something like 
150 bytes longs (payload, not including Ethernet, TCP and IP headers, 
call it 200 bytes in round numbers).  So we get 5 contacts per 1kB on the 
Wire or 100kB, which is 800kb on the wire.  Rather heavy duty. ;(  But there
Does not appear to be any choice at this time....so dribbling the presence
Data out to the client over some time period appears to be desireable.

I have to read the karma code understand the impact of traffic to a destination
On the karma (possible DOS against a user here?) and compare the release code of jabberd-1.4.3 to the cvs code to understand jabberd-14's handling of this better.

Jonathan



-----Original Message-----
From: Mickael Remond [mailto:mickael.remond at erlang-fr.org] 
Sent: Thursday, December 09, 2004 5:05 AM
To: Jabber software development list
Cc: Bresler, Jonathan
Subject: Re: [jdev] Presence packets bottleneck on huge rosters


Bresler, Jonathan wrote:
> Hello,
> 
> Large roster lists on active servers with a number of users are a problem.
> All the more so if the connections are encrypted.  The current jabberd14 code
> (reading, still have jabberd2 and ejabberd to read) sends out <presence> 
> Stanzas immediately.  This can be intense.
> 
> One easy to implement option, that might not twist the RFCs to hard, is to schedule
> The <presence> stanzas over some short time period using the heartbeats that are
> Available in jabberd14 (and presumeably jabberd2 and ejabberd).  

That was one of my thought. I did not know the heartbeat mechanism of 
Jabberd1.4. What are the practical consequences on the XML stream ? I 
mean for example, if you have 500 contacts in your roster, how would the 
server send the presence packets to the destination and how much time 
will it take ?

Another of my thought was to use some kind of message delivery 
scheduler, that would rearrange priority between messages. For example, 
normal messages would be delivered with a higher priority than presence 
packet. The scheduler could also play the role of the heartbeat to 
regulate the number of presence packet sent over an interval of time. I 
did not yet thought of all the implication of this change.

-- 
Mickaël Rémond
  http://www.erlang-projects.org/

---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.804 / Virus Database: 546 - Release Date: 11/30/2004
 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.804 / Virus Database: 546 - Release Date: 11/30/2004
 



More information about the JDev mailing list