<?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>Performance Within Reach &#187; Architecture</title>
	<atom:link href="http://unmanageability.com/index.php/category/architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://unmanageability.com</link>
	<description>Performance Within Reach</description>
	<lastBuildDate>Sat, 17 Jul 2010 19:19:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Scalability chez Wall Street vs. chez Web2.0s</title>
		<link>http://unmanageability.com/index.php/2007/10/04/scalabity-chez-wall-street-vs-chez-web20s/</link>
		<comments>http://unmanageability.com/index.php/2007/10/04/scalabity-chez-wall-street-vs-chez-web20s/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 03:53:40 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Availability]]></category>
		<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Reliability]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[map reduce]]></category>

		<guid isPermaLink="false">http://blog.codeperformance.com/index.php/2007/10/04/scalabity-chez-wall-street-vs-chez-web20s/</guid>
		<description><![CDATA[Nati Shalom&#8217;s Blog: Why most large-scale Web sites are not written in Java
&#8230;similar solutions for addressing the scalability challenges:
On the Data Tier we see the following:
1. Adding a caching layer to take advantage of memory resources availability and reduce I/O overhead
2. Moving from a database-centric approach to partitioning, aka shards
On the Business Logic Tier:
3. Adding parallelization semantics to the application tier (e.g., MapReduce)
4. Moving to scale-out application models to achieve linear scalability
5. Moving away from the classic two-phase commit and ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://natishalom.typepad.com/nati_shaloms_blog/2007/10/why-most-scalab.html">Nati Shalom&#8217;s Blog: Why most large-scale Web sites are not written in Java</a></p>
<blockquote><p>&#8230;similar solutions for addressing the scalability challenges:</p>
<p>On the Data Tier we see the following:</p>
<p>1. Adding a caching layer to take advantage of memory resources availability and reduce I/O overhead</p>
<p>2. Moving from a database-centric approach to partitioning, aka <a href="http://en.wikipedia.org/wiki/Shard">shards</a></p>
<p>On the Business Logic Tier:</p>
<p>3. Adding parallelization semantics to the application tier (e.g., MapReduce)</p>
<p>4. Moving to scale-out application models to achieve linear scalability</p>
<p>5. Moving away from the classic two-phase commit and XA for transaction processing  (See: <a href="http://natishalom.typepad.com/nati_shaloms_blog/2007/08/lessons-from-am.html">Lessons from Pat Helland: Life Beyond Distributed Transactions</a>)</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2007/10/04/scalabity-chez-wall-street-vs-chez-web20s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Attributes of a Scalable (data intensive) Application</title>
		<link>http://unmanageability.com/index.php/2007/10/03/attributes-of-a-scalable-data-intensive-application-2/</link>
		<comments>http://unmanageability.com/index.php/2007/10/03/attributes-of-a-scalable-data-intensive-application-2/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 20:05:52 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.codeperformance.com/index.php/2007/11/03/attributes-of-a-scalable-data-intensive-application-2/</guid>
		<description><![CDATA[Cary Millsap, former VP of Oracle&#8217;s System Performance Group and the cofounder of Hotsos.
&#8230;doing things an application doesn&#8217;t need to do is exactly what makes it slow, unscalable, andâ€”in the endâ€”economically inefficient.

Don&#8217;t run reports that nobody reads.
Don&#8217;t generate more output than you need.
Don&#8217;t execute a business process any more often than the business needs.
Don&#8217;t write SQL that visits more blocks in the database buffer cache than necessary.
Don&#8217;t update a column&#8217;s value to the same value it already has.
Push data when ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oreillynet.com/pub/au/1184?x-t=book.view">Cary Millsap</a>, former VP of Oracle&#8217;s System Performance Group and the cofounder of Hotsos.</p>
<blockquote><p>&#8230;doing things an application doesn&#8217;t need to do is exactly what makes it slow, unscalable, andâ€”in the endâ€”economically inefficient.</p>
<ol>
<li>Don&#8217;t run reports that nobody reads.</li>
<li>Don&#8217;t generate more output than you need.</li>
<li>Don&#8217;t execute a business process any more often than the business needs.</li>
<li>Don&#8217;t write SQL that visits more blocks in the database buffer cache than necessary.</li>
<li>Don&#8217;t update a column&#8217;s value to the same value it already has.</li>
<li>Push data when it&#8217;s ready instead of forcing applications to poll to see if there&#8217;s any work to do.</li>
<li>Don&#8217;t generate redo and undo when you don&#8217;t need the recoverability benefits provided by generating it.</li>
<li>Don&#8217;t parse any SQL statement that you could have pre-parsed and shared.</li>
<li>Don&#8217;t process DML one row at a time; use array fetches, bulk inserts, etc.</li>
<li>Don&#8217;t lock data any more often or for any longer than is absolutely necessary.</li>
</ol>
<p>While I won&#8217;t pretend that the list is complete, I do believe that it should help you get into the spirit of understanding what an appropriately lean application should look like.</p></blockquote>
<p>Technorati Tags: <a class="performancingtags" rel="tag" href="http://technorati.com/tag/Oracle">Oracle</a></p>
<p class="poweredbyperformancing">
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2007/10/03/attributes-of-a-scalable-data-intensive-application-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s 2006, CMP vs. BMP?</title>
		<link>http://unmanageability.com/index.php/2006/06/12/its-2006-cmp-vs-bmp/</link>
		<comments>http://unmanageability.com/index.php/2006/06/12/its-2006-cmp-vs-bmp/#comments</comments>
		<pubDate>Mon, 12 Jun 2006 09:43:48 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[BMP]]></category>
		<category><![CDATA[CMP]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[JSE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[ejb]]></category>

		<guid isPermaLink="false">http://codeperformance.com/index.php/2006/06/12/its-2006-cmp-vs-bmp/</guid>
		<description><![CDATA[Musings on software Â» Why choose cmp
&#8230;consider the strengths in performance and reduction in development that can be added by leveraging a high-quality CMP container as opposed to developing data access logic using a BMP architecture. I guarantee youâ€™ll be happy with the results.
Excellent post! I couldn&#8217;t agree more, the debate mirrors the one around the merits and usefulness of automatic garbage collection. Sure you can manage memory yourself, but how much are you willing to pay for that vs. ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://info-bus.com/blog/2006/06/02/why-choose-cmp/">Musings on software Â» Why choose cmp</a></p>
<blockquote><p>&#8230;consider the strengths in performance and reduction in development that can be added by leveraging a high-quality CMP container as opposed to developing data access logic using a BMP architecture. I guarantee youâ€™ll be happy with the results.</p></blockquote>
<p>Excellent post! I couldn&#8217;t agree more, the debate mirrors the one around the merits and usefulness of automatic garbage collection. Sure you can manage memory yourself, but how much are you willing to pay for that vs. the performance hit you&#8217;d take in a garbage collected environment.</p>
<p>One issue that comes up often in this debate is the quality of the underlying SQL generated by CMP containers. The problem stems from the fact that one has very little, if any, opportunity to tune the generated SQL, and that it&#8217;s usually an all or nothing proposition. Hibernate, and to some extent Toplink, have attempted to address this but there&#8217;s still a long way to go for CMP containers to bridge this gap.</p>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2006/06/12/its-2006-cmp-vs-bmp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Intel Developer Forum &#8211; Keynote Webcasts</title>
		<link>http://unmanageability.com/index.php/2006/03/28/intel-developer-forum-keynote-webcasts/</link>
		<comments>http://unmanageability.com/index.php/2006/03/28/intel-developer-forum-keynote-webcasts/#comments</comments>
		<pubDate>Tue, 28 Mar 2006 09:45:37 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[x86]]></category>

		<guid isPermaLink="false">http://codeperformance.com/index.php/2006/03/28/intel-developer-forum-keynote-webcasts/</guid>
		<description><![CDATA[Intel Developer Forum &#8211; Keynote Webcasts
Intel Developer Forum

Steve Pawlowski and Ofri Wechsler: IntelÂ® Coreâ„¢ microarchitecture and Usages
Paolo A. Gargini: Intel&#8217;s Silicon R&#038;D Pipeline
The keynotes of Pat P. Gelsinger (Digital Enterprise), Sean M. Maloney (Mobility), Donald J. MacDonald (The Digital Home) and Justin R. Rattner (Opening Keynote)

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.intel.com/idf/us/spring2006/webcast.htm">Intel Developer Forum &#8211; Keynote Webcasts</a><br />
Intel Developer Forum</p>
<ul>
<li>Steve Pawlowski and Ofri Wechsler: IntelÂ® Coreâ„¢ microarchitecture and Usages</li>
<li>Paolo A. Gargini: Intel&#8217;s Silicon R&#038;D Pipeline</li>
<li>The keynotes of Pat P. Gelsinger (Digital Enterprise), Sean M. Maloney (Mobility), Donald J. MacDonald (The Digital Home) and Justin R. Rattner (Opening Keynote)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2006/03/28/intel-developer-forum-keynote-webcasts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xerox Parc hosts the &#8220;Multicore Computer Forum Series&#8221; (audio &amp; video archives available)</title>
		<link>http://unmanageability.com/index.php/2006/03/28/xerox-parc-hosts-the-multicore-computer-forum-series-audio-video-archive-available/</link>
		<comments>http://unmanageability.com/index.php/2006/03/28/xerox-parc-hosts-the-multicore-computer-forum-series-audio-video-archive-available/#comments</comments>
		<pubDate>Tue, 28 Mar 2006 08:25:54 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Power]]></category>
		<category><![CDATA[Processor]]></category>
		<category><![CDATA[Reliability]]></category>
		<category><![CDATA[SPARC]]></category>
		<category><![CDATA[Scalability]]></category>

		<guid isPermaLink="false">http://codeperformance.com/index.php/2006/03/28/xerox-parc-hosts-the-multicore-computer-forum-series-audio-video-archive-available/</guid>
		<description><![CDATA[The Multicore Computer Forum Series &#8220; explor[es] the benefits and challenges of Multicore computing.&#8221;


High Performance Throughput Computing, Dr. Marc Tremblay, Sun Fellow, Vice President, and Chief Architect, Sun&#8217;s Scalable Systems Group
Software and the Concurrency Revolution, Herb Sutter, Microsoft
Architecture Support for Parallel Programming, Dr. Kunle Olukotun, Associate Professor, Stanford University

]]></description>
			<content:encoded><![CDATA[<p>The Multicore Computer Forum Series &#8220;<em> explor[es] the benefits and challenges of Multicore computing.&#8221;<br />
</em></p>
<ol>
<li><a href="http://www.parc.com/cms/get_article.php?id=530">High Performance Throughput Computing</a>, Dr. Marc Tremblay, Sun Fellow, Vice President, and Chief Architect, Sun&#8217;s Scalable Systems Group</li>
<li><a href="http://www.parc.com/cms/get_article.php?id=533">Software and the Concurrency Revolution</a>, Herb Sutter, Microsoft</li>
<li><a href="http://www.parc.com/cms/get_article.php?id=538">Architecture Support for Parallel Programming</a>, Dr. Kunle Olukotun, Associate Professor, Stanford University</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2006/03/28/xerox-parc-hosts-the-multicore-computer-forum-series-audio-video-archive-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>how is scalability achieved?</title>
		<link>http://unmanageability.com/index.php/2006/03/20/how-is-scalability-achieved/</link>
		<comments>http://unmanageability.com/index.php/2006/03/20/how-is-scalability-achieved/#comments</comments>
		<pubDate>Mon, 20 Mar 2006 07:50:18 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Reliability]]></category>
		<category><![CDATA[Scalability]]></category>

		<guid isPermaLink="false">http://codeperformance.com/index.php/2006/03/20/how-is-scalability-achieved/</guid>
		<description><![CDATA[Sun Sensible
Uniform Utilization of hardware resources ensures scalability:

Uniform Hardware Utilization Through Time (All program Phases use the hardware uniformly)
Uniform Utilization of Hardware Threads (All Hardware Threads are Busy)
Uniform Use of Software Threads (There are enough threads)
Uniform Cache Set Use in the Cache Hierarchy (No cache sets are over subscribed)
Uniform Physical Memory Use (All memory boards used evenly)
Uniform Virtual Memory Use (No Hot Locks)


]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.sun.com/roller/page/nk/">Sun Sensible</a></p>
<blockquote><p>Uniform Utilization of hardware resources ensures scalability:</p>
<ul>
<li>Uniform Hardware Utilization Through Time (All program Phases use the hardware uniformly)</li>
<li>Uniform Utilization of Hardware Threads (All Hardware Threads are Busy)</li>
<li>Uniform Use of Software Threads (There are enough threads)</li>
<li>Uniform Cache Set Use in the Cache Hierarchy (No cache sets are over subscribed)</li>
<li>Uniform Physical Memory Use (All memory boards used evenly)</li>
<li>Uniform Virtual Memory Use (No Hot Locks)</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2006/03/20/how-is-scalability-achieved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Performance Testing</title>
		<link>http://unmanageability.com/index.php/2006/02/21/continous-performance-testing/</link>
		<comments>http://unmanageability.com/index.php/2006/02/21/continous-performance-testing/#comments</comments>
		<pubDate>Tue, 21 Feb 2006 06:14:13 +0000</pubDate>
		<dc:creator>coder</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Best practices]]></category>
		<category><![CDATA[CPT]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://codeperformance.com/index.php/2006/02/21/continous-performance-testing/</guid>
		<description><![CDATA[ACM Queue &#8211; High-Performance Team &#8211; Does your development team have a high-performance mind-set?
If you want to keep producing high-performance software, you must be able to run reproducible, comparable performance tests. Ideally, youâ€™ll have dedicated, standard hardware on which to run these tests; this should be representative of, if not directly comparable with, what your customers run in production. Youâ€™ll run a basic set of performance tests as part of your release cycle, plus more comprehensive benchmarks as required.So what ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://acmqueue.com/modules.php?name=Content&#038;pa=showpage&#038;pid=365&#038;page=2">ACM Queue &#8211; High-Performance Team &#8211; Does your development team have a high-performance mind-set?</a></p>
<blockquote><p>If you want to keep producing high-performance software, you must be able to run reproducible, comparable performance tests. Ideally, youâ€™ll have dedicated, standard hardware on which to run these tests; this should be representative of, if not directly comparable with, what your customers run in production. Youâ€™ll run a basic set of performance tests as part of your release cycle, plus more comprehensive benchmarks as required.So what should you test? What is important? You need to find a balance between the time it takes to run the tests and the information they actually give you. A large set of complex tests can tell you a huge amount about your application and even help you track down areas that have caused performance degradation, but that might be too time consuming to run for every release. Simpler tests that can run automatically in less than an hour would be better. Furthermore, your tests need to measure something using public interfaces that are stable between releases; otherwise, maintaining the tests will become an overhead.<br />
Of course, the tests must exercise the operations and code paths that are important to your customers. They must measure the throughput of the common transactions or queries, based on the types of datasets and loadings seen on production systems. If practical, a captured production workload that can be rerun on demand would be ideal.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2006/02/21/continous-performance-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 10 things that you must monitor on any server to look for performance and/or scalability issues</title>
		<link>http://unmanageability.com/index.php/2006/02/10/top-10-things-that-you-must-monitor-on-any-server-to-look-for-performance-andor-scalability-issues/</link>
		<comments>http://unmanageability.com/index.php/2006/02/10/top-10-things-that-you-must-monitor-on-any-server-to-look-for-performance-andor-scalability-issues/#comments</comments>
		<pubDate>Thu, 09 Feb 2006 20:57:36 +0000</pubDate>
		<dc:creator>coder</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Patterns]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Processor]]></category>
		<category><![CDATA[Profiling]]></category>
		<category><![CDATA[Reliability]]></category>
		<category><![CDATA[Scalability]]></category>

		<guid isPermaLink="false">http://codeperformance.com/index.php/2006/02/10/top-10-things-that-you-must-monitor-on-any-server-to-look-for-performance-andor-scalability-issues/</guid>
		<description><![CDATA[Sun Dialogue Programs
(Q): If you have to pick top 10 things that you must monitor on any server to look for performance and/or scalability issues&#8230;what would they be?
Richard McDougall (A): Off the top of my head, in no particular order:

CPU: Check idle time and run queue length.
If there&#8217;s a CPU bottleneck, check if it&#8217;s an application or kernel CPU utilization issue with mpstat: high percentages of users indicate it&#8217;s an application issue. High sys may point to high network load ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sun.com/emrkt/campaign_docs/ntee/archive/SEE_110205_ScaleMyApps.html?feed=RSS">Sun Dialogue Programs</a></p>
<blockquote><p><strong>(Q):</strong> If you have to pick top 10 things that you must monitor on any server to look for performance and/or scalability issues&#8230;what would they be?<br />
<strong><a target="_blank" title="Richard McDougall : Solaris Internals" href="http://solarisinternals.com">Richard McDougall</a> (A):</strong> Off the top of my head, in no particular order:</p>
<ol>
<li>CPU: Check idle time and run queue length.</li>
<li>If there&#8217;s a CPU bottleneck, check if it&#8217;s an application or kernel CPU utilization issue with mpstat: high percentages of users indicate it&#8217;s an application issue. High sys may point to high network load or lock contention.</li>
<li>Memory: Check MDBs memstat to ensure there is sufficient free memory</li>
<li>Network: Check that networks are not overloaded by observing the bytes xfered against the availability bandwidth per link.</li>
<li>CPU for network: check if any CPUs are 100% busy servicing network interrupts. CPUs at 100% in mpstat, or intrstat are possible candidates.</li>
<li>File system latency: check the application visible latency with DTrace at the system call level (perhaps fsstat, iosnoop, or an aggregation around system calls).</li>
<li>Storage latency: check disk latency with iostat</li>
<li>Application level lock contention: check application level locks are now visible with plockstat</li>
<li>Kernel level locks: Check for hot locks with lockstat.</li>
<li>Check MMU activity on SPARC using trapstat. Sometimes an application may be reporting as running 100% in user mode, but may actually be spending a significant amount of time in kernel mode servicing TLB misses. Trapstat will show the % of time spent using TLB misses. If a significant amount of time (&gt;10%) is evident, then large MMU pages may help.</li>
</ol>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2006/02/10/top-10-things-that-you-must-monitor-on-any-server-to-look-for-performance-andor-scalability-issues/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
