<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Professional PHP &#187; php-scalability</title>
	<atom:link href="http://www.procata.com/blog/archives/tag/php-scalability/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.procata.com/blog</link>
	<description>PHP Programming, Web Development, PHP Advocacy and PHP Best Practices.</description>
	<lastBuildDate>Fri, 10 Dec 2010 17:23:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Friendster wrapup: does MySQL scale</title>
		<link>http://www.procata.com/blog/archives/2004/07/14/friendster-wrapup-does-mysql-scale/</link>
		<comments>http://www.procata.com/blog/archives/2004/07/14/friendster-wrapup-does-mysql-scale/#comments</comments>
		<pubDate>Wed, 14 Jul 2004 19:50:41 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[php-scalability]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/archives/2004/07/14/friendster-wrapup-does-mysql-scale/</guid>
		<description><![CDATA[Here is a wrap up of some links and information from the friendster PHP conversion of a couple weeks ago.
First, it appears performance really was a major problem for friendster.  Friendster Quickly Gathering Foes:
The key issues behind the Friendster abandonment trend, according to users, are the service&#8217;s inability to do anything about its habitual [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a wrap up of some links and information from the friendster PHP conversion of a couple weeks ago.</p>
<p>First, it appears performance really was a major problem for friendster.  <a href="http://www.wired.com/news/culture/0,1284,61150,00.html">Friendster Quickly Gathering Foes</a>:</p>
<blockquote><p>The key issues behind the Friendster abandonment trend, according to users, are the service&#8217;s inability to do anything about its habitual server lag problems, and its growing reputation for heavy-handed moral policies and unilateral decisions it makes on behalf of its members.
</p></blockquote>
<p>Performance problems show up in <a href="http://philip.greenspun.com/teaching/6171/2003-fall/friendster">this usuability study</a> of Friendster.  <a href="http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&#038;ixPost=108070">more discussion of friendster performance</a>.  This quote from <a href="http://www.wired.com/wired/archive/12.06/dating_pr.html">Cracking the code to Romance</a> seems to show they are aware of the issue.</p>
<blockquote><p>
Notified of the security holes Moore and Chisholm exploit, Friendster rep Lisa Kopp insists, &#8220;We have a policy that we are not being hacked.&#8221; When I explain that, policy or no, they are being hacked, she says, &#8220;Security isn&#8217;t a priority for us. We&#8217;re mostly focused on making the site go faster.&#8221;
</p></blockquote>
<p>While the consensus seems to be that you can write scalable applications in either Java or PHP, MySQL is another major part of Friendster&#8217;s architecture.  <a href="http://socialsoftware.weblogsinc.com/entry/3341461825857782/">Why Friendster is so slow</a> makes an educated guess on the cause of Friendsters performance problems, laying the blame on an inappropriate use of MySQL.  I wonder how much of this is educated and how much of this is guess.</p>
<p>Philip Greenspun suggests that Friendster &#8220;flush MySQL and replace with Oracle 10g.&#8221;</p>
<p>It would seem that the friendster folks have a mysql support contract and <a href="http://software.newsforge.com/software/04/04/15/0210236.shtml?tid=132&#038;tid=72&#038;tid=82">Attend MySQL conferences</a>:</p>
<blockquote><p>between sessions, three young men from Friendster are chatting with a neat-looking person in a MySQL shirt, who introduces them to another neat-looking person in a MySQL shirt and says, &#8220;he&#8217;ll be your primary support contact.&#8221;
</p></blockquote>
<p>If the natural architecture of PHP is to push scalability issues out of the language and into the database, the Friendster case seems to raise the question, does MySQL scale?</p>
<p>I would like to see more official information out of Friendster regarding this case.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2004/07/14/friendster-wrapup-does-mysql-scale/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>The PHP scalability saga continues</title>
		<link>http://www.procata.com/blog/archives/2004/07/01/the-php-scalability-saga-continues/</link>
		<comments>http://www.procata.com/blog/archives/2004/07/01/the-php-scalability-saga-continues/#comments</comments>
		<pubDate>Fri, 02 Jul 2004 02:15:32 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php-scalability]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/archives/2004/07/01/the-php-scalability-saga-continues/</guid>
		<description><![CDATA[Troutgirl wieghs in with some more information on the Friendster PHP conversion:
1) We had not one but TWO guys here who had written bestselling JSP books. Not that this necessarily means they&#8217;re great Java devs, but I actually think our guys were as good as any team.
2) We tried rewriting the site in Java twice, [...]]]></description>
			<content:encoded><![CDATA[<p>Troutgirl wieghs in with some more information on the Friendster PHP conversion:</p>
<blockquote><p>1) We had not one but TWO guys here who had written bestselling JSP books. Not that this necessarily means they&#8217;re great Java devs, but I actually think our guys were as good as any team.</p>
<p>2) We tried rewriting the site in Java twice, using MVC and all available best practices. It actually got slower. Anyway, what does MVC have to do with speed or scalability? I thought it was a design cleanliness and maintainability thing.</p>
<p>3) We tried different app servers, different JVMs, different machines.</p>
<p>4) Anything that money could do, it did.</p></blockquote>
<p>George Schlossnagle has the best coverage of the topic, saying <a href="http://www.schlossnagle.org/~george/blog/archives/269_Why_PHP_Scales__A_Cranky_Snarky_Answer.html">It&#8217;s the App code, stupid</a>  (As an Adult Swim fan, I have to appreciate the Big O reference):</p>
<blockquote><p>My personal bias against java is that many Java programmers seem to be thread-crazy, and as has been noted, humans just aren&#8217;t smart enough to program threads.</p></blockquote>
<p>I once lost a job by saying &#8220;Threads are dangerous&#8221; at a job interview.  Everything was going well, until they asked me what I thought about threading.   (this was a business application)  Obviously, my opinion didn&#8217;t agree with this companies vision for their software.  Ironically, I was being interviewed to help them fix their problems with frequent unrepeatable lockups and GPFs.  They did not see the connection.</p>
<p>One advantage of PHP is that it simplifies your life by not bothering you with threading, just as it doesn&#8217;t bother you with memory management.  That doesn&#8217;t mean that concurrency issues go away, any multi user application will have them, it just means that they are made explicit at the application level.</p>
<p>George Schlossnagle:</p>
<blockquote><p>Share nothing&#8217; (which if you don&#8217;t want to click on the link basically means not performing much inter-process or inter-thread data sharing or pooling) is not something unique to PHP. In fact, I&#8217;m quite sure that you can implement it in Java as well. The problem is that Java gives you a number of powerful facilities with which to shoot yourself in the foot</p></blockquote>
<p><a href="http://www-106.ibm.com/developerworks/library/j-jtp01274.html">Here</a> is a java performance article that recommends against object pooling.  The <a href="http://www.opensymphony.com/webwork/wikidocs/Comparison%20to%20Struts.html">struts vs. webwork</a> comparison has an interesting take on this:</p>
<blockquote><p>Struts Actions must be thread-safe because there will only be one instance to handle all requests. This places restrictions on what can be done with Struts Actions as any resources held must be thread-safe or access to them must be synchronized.</p>
<p>WebWork Actions are instantiated for each request, so there are no thread-safety issues. In practice, Servlet containers generate many throw-away objects per request, and one more Object does not prove to be a problem for performance or garbage collection.
</p></blockquote>
<p>It seems like the Java culture, if not the java language seems to encourage premature optimization in the form of creating pools of shared information.</p>
<p>John Lim expresses some skepticism about the inherent scalability properties of any language, claiming <a href="http://phplens.com/phpeverywhere/?q=node/view/55">its the developer skill not the language</a>.</p>
<p>I think I&#8217;ll end this post with heresy. The field of web development seems to have a mental model of application development forged from the dot-com boom era.  We operate with the vision that our applications are going to experience exponential usage growth. Perhaps this leads to an unhealthy focus on scalability in web applications versus other requirements.  Perhaps this also leads us to employ optimizations prematurely before we can even understand their impact or even have a need for them.  Perhaps these premature optimizations even hurt scalability and performance and needlessly complicate our applications.    </p>
<p>Perhaps the Java Culture is more infected with &#8220;dot-com-itis&#8221; than the php culture?</p>
<p>Scalability &#8211; <a href="http://c2.com/cgi/wiki?YouArentGonnaNeedIt">YAGNI</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2004/07/01/the-php-scalability-saga-continues/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>PHP Scalability and Performance</title>
		<link>http://www.procata.com/blog/archives/2004/06/30/php-scalability-and-perforamnce/</link>
		<comments>http://www.procata.com/blog/archives/2004/06/30/php-scalability-and-perforamnce/#comments</comments>
		<pubDate>Wed, 30 Jun 2004 18:19:55 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[performance-optimization]]></category>
		<category><![CDATA[php-scalability]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/archives/2004/06/30/php-scalability-and-perforamnce/</guid>
		<description><![CDATA[Troutgirl seems to have hit a hot button in her blog about Friendstar switching from JSP to PHP.  This story has been picked up by a variety of bloggers. I originally saw it from Dynamically typed. Russell Beattie Notebook has some good discussion on the topic.  Joe Grossberg talks about a redirection problems [...]]]></description>
			<content:encoded><![CDATA[<p>Troutgirl seems to have hit a hot button in her blog about <a href="http://troutgirl.com/blog/index.php?/archives/22_Friendster_goes_PHP.html">Friendstar switching from JSP to PHP</a>.  This story has been picked up by a variety of bloggers. I originally saw it from <a href="http://www.sitepoint.com/blog-post-view.php?id=178339">Dynamically typed</a>. <a href="http://www.russellbeattie.com/notebook/1007901.html">Russell Beattie Notebook</a> has some good discussion on the topic.  <a href="http://www.joegrossberg.com/archives/001566.html">Joe Grossberg</a> talks about a redirection problems with the switch over and adds a link to <a href="http://www.scottandrew.com/delimiter/2004_06.html#001043">Scott Andrew</a> who talks about standards compliance of the new design.  The consensus is that the new version is faster.</p>
<p>I hope that more information will come out about this.  It would be nice to have another large scale case study alongside the Yahoo talks: <a href="http://talks.php.net/show/lt2004-lamp">Large Scale PHP</a>, <a href="http://public.yahoo.com/~radwin/talks/one-year-of-php-oscon2003.htm">One year of PHP at Yahoo</a>, and <a href="http://public.yahoo.com/~radwin/talks/yahoo-phpcon2002.htm">Making the case for PHP at Yahoo</a>.</p>
<p>Another interesting case study is the <a href="http://ian.gaiaonline.com/forum/index.php">Gaia Online</a> discussion board.  One of the largest forums on the net, on a recent check, it claims to have 70 million messages online with roughly 9,000 simultaneous users, and 750,000 registered users.  The <a href="http://www.sitepoint.com/forums/showthread.php?t=170684&#038;highlight=phpbb">sitepoint post</a> that brought this to my attention claims they are getting over 700,000 new posts per day.  All of this running on a modified version of open source <a href="http://www.phpbb.com/">phpBB</a>.  <a href="http://www.big-boards.com/int.php?n=60">Here is an interview</a> with the board owner and founder.</p>
<p>The thread that talks about the <a href="http://www.phpbb.com/phpBB/viewtopic.php?t=135383">modifications to phpBB</a> to support Gaia Online&#8217;s volume is very interesting.  It focuses mostly on query optimization.  Not surprising in light of the previous discussion on PHP&#8217;s shared nothing architecture.  If PHP encourages moving concurrency management to the database, then application scalability is going to become a matter of database scalability.</p>
<p>Switching from scalability to performance, John Lim talks about his experiences <a href="http://phplens.com/phpeverywhere/?q=node/view/52">optimizing PHP code using xdebug</a>.  His article makes me want to check out xdebug, but I have too much on my plate right now to even risk getting near my PHP configuration.  I am hoping that I will have time to do this before the upcoming WACT release.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2004/06/30/php-scalability-and-perforamnce/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
	</channel>
</rss>

