Stephen, 

I don’t mean to antagonize, please forgive if I have gotten under your skin. 
Its hard to tell via email ;(  Just thinking about these issues in terms of 
scalability.  I have use IDX-Tsunami (http://tsunami.idealx.org/index.en.html) 
to put 7000 users on a  Compaq 1850R with 1GB RAM running jabberd-1.4.3.1 and 
jadc2s-0.9.0.1.  Stopped the test at that point as it was 3x my expected user 
population.  As an aside the same box (dual 550MHz P3 processors) does about 
160 SSL'ed messages per second of about 85 bytes each.

You are correct that several <presence> messages (about 10) would be contained 
in each Ethernet packet amortizing the Ethernet, TCP and IP costs over that 
number of packets.  Perhaps my number were too round, too much of an 
overestimate. Still each stanza will be a separate write() to the socket via 
mio and from there to pth (have yet to read all the mio or any of the pth code).

A real-world application is a client at the end of a dialup link with a company 
wide roster.  I don’t have a solution to this.  I have added it to a list of 
things to "be aware of"  and "wonder/think about" when the chance arises.  

I'll take a look at stream compression....I still have a lot to learn here, so 
please excuse my newness and partial ignorance.  Stream compression would be 
very valuable for this as much of the <presence> stanzas are repeated data.  
Compression should be rather high.

Jonathan

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stephen Marquard
Sent: Thursday, December 09, 2004 9:34 AM
To: [EMAIL PROTECTED]
Subject: [jdev] Re: Presence packets bottleneck on huge rosters


Bresler, Jonathan wrote:
> 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.

Although 1 stanza is not necessarily 1 ethernet packet, and 800KB is not 
much on a LAN for example.

Do you have a real-life application in mind where such large rosters 
would be used with frequent enough login/logouts to be an issue?

Another possibility for addressing this case efficiently is stream 
compression - http://www.jabber.org/jeps/jep-0138.html

Regards
Stephen

_______________________________________________
jdev mailing list
[EMAIL PROTECTED]
http://mail.jabber.org/mailman/listinfo/jdev

---
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
 
_______________________________________________
jdev mailing list
[EMAIL PROTECTED]
http://mail.jabber.org/mailman/listinfo/jdev

Reply via email to