<?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"
	>
<channel>
	<title>Comments on: The Share-Nothing Architecture</title>
	<atom:link href="http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture/feed" rel="self" type="application/rss+xml" />
	<link>http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture</link>
	<description>"Act reasonable in your own time."</description>
	<pubDate>Wed, 20 Aug 2008 14:32:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Alex</title>
		<link>http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-4304</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Fri, 30 Dec 2005 20:16:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-4304</guid>
		<description>Author is comparing heavy-thing to yellow-thing. There is no such thing as "Java scalability" BUT there are few Java-based solution that a much more scalable then using database for that purposes.
Also, I wouldn't call what is proposed a "share-nothing" as, in fact, a database is what is shared. And that is not the fastest way to share information.</description>
		<content:encoded><![CDATA[<p>Author is comparing heavy-thing to yellow-thing. There is no such thing as &#8220;Java scalability&#8221; BUT there are few Java-based solution that a much more scalable then using database for that purposes.<br />
Also, I wouldn&#8217;t call what is proposed a &#8220;share-nothing&#8221; as, in fact, a database is what is shared. And that is not the fastest way to share information.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ted</title>
		<link>http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-3746</link>
		<dc:creator>Ted</dc:creator>
		<pubDate>Wed, 23 Mar 2005 06:39:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-3746</guid>
		<description>Shared-nothing is nice, but if you're not caching anything your database is going to become a bottleneck faster:

No cache: hit the database for all reads and all writes
Cache: hit the database for few reads and all writes

"When somebody posts at the first load-balanced server and the number of posts on a board is increased only the first server’s cache knows about this. All people whose requests are handled by the 
second and third server still get sent the old post count: The caches are not equal, they’re not coherent."

Memcached! Favorite of LiveJournal, Slashdot, Wikipedia. "The memcached server and clients work together to implement one global cache across as many machines as you have." Client APIs in PHP, Python, Java, Ruby, Perl, and C. http://www.danga.com/memcached/

Here's an interesting/informative/vaugely relevant look at what happened to LiveJournal when they started scaling way up using MySQL: http://www.danga.com/words/2004_mysqlcon/mysql-slides.pdf

I found the LJ slides and subsequently Memcached on Jeremy Zawodny's blog a while back. He works at Yahoo, and sometimes has interesting stuff to say: http://jeremy.zawodny.com/blog/</description>
		<content:encoded><![CDATA[<p>Shared-nothing is nice, but if you&#8217;re not caching anything your database is going to become a bottleneck faster:</p>
<p>No cache: hit the database for all reads and all writes<br />
Cache: hit the database for few reads and all writes</p>
<p>&#8220;When somebody posts at the first load-balanced server and the number of posts on a board is increased only the first server’s cache knows about this. All people whose requests are handled by the<br />
second and third server still get sent the old post count: The caches are not equal, they’re not coherent.&#8221;</p>
<p>Memcached! Favorite of LiveJournal, Slashdot, Wikipedia. &#8220;The memcached server and clients work together to implement one global cache across as many machines as you have.&#8221; Client APIs in PHP, Python, Java, Ruby, Perl, and C. <a href="http://www.danga.com/memcached/" rel="nofollow">http://www.danga.com/memcached/</a></p>
<p>Here&#8217;s an interesting/informative/vaugely relevant look at what happened to LiveJournal when they started scaling way up using MySQL: <a href="http://www.danga.com/words/2004_mysqlcon/mysql-slides.pdf" rel="nofollow">http://www.danga.com/words/2004_mysqlcon/mysql-slides.pdf</a></p>
<p>I found the LJ slides and subsequently Memcached on Jeremy Zawodny&#8217;s blog a while back. He works at Yahoo, and sometimes has interesting stuff to say: <a href="http://jeremy.zawodny.com/blog/" rel="nofollow">http://jeremy.zawodny.com/blog/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bws</title>
		<link>http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1366</link>
		<dc:creator>bws</dc:creator>
		<pubDate>Thu, 02 Sep 2004 12:44:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1366</guid>
		<description>Well.. If you got a non caching slow system, you are forced to scale anyway :p
Btw, I'm quite dissapointed in PHP that it doesn't support caching :(.
Though I can understand it for a lot of webservers still run the CGI version (which can appear to be a normal apache handler php install).
Just hope AspX will be available widely soon (mod_mono). .Net just is 10 times faster than PHP, and the complicated component model doesnt decrease the speed that much :p</description>
		<content:encoded><![CDATA[<p>Well.. If you got a non caching slow system, you are forced to scale anyway :p<br />
Btw, I&#8217;m quite dissapointed in PHP that it doesn&#8217;t support caching :(.<br />
Though I can understand it for a lot of webservers still run the CGI version (which can appear to be a normal apache handler php install).<br />
Just hope AspX will be available widely soon (mod_mono). .Net just is 10 times faster than PHP, and the complicated component model doesnt decrease the speed that much :p</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zef</title>
		<link>http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1365</link>
		<dc:creator>Zef</dc:creator>
		<pubDate>Thu, 02 Sep 2004 11:20:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1365</guid>
		<description>That's what I'm saying. You can cache and scale, but you have to be creative. With share-nothing you need no creativity, which very good because its users... nevermind ;)</description>
		<content:encoded><![CDATA[<p>That&#8217;s what I&#8217;m saying. You can cache and scale, but you have to be creative. With share-nothing you need no creativity, which very good because its users&#8230; nevermind <img src='http://www.zefhemel.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bws</title>
		<link>http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1364</link>
		<dc:creator>bws</dc:creator>
		<pubDate>Thu, 02 Sep 2004 11:07:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1364</guid>
		<description>Having a cache does not mean that it isn't scalable.
Just create a new database table which contains a version number for every cache a server could have. When something changes, like a new category is added, that version number on the database server of the category cache is incremented, so all http servers know that they should recache stuff. Keeping a cache on the http servers is more efficient, and querying just ~20 values from a table (possibly with a join) is peanuts.
I don't see the scalability problem at all, just be creative :p</description>
		<content:encoded><![CDATA[<p>Having a cache does not mean that it isn&#8217;t scalable.<br />
Just create a new database table which contains a version number for every cache a server could have. When something changes, like a new category is added, that version number on the database server of the category cache is incremented, so all http servers know that they should recache stuff. Keeping a cache on the http servers is more efficient, and querying just ~20 values from a table (possibly with a join) is peanuts.<br />
I don&#8217;t see the scalability problem at all, just be creative :p</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zef</title>
		<link>http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1363</link>
		<dc:creator>Zef</dc:creator>
		<pubDate>Wed, 01 Sep 2004 17:33:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1363</guid>
		<description>Yes it's a System.Web.UI.Page member variable called Cache.</description>
		<content:encoded><![CDATA[<p>Yes it&#8217;s a System.Web.UI.Page member variable called Cache.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zef</title>
		<link>http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1362</link>
		<dc:creator>Zef</dc:creator>
		<pubDate>Wed, 01 Sep 2004 17:22:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1362</guid>
		<description>I vaguely remember there's also some other stuff, a Hashmap that you could use to store data in. Can't really remember the name, it could even be Cache. But if there's not, then ok, ASP.NET's share-nothing aswell.</description>
		<content:encoded><![CDATA[<p>I vaguely remember there&#8217;s also some other stuff, a Hashmap that you could use to store data in. Can&#8217;t really remember the name, it could even be Cache. But if there&#8217;s not, then ok, ASP.NET&#8217;s share-nothing aswell.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marten Veldthuis</title>
		<link>http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1361</link>
		<dc:creator>Marten Veldthuis</dc:creator>
		<pubDate>Wed, 01 Sep 2004 15:55:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2004/09/01/the-share-nothing-architecture#comment-1361</guid>
		<description>Perhaps you're not being really fair to ASP.NET (don't know much about Java or mod_perl and the like). Simply setting e.g.

&lt;sessionstate mode="SqlServer" sqlConnectionString="foobar" /&gt;

in web.config would turn put ASP.NET sessions in SqlServer. Other options are InProc (on the webserver, in memory) and StateServer, which lets you have the in-memory cache on another server running the ASP.NET State Service.

http://msdn.microsoft.com/library/en-us/dnaspp/html/aspnetscal.asp is a good read for ASP.NET scalability.&lt;/sessionstate&gt;</description>
		<content:encoded><![CDATA[<p>Perhaps you&#8217;re not being really fair to ASP.NET (don&#8217;t know much about Java or mod_perl and the like). Simply setting e.g.</p>
<p><sessionstate mode="SqlServer" sqlConnectionString="foobar" /></p>
<p>in web.config would turn put ASP.NET sessions in SqlServer. Other options are InProc (on the webserver, in memory) and StateServer, which lets you have the in-memory cache on another server running the ASP.NET State Service.</p>
<p><a href="http://msdn.microsoft.com/library/en-us/dnaspp/html/aspnetscal.asp" rel="nofollow">http://msdn.microsoft.com/library/en-us/dnaspp/html/aspnetscal.asp</a> is a good read for ASP.NET scalability.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
