<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare für a little bit of zeank</title>
	<atom:link href="http://blog.jwchat.org/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jwchat.org</link>
	<description>coding and stuff</description>
	<lastBuildDate>Fri, 15 Apr 2011 10:49:25 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
	<item>
		<title>Kommentar zu bosh speed tests von Steve</title>
		<link>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/#comment-224791</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Fri, 15 Apr 2011 10:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jwchat.org/?p=140#comment-224791</guid>
		<description>Yes, exactly, the clock was started right before the session creation request has been sent.</description>
		<content:encoded><![CDATA[<p>Yes, exactly, the clock was started right before the session creation request has been sent.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu bosh speed tests von Dhruv</title>
		<link>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/#comment-224790</link>
		<dc:creator>Dhruv</dc:creator>
		<pubDate>Thu, 14 Apr 2011 18:13:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jwchat.org/?p=140#comment-224790</guid>
		<description>Steve, Thanks!!
I am assuming the clock was started when the session creation request was sent right? If that&#039;s the case then it&#039;s perfect!!</description>
		<content:encoded><![CDATA[<p>Steve, Thanks!!<br />
I am assuming the clock was started when the session creation request was sent right? If that&#8217;s the case then it&#8217;s perfect!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu bosh speed tests von Steve</title>
		<link>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/#comment-224789</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Thu, 14 Apr 2011 15:43:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jwchat.org/?p=140#comment-224789</guid>
		<description>Dhruv, the clocked was stopped after a full and successfull xmpp login (without fetching rosters).</description>
		<content:encoded><![CDATA[<p>Dhruv, the clocked was stopped after a full and successfull xmpp login (without fetching rosters).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu bosh speed tests von Dhruv</title>
		<link>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/#comment-224788</link>
		<dc:creator>Dhruv</dc:creator>
		<pubDate>Thu, 14 Apr 2011 15:23:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jwchat.org/?p=140#comment-224788</guid>
		<description>Hello,
  I am curious to know when you started the timer and when did you stopped it? The reason I ask is because NXB will currently send a positive session creation response as soon as it receives a request (without even contacting the XMPP server). It then tries a bunch of strategies to look up the server (based on the &#039;to&#039; attribute) and then connects to it. Later on when the  packet is available, it is sent back to the client, which is when the connection to the backend XMPP server was actually established. This is done mainly to optimize the case of multiple streams.</description>
		<content:encoded><![CDATA[<p>Hello,<br />
  I am curious to know when you started the timer and when did you stopped it? The reason I ask is because NXB will currently send a positive session creation response as soon as it receives a request (without even contacting the XMPP server). It then tries a bunch of strategies to look up the server (based on the &#8216;to&#8217; attribute) and then connects to it. Later on when the  packet is available, it is sent back to the client, which is when the connection to the backend XMPP server was actually established. This is done mainly to optimize the case of multiple streams.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu bosh speed tests von Steve</title>
		<link>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/#comment-224737</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Wed, 30 Mar 2011 09:36:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jwchat.org/?p=140#comment-224737</guid>
		<description>Hi again. Just a remark to avoid confusion: When I&#039;ve been talking about Mnesia being involved this on the one hand means yes, authentication. But Mnesia is also needed for runtime information shared across the cluster. Even if you&#039;re having odbc as your storage engine those Mnesia based parts are still required.</description>
		<content:encoded><![CDATA[<p>Hi again. Just a remark to avoid confusion: When I&#8217;ve been talking about Mnesia being involved this on the one hand means yes, authentication. But Mnesia is also needed for runtime information shared across the cluster. Even if you&#8217;re having odbc as your storage engine those Mnesia based parts are still required.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu bosh speed tests von Phil</title>
		<link>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/#comment-224736</link>
		<dc:creator>Phil</dc:creator>
		<pubDate>Wed, 30 Mar 2011 09:31:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jwchat.org/?p=140#comment-224736</guid>
		<description>Thanks for the update. 

And again for the explanation about the process delay and the explanation about mnesia and its role in the auth process. Sometime in the near future I&#039;ll be circling back on this and investigating what the cost would be under load for auth only, auth+presence, auth+presence+roster with the various built-in and one custom auth model for ejabberd.

I suspect that odbc based auth (which is what you want for semi-elastic scaling via clustering for a domain) will be even slower. But, as you pointed out, you get other benefits that may outweigh the overhead.</description>
		<content:encoded><![CDATA[<p>Thanks for the update. </p>
<p>And again for the explanation about the process delay and the explanation about mnesia and its role in the auth process. Sometime in the near future I&#8217;ll be circling back on this and investigating what the cost would be under load for auth only, auth+presence, auth+presence+roster with the various built-in and one custom auth model for ejabberd.</p>
<p>I suspect that odbc based auth (which is what you want for semi-elastic scaling via clustering for a domain) will be even slower. But, as you pointed out, you get other benefits that may outweigh the overhead.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu bosh speed tests von Steve</title>
		<link>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/#comment-224735</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Wed, 30 Mar 2011 07:00:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jwchat.org/?p=140#comment-224735</guid>
		<description>Stupid me!

I forgot about ejabberd&#039;s &#039;process_delay&#039; feature. At every request ejabberd&#039;s BOSH interface waits per default 100ms for incoming data from the server in order to reduce the overall number of requests. If one would test a real client login with loading roster and handling all incoming presence (which is a bit hard to determine automatically) I&#039;m pretty sure the results would look quite different. But anyway. I did my tests again with process_delay set to 10ms and got a value of 417ms for ejabberd. Which is significantly lower then the first value but still significantly higher than all others.
I&#039;ve also tried setting process_delay to a value lower than 10ms but then ejabberd doesn&#039;t seem to work at all anymore. Probably there&#039;s a bug. Anyway, as there are exactly 4 roundtrips involved with a single login the maximum time that could be safed by lowering process_delay would be another 40ms. 

But I think a process_delay anywhere between 10ms and 100ms is a good thing for the overall client experience.</description>
		<content:encoded><![CDATA[<p>Stupid me!</p>
<p>I forgot about ejabberd&#8217;s &#8216;process_delay&#8217; feature. At every request ejabberd&#8217;s BOSH interface waits per default 100ms for incoming data from the server in order to reduce the overall number of requests. If one would test a real client login with loading roster and handling all incoming presence (which is a bit hard to determine automatically) I&#8217;m pretty sure the results would look quite different. But anyway. I did my tests again with process_delay set to 10ms and got a value of 417ms for ejabberd. Which is significantly lower then the first value but still significantly higher than all others.<br />
I&#8217;ve also tried setting process_delay to a value lower than 10ms but then ejabberd doesn&#8217;t seem to work at all anymore. Probably there&#8217;s a bug. Anyway, as there are exactly 4 roundtrips involved with a single login the maximum time that could be safed by lowering process_delay would be another 40ms. </p>
<p>But I think a process_delay anywhere between 10ms and 100ms is a good thing for the overall client experience.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu bosh speed tests von Steve</title>
		<link>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/#comment-224734</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Wed, 30 Mar 2011 06:37:15 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jwchat.org/?p=140#comment-224734</guid>
		<description>Phil, my test code was just some simple jsjac based client that starts a timer before login and stops it once authentication has been successful. The code can be found at https://github.com/e-hulp/xmpptk.

As to your question about NXB being slower than native implementations: An external component will always be slower than a native BOSH interface (if its logic itself is comparably fast) because it has some overhead involved. It needs to establish another tcp/ip connection between the CM and the server and it needs to parse the BOSH request and then the request must be parsed again at the server. While a native interface only needs to parse the whole request once.

In case of ejabberd the BOSH interface itself is so much slower than the external component that those advantages just don&#039;t have much effect.

My guess is that ejabberd&#039;s BOSH might be so slow because of the involvement of mnesia. Which also makes ejabberd&#039;s BOSH interface quite different from the others as it is clusterable without any further requirements. So maybe the pure speed comparisons are not totally fair.</description>
		<content:encoded><![CDATA[<p>Phil, my test code was just some simple jsjac based client that starts a timer before login and stops it once authentication has been successful. The code can be found at <a href="https://github.com/e-hulp/xmpptk">https://github.com/e-hulp/xmpptk</a>.</p>
<p>As to your question about NXB being slower than native implementations: An external component will always be slower than a native BOSH interface (if its logic itself is comparably fast) because it has some overhead involved. It needs to establish another tcp/ip connection between the CM and the server and it needs to parse the BOSH request and then the request must be parsed again at the server. While a native interface only needs to parse the whole request once.</p>
<p>In case of ejabberd the BOSH interface itself is so much slower than the external component that those advantages just don&#8217;t have much effect.</p>
<p>My guess is that ejabberd&#8217;s BOSH might be so slow because of the involvement of mnesia. Which also makes ejabberd&#8217;s BOSH interface quite different from the others as it is clusterable without any further requirements. So maybe the pure speed comparisons are not totally fair.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu bosh speed tests von Phil</title>
		<link>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/#comment-224733</link>
		<dc:creator>Phil</dc:creator>
		<pubDate>Wed, 30 Mar 2011 01:56:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jwchat.org/?p=140#comment-224733</guid>
		<description>Any chance that you can share you&#039;re test code? I&#039;d be interested to retest with ejabberd 3.0 as they are apparently changing out their admittedly slow http capabilities with mochiweb.

Also, any explanation/theories as to why NXB is slower proxy&#039;ing tigase and prosody ... but faster than ejabberd native?</description>
		<content:encoded><![CDATA[<p>Any chance that you can share you&#8217;re test code? I&#8217;d be interested to retest with ejabberd 3.0 as they are apparently changing out their admittedly slow http capabilities with mochiweb.</p>
<p>Also, any explanation/theories as to why NXB is slower proxy&#8217;ing tigase and prosody &#8230; but faster than ejabberd native?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu JSJaC 1.3.3: Grab it while it&#8217;s hot! von a little bit of zeank &#187; Blog Archive &#187; JSJaC v1.3.4 bugfix release</title>
		<link>http://blog.jwchat.org/2011/03/05/jsjac-133-grab-it-while-its-hot/#comment-224678</link>
		<dc:creator>a little bit of zeank &#187; Blog Archive &#187; JSJaC v1.3.4 bugfix release</dc:creator>
		<pubDate>Wed, 09 Mar 2011 10:36:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jwchat.org/?p=137#comment-224678</guid>
		<description>[...] JSJaC 1.3.3: Grab it while it&#8217;s hot! [...]</description>
		<content:encoded><![CDATA[<p>[...] JSJaC 1.3.3: Grab it while it&#8217;s hot! [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

