<?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>Comments on: Obvious Choices</title>
	<atom:link href="http://www.subbu.org/blog/2008/06/obvious-choices/feed" rel="self" type="application/rss+xml" />
	<link>http://www.subbu.org/blog/2008/06/obvious-choices</link>
	<description>HTTP, REST and some Cycling</description>
	<pubDate>Wed, 07 Jan 2009 04:24:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Anand</title>
		<link>http://www.subbu.org/blog/2008/06/obvious-choices/comment-page-1#comment-273</link>
		<dc:creator>Anand</dc:creator>
		<pubDate>Fri, 20 Jun 2008 23:02:07 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2008/06/obvious-choices/#comment-273</guid>
		<description>Great post Subbu.

Scalability is a factor of the architecture, not the framework or language - that is the single biggest thing I have learnt.

In my current job [for one more week], we use Java and all the nice stuff only to stumble at the O-R layer for large datasets doing silly things very similar to what twitter guys did initially, badly formed queries for M-2-M relationships and breaking the tiering in a few places.

I think choosing a language / framework is a factor of 4 things.

- ease of development
- raw performance
- maintainability
- hardware requirements

Rails, to me, is the best in 2 out of 4 of those categories.  With ruby 1.9 [and 2.0 roadmap], raw performance will at least be comparable to Java, which leaves us with hardware requirements.

Unless you are google and have 10s of millions of servers [even they use python], what difference does it make between using 4 vs 6 servers?
</description>
		<content:encoded><![CDATA[<p>Great post Subbu.</p>
<p>Scalability is a factor of the architecture, not the framework or language - that is the single biggest thing I have learnt.</p>
<p>In my current job [for one more week], we use Java and all the nice stuff only to stumble at the O-R layer for large datasets doing silly things very similar to what twitter guys did initially, badly formed queries for M-2-M relationships and breaking the tiering in a few places.</p>
<p>I think choosing a language / framework is a factor of 4 things.</p>
<p>- ease of development<br />
- raw performance<br />
- maintainability<br />
- hardware requirements</p>
<p>Rails, to me, is the best in 2 out of 4 of those categories.  With ruby 1.9 [and 2.0 roadmap], raw performance will at least be comparable to Java, which leaves us with hardware requirements.</p>
<p>Unless you are google and have 10s of millions of servers [even they use python], what difference does it make between using 4 vs 6 servers?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Subbu Allamaraju</title>
		<link>http://www.subbu.org/blog/2008/06/obvious-choices/comment-page-1#comment-272</link>
		<dc:creator>Subbu Allamaraju</dc:creator>
		<pubDate>Thu, 19 Jun 2008 08:37:11 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2008/06/obvious-choices/#comment-272</guid>
		<description>To add to my previous reply, for use cases needing bulk GETs, proper use of caching can avoid the need for such GETs without losing on performance.
</description>
		<content:encoded><![CDATA[<p>To add to my previous reply, for use cases needing bulk GETs, proper use of caching can avoid the need for such GETs without losing on performance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Subbu Allamaraju</title>
		<link>http://www.subbu.org/blog/2008/06/obvious-choices/comment-page-1#comment-271</link>
		<dc:creator>Subbu Allamaraju</dc:creator>
		<pubDate>Thu, 19 Jun 2008 08:00:06 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2008/06/obvious-choices/#comment-271</guid>
		<description>It is not necessarily slower. More importantly, it is necessary to consider a few questions:

a. Optimistic concurrency: How will optimistic concurrency work when you want to batch a number of changes into a single request?

b. How will clients be notified of partial success or failures?

c. What is the client expected to do on partial failures? How will the client know what parts of the request can be resubmitted without worrying about duplicate processing, i.e., is the bulk request idempotent as a whole, or each update within the bulk idempotent?

Some of these may be easy to address in certain specific use cases, but I am not sure if the solution can be generalized.

If these question can be answered well, and if it is proven that the client/server cannot pipeline connections, batch processing over HTTP can be justified.
</description>
		<content:encoded><![CDATA[<p>It is not necessarily slower. More importantly, it is necessary to consider a few questions:</p>
<p>a. Optimistic concurrency: How will optimistic concurrency work when you want to batch a number of changes into a single request?</p>
<p>b. How will clients be notified of partial success or failures?</p>
<p>c. What is the client expected to do on partial failures? How will the client know what parts of the request can be resubmitted without worrying about duplicate processing, i.e., is the bulk request idempotent as a whole, or each update within the bulk idempotent?</p>
<p>Some of these may be easy to address in certain specific use cases, but I am not sure if the solution can be generalized.</p>
<p>If these question can be answered well, and if it is proven that the client/server cannot pipeline connections, batch processing over HTTP can be justified.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Will Sargent</title>
		<link>http://www.subbu.org/blog/2008/06/obvious-choices/comment-page-1#comment-270</link>
		<dc:creator>Will Sargent</dc:creator>
		<pubDate>Wed, 18 Jun 2008 17:22:04 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2008/06/obvious-choices/#comment-270</guid>
		<description>"In the REST community, there is a similar pattern. Every now and then someone comes along with a need to do batch processing asserting that making "n" connections is slower than POSTing all requests in a single batch. When told of the problems with this approach, that person would immediately conclude that REST and/or HTTP is broken and that he/she "needs" to do batch processing."

So it isn't slower?  Or the slowness isn't important?  I'm confused.
</description>
		<content:encoded><![CDATA[<p>&#8220;In the REST community, there is a similar pattern. Every now and then someone comes along with a need to do batch processing asserting that making &#8220;n&#8221; connections is slower than POSTing all requests in a single batch. When told of the problems with this approach, that person would immediately conclude that REST and/or HTTP is broken and that he/she &#8220;needs&#8221; to do batch processing.&#8221;</p>
<p>So it isn&#8217;t slower?  Or the slowness isn&#8217;t important?  I&#8217;m confused.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Amundsen</title>
		<link>http://www.subbu.org/blog/2008/06/obvious-choices/comment-page-1#comment-269</link>
		<dc:creator>Mike Amundsen</dc:creator>
		<pubDate>Wed, 18 Jun 2008 11:33:46 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2008/06/obvious-choices/#comment-269</guid>
		<description>Good Post.
</description>
		<content:encoded><![CDATA[<p>Good Post.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
