<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">PatHelland's WebLog</title><subtitle type="html" /><id>http://blogs.msdn.com/pathelland/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/pathelland/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-08-10T11:28:00Z</updated><entry><title>Trip Report -- HPTS (High Performance Transaction Systems) Workshop -- Part 1 of the Trip Report</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2009/11/02/trip-report-hpts-high-performance-transaction-systems-workshop-part-1-of-the-trip-report.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2009/11/02/trip-report-hpts-high-performance-transaction-systems-workshop-part-1-of-the-trip-report.aspx</id><published>2009-11-02T17:35:00Z</published><updated>2009-11-02T17:35:00Z</updated><content type="html">&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Trip Report – HPTS (High Performance Transaction Systems) Workshop – Oct 25&lt;SUP&gt;th&lt;/SUP&gt;-28&lt;SUP&gt;th&lt;/SUP&gt;, Asilomar, Pacific Grove, CA.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(&lt;/FONT&gt;&lt;A href="http://www.hpts.ws/"&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;www.hpts.ws&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;This is Part 1 of the trip report…&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I am chiseling my way through my notes and expect this to take a couple more blog entries before I can describe everything I plan to cover.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Believe it or not, this 11 page “Part 1” is only taking us through Monday morning – there’s Monday afternoon, all Tuesday, and Wednesday morning yet to cover!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 16pt; mso-bidi-font-size: 11.0pt"&gt;&lt;FONT face=Calibri&gt;Overview:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;HPTS was founded by Jim Gray, Dieter Gawlick, Andreas Reuter, and some other industry luminaries in 1985.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is a workshop designed to bring together practitioners and academics working in super large, scalable, high throughput systems.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There is a lot of overlap between this community and the folks doing DBMS systems.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In the early days, the biggest challenges included getting 1000 transactions per second through a mainframe.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;At the time, that felt like getting a man to land on the moon and come back safely.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Now, this includes huge web based sites like Amazon, eBay, Google, and Bing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Our area of interest also includes integrating massively complex heterogeneous Enterprise and Internet (B2B) systems.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Of course, we are fascinated with hardware trends, networking, and all sorts of geeky stuff.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I first attended HPTS in 1985.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It was a magic opportunity to be with legends in the industry.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Gene Amdahl drove up in his Rolls Royce and parked next to my beat up old van.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Mike Blasgen(System R), Mike Stonebraker, Bruce Lindsay, Mohan, Andy Heller, Dieter Gawlick, Hector Garcia-Molina, Irv Traiger, Phil Bernstein, Jim Gray, and many more folks who had become well known to me through their papers were there in the flesh and treating me (a 29 year old punk) with kindness and respect.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It was a magical 3 day gathering.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Let me explain the Asilomar Conference Center (&lt;/FONT&gt;&lt;A href="http://www.visitasilomar.com/"&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;www.visitasilomar.com&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Asilomar sits right by the Pacific Ocean between Pebble Beach and Monterey in the Pine Trees and includes dunes leading right to the beach.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;It was built as a YWCA around 1910 or so and contains a number of beautiful historic buildings in the arts and crafts style built by architect Julia Morgan.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In the 1950s, it was sold to the state of California which has operated it as a conference center (and built more buildings in the 1960s).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The rooms are rustic (no TVs or phones – crappy mattresses), the food is served in a large dining hall when the bell rings on the roof and it has a magic feel. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;It is normal to walk out of your room, hear the surf, and see deer walking around.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I absolutely love the evenings by the real wood fireplaces. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In 1985, Gray decided we could all go cheap and lined us up to sleep four in a room.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I shared a room with Dieter Gawlick (inventor of IMS/FastPath among other things), Hector Garcia-Molina, and Theo Haerderer (a wonderful professor from Germany).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;After the first night, Hector informed us we ALL snored too much and moved to stay in a hotel down the street.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For the next 8 or 10 gatherings, we were two to a room but now most of us pay a bit more to have a private room.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I’ve attended HPTS every two years (for three days) since 1985.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I was program and general chair in 1989 and general chair in 2007.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since Jim Gray’s disappearance, I’ve assumed the role of local arrangements chair and “godfather” – kinda’ watching out for the whole workshop.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This year, James Hamilton (now of Amazon) was general chair and Margo Seltzer (of Harvard) was the program chair.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We had a wonderful (but exhausting) three days and I will tell you about them soon.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;One of the traditions is that the folks leading HPTS wander around during the first two days trying to figure out who gets suckered into doing the work as the next workshop happens two years later.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I am thrilled to report that Mohan (from IBM) will be the general chair in 2011 and Mike Carey (now of UC Irvine) will be the program chair.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I will remain as local arrangements chair and “godfather”.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, every HPTS starts with Sunday dinner and a casual beer/wine afterwards.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Monday is all day presentations and after dinner we have poster sessions (volunteer 10 minute talks – we had 15 this year).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Tuesday is all day presentations and this time we had a 90+ minute panel after dinner.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Finally, we have sessions Wednesday morning and adjourn after lunch.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is a long, exhausting, and exhilarating 3 to 4 days.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Of course, the most important part of the workshop is the breaks and the opportunity to talk with people working in the same area as you are working.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In addition to the grizzled old luminaries, this year we went out of our way to get more graduate students and invited 16 of the brightest and best from Berkeley, Stanford, MIT, Harvard, Brown, and more.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;I spent each of the three evenings staying up late talking by the fire with these wonderful young folks (and some other diehard old farts).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;As I type this the following weekend, I am still tired from the sleep shortage!&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-element: para-border-div; mso-border-bottom-alt: solid windowtext .75pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 10pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-bottom-alt: solid windowtext .75pt; mso-padding-alt: 0in 0in 1.0pt 0in" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, let’s get to the content:&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-VARIANT: small-caps; FONT-SIZE: 18pt; mso-bidi-font-size: 11.0pt"&gt;&lt;FONT face=Calibri&gt;Session 1) The New Memory Hierarchy – &lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Session Chair: David Cheriton (Stanford)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Steve Kleiman – Chief Scientist at NetApp:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;“Flash on Compute Servers”&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, Steve Kleiman is the Chief Scientist at NetApp so you would expect him to be focused on network attached storage and we were not disappointed.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Steve started with a discussion of hardware trends (not all of which I was able to capture in my notes).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;He observed that with multi-core and VMs, more bandwidth (BW) and IOs per Second (IOPS) are needed for each node.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Also, as a trend, Steve pointed out that flash memory has more than 5X the IOPS and less than 100 microseconds access time.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The original case for network storage lies around the benefits of aggregating disk which include more random IOPS and bandwidth as well as the management simplicity of concentrating data into a centralized place.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It has been the case that a single application per host has somewhat limited ability to consume bandwidth.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Considering flash in a networked storage environment, it does not have the same benefits of sharing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since there are enough IOPS in a flash drive to placate most apps, the equation changes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Is network storage fast when the network latency is noticeable compared to flash?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We can do 5 SSDs to get 40,000 IOPS but will the latency be a problem?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;We will see flash on compute servers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Servers can already accommodate flash and it is cheap enough with 250GB &amp;lt; 10% of the server cost.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;U&gt;A new tier in the storage hierarchy&lt;/U&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Steve argues we will see storage split into two tiers: the &lt;U&gt;IOPS tier&lt;/U&gt; and the &lt;U&gt;capacity tier&lt;/U&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The IOPS-Tier will offer the best $/IOPS with low latency and will have sufficient capacity for the active data in most typical enterprise systems.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It will be the new “primary storage”.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;The Capacity-Tier will offer the best $/GB – Deduplication, compression, and good serial performance.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Steve then outlined three broad categories of Host-Based Flash usage.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;DAS (which I think means “Direct Access Storage but my notes failed me), Primary Storage Service, and Cache.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;U&gt;Host-Base Flash: DAS&lt;/U&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Single point of failure and so you would use normal backup or application based replication like Exchange or Oracle).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can have boot files, VM, temp files.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;U&gt;Host-Based Flash: Primary Storage Service&lt;/U&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;File or Block.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Requires mirroring or RAID to peers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Allows capacity sharing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Steve believes it is likely that Microsoft and VMWare are likely to compete here – the integration of this is complex.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Making reliable primary storage is hard and this may impact the roles of folks in IT.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;U&gt;Host-Based Flash: Cache&lt;/U&gt; –File or block.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This will be a writethrough cache.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you do a write-back you will occasionally lose stuff.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Using a cache can allow for a centralized data management (in a remote network storage server).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This can help with keeping the current IT storage management roles by providing an automatic “tiering”. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, data management spans the IOPS tier and the Capacity tier.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You need to have automated data movement and global access.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is impractical to have manual placement at huge scale.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is going to be important for us to have a technology independent language to specify the desired properties for the data.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Say what properties you want and not how to get them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;New SLO (Service Level Objectives) for Max Latency, Bandwidth, Availability, etc.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In summary, the new host-based flash is the new IOPS-Tier.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It will replace high-performance primary storage in the cloud.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This IOPS-Tier s is not going to be economical as a secondary or as archival since the $/GB is higher than spinning media.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;The Capacity Tier will be implemented as network storage.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is optimized for the best $/GB.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Data management between these two tiers will be important.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;There was a lot of discussion around the SLO (Service Level Objectives).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Steve indicated that their vision was not super-flexible set of knobs but more a small set of options for defining the data characteristics.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Margo offered that one aspect of what was important was the “value” of different parts of data which can, in turn, tell the system how hard to work to make the data remain available. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Someone asked if there was any performance analysis for 3-tier storage (memory, IOPS-Tier, Capacity-Tier) over more traditional 2-tier storage (Memory and Disk).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Steve answered that there had not been an explicit performance analysis.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Stonebraker observed that enterprises seem to like NAS/SAN but that the Cloud guys are using direct attached storage.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Are the forward looking guys walking from NAS/SAN?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Steve replied there are people very interested in NAS/SAN because it gives them a way to control the data and make servers stateless.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Adding in the IOPS-Tier is a simple extension.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;This was a fascinating and engaging presentation!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Memory Technologies for Data Intensive Computing –Andy Bechtolshein (Sun Computers)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;What an honor to get Andy to come and present to us.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Unfortunately, I didn’t get a chance to chat with him personally as he was only at the workshop for a short while.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Andy is a well respected and talented hardware engineer who was a founder of both Sun Microsystems and of Arista Network.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;His slides are not going to be posted and I typed as aggressively as I could during his lightning fast presentation.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I would recommend you look both at my friend James Hamilton’s blog post of Andy’s talk at: &lt;/FONT&gt;&lt;A href="http://perspectives.mvdirona.com/2009/10/26/AndyBechtolsheimAtHPTS2009.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;http://perspectives.mvdirona.com/2009/10/26/AndyBechtolsheimAtHPTS2009.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; and then read my notes attached below.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I have not attempted to coalesce the information between James’ notes and mine and there may be overlap.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;James has done a nice job cleaning his up and I will focus on some of the other sessions in my editing.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Here’s my rough notes:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-add-space: auto; mso-list: l0 level1 lfo3" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;è&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Andy speaks VERY fast and I lost a lot of what was covered – The slides were very dense – Also, I apologize for some inaccuracies… These are RAW notes that I made during the fast paced presentation and some of them don’t completely make sense to me.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Semiconductor Technology Roadmap&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;FONT size=3 face=Calibri&gt;Still increasing &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=3 face=Calibri&gt;Number of devices on the chip still doubling&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=3 face=Calibri&gt;Flash is increasing faster than logic and DRAM – Flash faster than Moore’s law&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=3 face=Calibri&gt;Between 2010 and 2022, Flash should increase by 100X – After that (10nm) optical problems may become severe – don’t know after 2022&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;FONT size=3 face=Calibri&gt;&amp;lt;more content lost…&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Emerging devices&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Carbon-nano tubes&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Graphene Nanoribbons&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;… &amp;lt;more that I lost…&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Silicon Roadmap Predictions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;128X increase in transistors by 2022&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;1000 cores per chip by 2022&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;CPU Module Roadmap&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;IO bandwidth will not allow the same bandwidth per core.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;IO going a little faster but number of pins hasn’t increased in 10 years.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;1000 cores would need several terabytes of bandwidth to memory.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Of course, this would need power and cooling&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;&amp;lt;more lost…&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;CPU Challenge&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Power per core --&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Clock rates not increasing – need lower power level per core&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;&amp;lt;more lost…&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Power efficiency – Increasing frequency – a Square effect on the power&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;CPU power strategy – &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Clock rates look flat&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;High clock rates are less power efficient&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;To reduce power, simplify architecture&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;&amp;lt;more lost…&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Multi-Chip 3D packaging&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Thru-Si via Stacking&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Need to combine CPU and Memory on one module&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;High Density 3D Multi-Chip Module&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Benefits of MCM Packaging&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Enables much higher memory bandwidth&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;More channels, wider interfaces, faster I/o&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Greatly reduces power&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Challenges with MCM packaging&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Total Memory – 64 device &amp;lt;…??...&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;With 64 GNB/device – 4TB&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Assuming 1K cores – 4BG/core&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;MCM enables &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Fabric I/O&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;2010 –1 32 Gb/direction&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;2020 1.73Tbps/direction&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Mesh or higher radix fabric topologies&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Expected Link Data Rates&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;10GBps shipping today&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;2012 – 25 GBps&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;2016 – 50 GBPS&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;2020 – 100 GBps&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;ExaScale Storage&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Forget Hard Disks – Disk are not getting faster&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Flash Experience so far&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Not easy to get to 1000000 IOPS&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Writes are a problem&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;SAS/SATA interface not optimal&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Direct PCI-Express interface looks more promising.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;– Move FLASH closer to the CPU&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;-- Lower latency and more throughput&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Flash in the Memory Hierarchy&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Flash is not random access&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;more like a block device&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;-- random access about 1000 slower than DRAM&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Flash can be used as a stable storage device&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;-- writes are committed – Supercap magic behind the scenes.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=3 face=Calibri&gt;Tremendous throughput and size – terabytes of capacity&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Flash Latency&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Latency expected to drop by a factor of 10&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Flash transfer rates will double each year for the next several years. – 250MBS/sec 2012&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Flash prices&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;2004 -- $100 GB&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;2009 $1 – GB&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;2012 -- $.25 / GB&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Prices are dropping dramatically – &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Flash Summary&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.75in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;FLASH will be very expensive, very dense,&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.75in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Costs falling by 50% per year&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.75in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Access times falling by 50% per year&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Tech Summary&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Moore’s Law for at least 10 more years&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Frequency Gains&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;not happening&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Flash will be interesting&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Software Challenges&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Limits of App Parallelism&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Need to exploit Parallelism&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-VARIANT: small-caps; FONT-SIZE: 18pt; mso-bidi-font-size: 11.0pt"&gt;&lt;FONT face=Calibri&gt;Session 2) Using the New Memory Hierarch &lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Session Chair: David Cheriton (Stanford)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Scaling-Out without Partitioning – Phil Bernstein and Colin Reid (Microsoft)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;This session was, in many ways, one of the most interesting at HPTS.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It was not new to me since I had been privileged to spend a number of hours talking to Colin (and a bit to Phil) about Hyder back at Microsoft.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Phil did a great job explaining a radical new approach to scale-out and serializable database!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Hyder is a software stack for transactional record management.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It can offer full database functionality and is designed to take advantage of flash in a novel way.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Most approaches to scale-out use partitioning and spread the data across multiple machines leaving the application responsible for consistency.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In Hyder, the database is the log, no partitioning is required, and the database is multi-versioned.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Hyder runs in the App process with a simple high-performance programming model and no need for client server.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This avoids the expense of RPC.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Hyder leverages some new hardware assumptions.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I/Os are now cheap and abundant.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Raw flash (not SSDs – raw flash) offers at least 10^4 more IOPS/GB than HDD.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This allows for dramatic changes in usage patterns.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We have cheap and high performance data center networks.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Large and cheap 64-bit addressable memories are available.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Also, with many-core servers, computation can be squandered and Hyder leverages that abundant computation to keep a consistent view of the data as it changes.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The Hyder system has individual nodes and a shared flash storage which holds a log.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Appending a record to the log involves a send to the log controller and a response with the location in the log into which the record was appended.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In this fashion, many servers can be pushing records into the log and they are allocated a location by the log controller.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It turns out that this simple centralized function of assigning a log location on append will adjudicate any conflicts (as we shall see later).&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The Hyder stack comprises a persistent programming language like LING or SQL, an optimistic transaction protocol, and a multi-versioned binary search tree to represent the database state.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The Hyder database is stored in a log but it IS a binary tree.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So you can think of the database as a binary tree that is kept in the log and you find data by climbing the tree through the log. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The Binary Tree is multi-versioned.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You do a copy-on-write creating new nodes and replace nodes up to the root.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The transaction commits when the copy-on-write makes it up to the root of the tree.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;For transaction execution, each server has a cache of the last committed state.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That cache is going to be close to the latest and greatest state since each server is constantly replaying the log to keep the local state accurate [recall the assumption that there are lots of cores per server and it’s OK to spend cycles from the extra cores].&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So, each transaction running in a single server reads a snapshot and generates an intention log record.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;The transaction gets a pointer to the snapshot and generates an intention log record.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The server generates updates locally appending them to the log (recall that an append is sent to the log controller which returns the log-id with its placement in the log).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Updates are copy-on-write climbing up the binary tree to the root.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Log updates get broadcast to all the servers – everyone sees the log.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Changes to the log are only done by appending to the log.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;New records and their addresses are broadcast to all servers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In this fashion, each server can reconstruct the tail of the log.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Now we get to transaction commit.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;All machines are marching ahead rolling the log forward.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When an intention record is generated (indicating a proposed new root for the log), each machine in the cluster checks for a conflict.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If any of the records updated conflicts with previously committed work, the transaction is aborted.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Conflict in this case is traditional read/write conflict using all the classic set of rules for various degrees of consistency.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If there are no conflicts, the transaction is committed.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If there are conflicts, the transaction is aborted.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Because there is an append in the log controller which assigns order, each intention record will race to the log and the controller will pick a winner.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Because log ordering is deterministic, each of the server nodes can reliably come to the same conclusion about which transaction won the race and, hence commits rather than aborts in the face of conflict.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Conflict detection and transaction commit is done redundantly and predictably at each node.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, each node generates an intention log for a transaction it wants to do.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Every server checks for conflicts and then either aborts or commits.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The log order provides determinism.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;U&gt;Performance of Hyder&lt;/U&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The system scales without partitioning.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The system-wide throughput of update transactions is bounded by the update pipeline.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is estimated this can perform 15K update transactions per second over a 1GB Ethernet and 150K update transactions per second over a 10GB Ethernet.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Conflict detection and merge can do about 200K txs per second.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The abort rate on write-hot data is bounded by the transaction’s conflict zone.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is determined by the transactions end-to-end latency.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This conflict zone is about 200 microseconds in the prototype.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is estimated that this would handle about 1500 TPS (&lt;I style="mso-bidi-font-style: normal"&gt;assuming all the transaction have conflicts&lt;/I&gt;).&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;U&gt;Major Technologies&lt;/U&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is using flash as append only (and it is not using SSD flash but raw flash with a special controller).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The custom controller over raw flash has mechanisms for sync and fault tolerance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Storage is striped with a self-adaptive algorithm for storage allocation.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It includes a fault tolerant algorithm for a totally ordered log.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Also, it has a fast algorithm for conflict detection and merging of records.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;U&gt;Status&lt;/U&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Most of Hyder has been prototyped but there is a long way to go.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Phil Bernstein and Colin Reid are working on a paper and HPTS is the first time Hyder has been discussed publicly.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Again, this was a wonderful talk with some fascinating and different ideas.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Great work!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;A Performance Puzzle:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;B-Tree Insertions are Slow on SSDs (Bradley Kszmaul – Tokutek – Research Scientist at MIT)&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, this talk was about some surprises in SSD performance in supporting MySQL.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Much of the discussion was about the datasheets for some of the drives not matching the measured reality.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Bradley had measured the value of running MySQL against SSDs and expected the SSDs (with higher IOPS) to get better Btree performance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here’s my rough and raw notes:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Intel X25E Specs&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Read BW up to 250 MB/s&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Write BW up to 170 MB/s&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Random 4KB read rate – 35 KIO/s&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Random 4KB&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;&amp;lt;lost some…&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Measure Berkeley DB&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Trending to 4500 write per second &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Performance Model&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;-- &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Startup cost plus bandwidth cost&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Looking at read performance as a function of block size&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;As block size gets bigger, bandwidth goes up&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Discussion &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;à&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Margo points out that many Filesystems see large blocks and do read ahead.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That can perturb the results…&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;When you read and write large blocks, Bradley sees Filesystems doing the right thing and keeping contiguous blocks adjacent.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The datasheet for the drive is not matching the reality for larger block sizes&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Mixing reads and writes seems to impact the performance quite a bit…&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;What Block Size to Use?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;For point-queries, BTrees are insensitive to block size.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;For range queries, block size if important&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Tension: Large block sizes make range queries faster; Small block sizes make exact match faster&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Set block size so half of the time is accounted by seek, half by bandwidth&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Reads: 50KB for SSD but 500KB-1000KB for rotating disk&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Writes 10KB SSD , 500KB-1000KB for HDD&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Mixed read/write 21KB for SSD&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Cache-Oblivious Approach &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Use data structures that are fast for any block size&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Also can speed insertions without slowing searches&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Tokutek’s MySQL storage engine uses these ideas.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Discussion: James Hamilton layering of software and release by release changes makes it hard to get predictable behavior.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;When all these releases are separately evolved, the performance behavior is very unpredictable.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Bradley: fragmentation starts messing with this, too.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;James: all the layers interact and we need to measure by the workload and adapt.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The complexity makes performance very hard to predict.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Implications of Storage Class Memories (SCMs) on Software Architectures (C. Mohan – IBM)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Storage Class Memory (SCM)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Mohan gave a very thought provoking talk on the implications of Storage Class Memories.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Where do we need them?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;What good will they do? &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;If we have non-volatile memory that is as easy to access as DRAM, will we have corruption problems?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Will we see a running system trash the non-volatile memory like it trashes DRAM?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;One of the advantages of our current system design is that we have to pass a “sanity test” of an IO driver or messaging stack to get nastiness outside of a running system.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That dramatically reduces the chance of this happening. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Anyway, Mohan’s talk was really thought provoking and enjoyable!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It was good to see my old friend back at HPTS after taking a stint in India for a few years.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Raw notes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Blurs the distinction between DRAM and Disk&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Industry SCM Activities&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;IBM&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Intel/ST spun out of Numonyx (FLASH and PCM)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Samsung, Numonyx sample PCM chips –&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;&amp;lt;lost som&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Speed/Volitility/persistenct&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;DRAM plus SWCM – Fast and persistent&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Persistent storage will not lose data&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Competing technologies for SCM&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Phase Change RAM (most promising)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;SCM as a part of the storage stack&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;The distinction between RAM and Disk – the line in between is blurring&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Memory-like and also Storage-Like&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;SCM Design Triangle&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Speed – endurance – Cost/bit&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Speed with Write endurance is more memory-like&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Phase-Change RAM&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;When density increases, the failure rate goes up as bits flip more often&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;SCM is on Moore’s law&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;PCM is fast &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;100-1000 ns&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Architecture&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;SCM may be used as Memory&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;SCM may, alternatively be used as a storage (through IO controllers)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Discussion &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;à&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Pat:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Bugs in non-volatile memory can sometimes be preserved&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;PCM Use Cases&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;PCM as Disk&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;PCM as Staging device&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;PCM as memory&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;PCM as extended memory&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Exploring DBMS as an exploiter of PCM&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Should log records be written directly to PCM?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Should log be more like Disk (first to buffer and then forced to disk)?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;PCM is not as reliable as disk &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;à&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; do you need to offload to a disk&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;If you use Group Commit, it is unclear that PCM helps a DBMS&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;PCM replaces DRAM – Buffer Pool in PC&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;The PCM Buffer Pool access will be slower than DRAM&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Writes will suffer more than reads!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Should we instead have a DRAM BP backed by a PCM BP?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Similar to DB2 z in parallel sysplex environment with BPs in coupling facility (CF)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;But DB2 situation has well defined rules on when pages a move from DRAM CP to CF BP&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Variation was used in SafeRAM work at MCC in 1989&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Assume the whole DB fits in PCM&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Apply old main memory DB concepts design directly&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Shouldn’t we leverage persistence specially?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Every bit change persisting may not be good!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Today’s failure semantics has flexibility on tracking changes to DB pages.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Memory overwrites will cause more damage&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;If every write assumed to be persistent as soon as write completes, then L1 and L2 caching can’t be leveraged.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Assume whole DB fits in memory&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Need to externalize periodically since PCM won’t have good endurance&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;If DB spans both DRAM and PCM, hard to figure out what goes where!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;What about Logging?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;If PCM is persistent and whole DB is in PCM, do we need logging?&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-LEFT: 0.2in; BORDER-TOP: medium none; MARGIN-RIGHT: 0in; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-element: para-border-div; mso-border-bottom-alt: solid windowtext .75pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.25in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-add-space: auto; mso-list: l2 level1 lfo2; mso-border-bottom-alt: solid windowtext .75pt; mso-padding-alt: 0in 0in 1.0pt 0in" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Of course it is needed to provide at least partial rollback even if data is being versioned (at least to track versions to invalidate)&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The end of Monday morning!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;More soon…&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-add-space: auto; mso-list: l3 level1 lfo4" class=MsoListParagraph&gt;&lt;SPAN style="mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Pat&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9916266" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author><category term="HPTS" scheme="http://blogs.msdn.com/pathelland/archive/tags/HPTS/default.aspx" /></entry><entry><title>Building Blocks and the Three Bears</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2009/04/13/building-blocks-and-the-three-bears.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2009/04/13/building-blocks-and-the-three-bears.aspx</id><published>2009-04-14T02:41:54Z</published><updated>2009-04-14T02:41:54Z</updated><content type="html">&lt;p&gt;So, about a year and a half ago, I was working in Developer Division and there were lots of discussions about different kinds of components…&amp;nbsp; it seemed that everyone was talking past each other and meant really different things about they meant by a component.&amp;nbsp; I decided to try to identify three different meanings of the word “component”.&amp;nbsp;&amp;nbsp; To avoid debates over the naming, I chose the really ridiculous names:&amp;nbsp; “Baby-Bear”, “Momma-Bear”, and “Papa-Bear” to describe the different things meant by different folks when they talked about a component… of course, these names were not meant as serious but it did lead to some illustrative discussions about the “Three Bears”.&amp;nbsp;&amp;nbsp; Last week, &lt;a href="http://blogs.msdn.com/kcwalina/"&gt;Krzysztof Cwalina&lt;/a&gt; asked me to post a description of the “Three Bears” because it would be helpful for him in describing their project, MEF.&amp;nbsp;&amp;nbsp; Here goes…&lt;/p&gt; &lt;p&gt;The idea is that there are three different types of components.&amp;nbsp; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;u&gt;Baby-Bears&lt;/u&gt; are much like the classic object with inheritance, reference-passing, and synchronous interactions with their callers.&amp;nbsp;&amp;nbsp; &lt;li&gt;&lt;u&gt;Momma-Bears&lt;/u&gt; (closely related to what is provided by MEF), are comprised of multiple Baby-Bears.&amp;nbsp; While exhibiting synchronous call patterns, they do not support pass-by-reference nor inheritance.&amp;nbsp; They will, however, allow for support of &lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;dependency injection&lt;/a&gt;.  &lt;li&gt;&lt;u&gt;Papa-Bears&lt;/u&gt; are the biggest of the three and are most similar to a SOA Service.&amp;nbsp;&amp;nbsp; A Papa-Bear will typically be composed of multiple Momma-Bears.&amp;nbsp;&amp;nbsp; Papa-Bears interact with their partners asynchronously, are frequently remote, do not support pass-by-reference or inheritance, and may be offline.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/BuildingBlocksandtheThreeBears_A386/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="556" alt="image" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/BuildingBlocksandtheThreeBears_A386/image_thumb.png" width="1028" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;My interest has always been in the realm of the Papa-Bear and other projects have focused more in the realm of the Baby-Bear and the Momma-Bear.&amp;nbsp;&amp;nbsp; I will leave it to Krzysztof to explain MEF (which I believe is more akin to the Momma-Bear) type of component.&lt;/p&gt; &lt;p&gt;Anyway, this is what I like to call “Building Blocks and the Three Bears”.&lt;/p&gt; &lt;p&gt;- Pat&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9547529" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>“Book Report” on the UC Berkeley Paper “Above the Clouds: a Berkeley View of Cloud Computing”</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2009/04/10/book-report-on-the-uc-berkeley-paper-above-the-clouds-a-berkeley-view-of-cloud-computing.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2009/04/10/book-report-on-the-uc-berkeley-paper-above-the-clouds-a-berkeley-view-of-cloud-computing.aspx</id><published>2009-04-11T03:57:29Z</published><updated>2009-04-11T03:57:29Z</updated><content type="html">&lt;p&gt;As I mentioned in a previous blog post, I am very impressed with a recent paper from my friends at the Berkeley RAD Lab called: &lt;a href="http://abovetheclouds.cs.berkeley.edu."&gt;Above the Clouds: a Berkeley View of Cloud Computing&lt;/a&gt;.&amp;nbsp;&amp;nbsp; it seemed to me that it would be important for these concepts to be better understood by a broad audience within Microsoft so I took the time to create a presentation covering the contents of the paper.&amp;nbsp; You can see the presentation I created covering the paper’s contents &lt;a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2009/Above-the-Clouds-090401k.pptx"&gt;here&lt;/a&gt;.&amp;nbsp; &lt;/p&gt; &lt;p&gt;If you are interested in cloud computing, you want to understand these ideas.&lt;/p&gt; &lt;p&gt;Also, I highly recommend the Berkeley blog on cloud computing available at:&amp;nbsp; &lt;a href="http://abovetheclouds.cs.berkeley.edu"&gt;http://abovetheclouds.cs.berkeley.edu&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Thanks to the folks at Berkeley for their hard work and permission to show this to you.&lt;/p&gt; &lt;p&gt;- Pat&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9544379" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>Great Paper from UC Berkeley on Cloud Computing</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2009/02/20/great-paper-from-uc-berkeley-on-cloud-computing.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2009/02/20/great-paper-from-uc-berkeley-on-cloud-computing.aspx</id><published>2009-02-21T03:05:00Z</published><updated>2009-02-21T03:05:00Z</updated><content type="html">&lt;P&gt;My friends at the UC Berkeley RAD Lab have written a wonderful paper on Cloud Computing.&amp;nbsp;&amp;nbsp; It can be found (with a video interview and some other stuff) at&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt; &lt;A href="http://abovetheclouds.cs.berkeley.edu/"&gt;http://abovetheclouds.cs.berkeley.edu&lt;/A&gt;&lt;/SPAN&gt;.&amp;nbsp; I strongly recommend looking at their work!&lt;/P&gt;
&lt;P&gt;- Pat&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9436718" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>Slides from SQL Service Broker Design Preview from August 2001</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2009/01/20/slides-from-sql-service-broker-design-preview-from-august-2001.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2009/01/20/slides-from-sql-service-broker-design-preview-from-august-2001.aspx</id><published>2009-01-21T05:41:35Z</published><updated>2009-01-21T05:41:35Z</updated><content type="html">&lt;p&gt;I know this is a LONG time ago but these slides were never made public before and there's some interesting (and still relevant) stuff in this collection.&amp;nbsp; At the time, it was confidential but that is no longer the case.&lt;/p&gt; &lt;p&gt;In August of 2001, the SQL Service Broker team did a design preview and I wrote five presentations totaling 280 slides.&amp;nbsp; I presented these over a 12 hour period (actually, that time also includes a sixth talk with another 60 slides on "Fiefdoms and Emissaries" but I'll push that out later).&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;CAUTION:&amp;nbsp; These slides are from August of 2001 and SQL Service Broker shipped in late 2005.&amp;nbsp; Many things are changed!&amp;nbsp; Do NOT count on these slides for accuracy of the product but they can be a big help with inspiration.&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The following slide decks are now out in my new &lt;a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/browse.aspx/.Public"&gt;public skydrive folder&lt;/a&gt;.&lt;/p&gt; &lt;h3&gt;&lt;strong&gt;&lt;u&gt;SQL Service Broker Overview&lt;/u&gt;&lt;/strong&gt;&lt;/h3&gt; &lt;blockquote&gt; &lt;p&gt;An overview and introduction to SQL Service Broker.&amp;nbsp; This slide deck has the following major sections:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Introduction&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; Motivates the challenges in loosely-coupled messaging, the advantages of deeply integrating messaging with the database, support for scaling and fault tolerance, and some scenarios for SQL Service Broker.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;High-Level Architecture&lt;/u&gt;&lt;/strong&gt;: This covers web services, brokers, message fragmentation, service environments (which provide a namespace for services), message-types, service-contracts, services, and service programs.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Programming Model&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; This section covers an overview of the programming model, service instances and state management, dialogs, and again ties these programmatic concepts to the service instance.&amp;nbsp; Caution: the syntax has changed between this and the shipped product!&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Relationship to Other Stuff&lt;/u&gt;&lt;/strong&gt;: Here we visit management issues, interoperation, and look at products that create services.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; We revisit the scenarios and summarize the points made.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;The SSB overview talk has 87 slides and can be found &lt;a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2001/SQL-Service-Broker-Design-Preview-Aug01/SSB-Overview-010828.ppt"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;h3&gt;&lt;strong&gt;&lt;u&gt;SQL Service Broker Messaging&lt;/u&gt;&lt;/strong&gt;&lt;/h3&gt; &lt;blockquote&gt; &lt;p&gt;This talk examines the message protocols used in SQL Service Broker.&amp;nbsp; &lt;u&gt;&lt;em&gt;Reminder:&amp;nbsp; This is not an accurate depiction of what is in the product!&lt;/em&gt;&lt;/u&gt;&lt;/p&gt; &lt;p&gt;This slide deck has the following major sections:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Introduction&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; This covers the concepts of reliable messaging, brief discussion of web services, Internet and Intranet issues, transport support, binary and lossless transformations, and a sketch of the protocol stack.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Adjacent Broker Protocol&lt;/u&gt;&lt;/strong&gt;: The adjacent broker protocol talks to a nearby SQL Server to propagate messages and get them closer to their destination.&amp;nbsp; This section outlines the challenges at this level with delivery (sometimes tunneled through firewalls), lifetime management, and format negotiation.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Endpoint Broker Protocol&lt;/u&gt;&lt;/strong&gt;: The endpoint broker protocol functions across the SQL Server engines that actually constitute the two endpoints for the communication (and it layers atop the adjacent broker protocol).&amp;nbsp; This section covers dialog endpoint state, fragmentation and sequence numbers, piggy-backed acknowledgements, and unsequenced ack messages.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Message Formats&lt;/u&gt;&lt;/strong&gt;: This covers pieces of the messages, encryption challenges, and ASCII versus binary sections of the SOAP message.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Monolog Contracts&lt;/u&gt;&lt;/strong&gt;: Monologs were not implemented but they are VERY interesting if you care about Pub-Sub.&amp;nbsp; This short section on Monologs covers some of the issues related to the messaging formats.&amp;nbsp; It discusses dialog contracts to implement monologs.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Web Services and SOAP Bubbles&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; Some brief framing of the relationship of the SSB protocols to Web Services and SOAP.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/strong&gt;: a summary of the content covered.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;The SSB messaging talk has 31 slides and can be found &lt;a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2001/SQL-Service-Broker-Design-Preview-Aug01/SSB-Messaging-010828.ppt"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;h3&gt;&lt;strong&gt;&lt;u&gt;SQL Service Broker Performance&lt;/u&gt;&lt;/strong&gt;&lt;/h3&gt; &lt;blockquote&gt; &lt;p&gt;This talk examines performance, scaling, and high-availability issues with SQL Service Broker.&amp;nbsp;&amp;nbsp; &lt;u&gt;&lt;em&gt;Reminder:&amp;nbsp; This is not an accurate depiction of what is in the product!&lt;/em&gt;&lt;/u&gt;&lt;/p&gt; &lt;p&gt;This slide deck has the following major sections:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Introduction&lt;/u&gt;&lt;/strong&gt;&amp;nbsp; &lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Work Within a Service&lt;/u&gt;&lt;/strong&gt;: This covers messages in and out of a service, service instance state management, data access from services, and scalable and highly-available ASP.NET apps.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Fault Tolerant Services&lt;/u&gt;&lt;/strong&gt;: In this section, we cover designing services for fault tolerance, deploying services for fault tolerance, and more issues with fault tolerance.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Scaling and High-Performance&lt;/u&gt;&lt;/strong&gt;: Here, we examine application issues for scale-up, execution of scale-up services, application issues for scale-out, and execution of scale-out services.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;The SSB performance talk has 46 slides and can be found &lt;a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2001/SQL-Service-Broker-Design-Preview-Aug01/SSB-Perf-Scale-010828.ppt"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;h3&gt;&lt;strong&gt;&lt;u&gt;SQL Service Broker Monologs&lt;/u&gt;&lt;/strong&gt;&lt;/h3&gt; &lt;blockquote&gt; &lt;p&gt;One of my favorite talks, this describes the unshipped feature of SSB Monologs.&amp;nbsp; Monologs implement a very flexible form of pub-sub.&amp;nbsp; While they are an unimplemented feature in SSB, the serious implementer could follow the guidance in this talk and avoid a lot of difficulties.&amp;nbsp;&amp;nbsp; &lt;u&gt;&lt;em&gt;Reminder:&amp;nbsp; This is not an accurate depiction of what is in the product (it has not shipped)!&lt;/em&gt;&lt;/u&gt;&lt;/p&gt; &lt;p&gt;This slide deck has the following major sections:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Monolog Overview&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; This covers "What's a Monolog?", programmatic interfaces, and broker-to-broker contracts.&amp;nbsp; Included are the notions of "History versus Currency", Monolog-Groups, and Subscriptions.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Programming with Monologs&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; This section includes programming a publisher, requesting a subscription, and monolog delivery in a subscriber.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Some Special Monolog Features&lt;/u&gt;&lt;/strong&gt;: A really cool concept called a Monolog-Checkpoint is covered as well as the lifetime of monologs.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Plumbing Monologs Over Dialogs&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; We examine fan-out trees for scale, plumbing the fanout using dialogs, publisher agents, and subscriber agents.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; Here we examine content syndication and content aggregation and then summarize the talk.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;The SSB monologs talk has 53 slides and can be found &lt;a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2001/SQL-Service-Broker-Design-Preview-Aug01/SSB-Monologs-010828.ppt"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;h3&gt;&lt;strong&gt;&lt;u&gt;SQL Service Broker Security&lt;/u&gt;&lt;/strong&gt;&lt;/h3&gt; &lt;blockquote&gt; &lt;p&gt;Again, one of my favorite talks, this describes some of the special challenges with security that arise in a messaging and services system like SQL Service Broker.&amp;nbsp; Classic session-oriented security only works when messages are received in order.&amp;nbsp; That is just one of the challenges.&amp;nbsp;&amp;nbsp; &lt;u&gt;&lt;em&gt;Reminder:&amp;nbsp; This is not an accurate depiction of what is in the product!&lt;/em&gt;&lt;/u&gt;&lt;/p&gt; &lt;p&gt;This slide deck has the following major sections:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Security Behavior&lt;/u&gt;&lt;/strong&gt;: This section covers identity, dialog authorization, monolog authorization, and auditing.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Encryption Concepts&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; Here we examine symmetric key encryption, public key encryption, and some practical rules for using encryption.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Encrypting Dialogs&lt;/u&gt;&lt;/strong&gt;:&amp;nbsp; In this section, we introduce a concept called "handshakes" which helps optimize the performance of certificate management in a dialog-based system.&amp;nbsp; We look at handshake certificates, messages and dialogs, and cryptographic guarantees.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Encrypting Monologs&lt;/u&gt;&lt;/strong&gt;: Monologs are N-party communications.&amp;nbsp; We examine in this section why 2-party security works best and then how we can use a fan-out tree to implement a secure scalable publisher.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;The SSB security talk has 61 slides and can be found &lt;a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2001/SQL-Service-Broker-Design-Preview-Aug01/SSB-Security-010828.ppt"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I hope these talks are fun as there's still lots of interesting concepts in them 8 years later.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;- Pat&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9354152" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>Transaction Processing and the Barbarian Hordes</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2009/01/19/transaction-processing-and-the-barbarian-hordes.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2009/01/19/transaction-processing-and-the-barbarian-hordes.aspx</id><published>2009-01-20T04:53:00Z</published><updated>2009-01-20T04:53:00Z</updated><content type="html">&lt;P&gt;So, I'm starting to figure out how to put stuff up on Windows Live Skydrive and I have beginning out &lt;A href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/browse.aspx/.Public"&gt;&lt;FONT color=#669966&gt;here&lt;/FONT&gt;&lt;/A&gt;.&amp;nbsp;&amp;nbsp; I've only spent a few hours on this and there's lots more old stuff to add soon.&amp;nbsp; I will send another blog post when this is in better shape.&lt;/P&gt;
&lt;P&gt;I just couldn't resist sharing some fun, though...&lt;/P&gt;
&lt;P&gt;As I was sorting through old files, I came across a video of &lt;A href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/1996/Barbarian-Hordes-961106.wmv"&gt;&lt;FONT color=#669966&gt;Transaction Processing and the Barbarian Hordes&lt;/FONT&gt;&lt;/A&gt; and placed it up for all to see.&amp;nbsp; This was my favorite moment on stage (at least so far) and was the source of a rare bout of stage fright before starting the presentation...&lt;/P&gt;
&lt;P&gt;This was at the Long Beach PDC in November of 1996.&amp;nbsp; The PDC was titled "The Renaissance of Distributed Computing" and I had a one hour General Session to introduce &lt;A href="http://en.wikipedia.org/wiki/Microsoft_Transaction_Server"&gt;&lt;FONT color=#669966&gt;Microsoft Transaction Server&lt;/FONT&gt;&lt;/A&gt;.&amp;nbsp; We wanted to show that MTS was easier to install than a classic &lt;A href="http://en.wikipedia.org/wiki/Transaction_processing_monitor"&gt;&lt;FONT color=#669966&gt;Transaction Processing Monitor&lt;/FONT&gt;&lt;/A&gt;.&amp;nbsp; So, my friend Greg Hope came out to do a 2-1/2 minute setup on MTS.&amp;nbsp; While this was happening, I told a five minute joke...&lt;/P&gt;
&lt;P&gt;There were 7000 people in the room and (I think) 10000+ on video feed.&amp;nbsp; They had NO idea what I was doing for at least three minutes.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;- Pat&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9341247" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>A Wonderful Time at CIDR (Conference on Innovative Database Research)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2009/01/09/a-wonderful-time-at-cidr-conference-on-innovative-database-research.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2009/01/09/a-wonderful-time-at-cidr-conference-on-innovative-database-research.aspx</id><published>2009-01-10T04:35:39Z</published><updated>2009-01-10T04:35:39Z</updated><content type="html">&lt;p&gt;Sunday, January 4th through Wednesday, January 7th was the &lt;a href="http://www-db.cs.wisc.edu/cidr/"&gt;Conference on Innovative Database Research (CIDR)&lt;/a&gt;&amp;nbsp; at Asilomar.&amp;nbsp; &lt;/p&gt; &lt;p&gt;First, let me talk for a minute about &lt;a href="http://www.visitasilomar.com/default.aspx"&gt;Asilomar&lt;/a&gt;. It is located in the forest right off the beach in Pacific Grove, CA (right next to Monterey).&amp;nbsp; From 1913 to 1956, it was a YWCA and has a number of magnificent and beautiful historic buildings.&amp;nbsp; In 1956, it was sold to the State of California which has run it as a conference center since then.&amp;nbsp; Asilomar has a deep and special place in my heart.&amp;nbsp; I've spent 3 days every two years there since 1985 at the &lt;a href="http://www.hpts.ws/"&gt;HPTS (High Performance Transaction Systems) workshop&lt;/a&gt;.&amp;nbsp; This gathering has been attended by many wonderful friends in the transaction processing and database community.&amp;nbsp; Every job I've gotten since the 1980s has been through contacts forged at HPTS.&amp;nbsp; I chaired the HPTS workshop in 1989 and (believe it or not), my first grandson was born DURING the workshop (after the keynote, before the first session, and immediately after I ordered more coffee in a crisis for the first break).&amp;nbsp; I still smile at the location of the (now removed) pay phone where I continually called to find out how the birth was progressing.&amp;nbsp; Nick (my grandson) is now at Cal State San Jose.&amp;nbsp;&amp;nbsp;&amp;nbsp; It was at Asilomar that I last saw my dear friend, Jim Gray.&amp;nbsp; Now, I go two times each two years for CIDR (January of the odd years) and HPTS (October of the odd years).&amp;nbsp; The smells, the feel, the fireplaces, the wonderful &lt;a href="http://www.bluffton.edu/~sullivanm/jmasilomar/jmasilomarchapel.html"&gt;Chapel Building&lt;/a&gt; (where we meet to present to each other), and the amazing participants offer me a rich combination of memories and current stimulus.&lt;/p&gt; &lt;p&gt;So, this year's CIDR was a good one.&amp;nbsp; The agenda was packed.&amp;nbsp; There was a healthy combination of seasoned database folks and young grad student.&amp;nbsp; We listened to a lot of presentations and had a lot of stimulating conversations.&amp;nbsp; I saw a bunch of old friends and made a bunch of new ones.&amp;nbsp; Someone (who... me??) managed to bring some nice sipping whiskey each night and get a gang off to chat quietly by the fire and ensure we ended up sleep deprived but with a better understanding of our new and old friends.&amp;nbsp; It was a very, very nice event.&lt;/p&gt; &lt;p&gt;On Tuesday evening, I was on a panel with my old friend from Tandem days, &lt;a href="http://www.linkedin.com/ppl/webprofile?action=vmi&amp;amp;id=5220261&amp;amp;authToken=GGcn&amp;amp;authType=name&amp;amp;trk=ppro_viewmore&amp;amp;lnk=vw_pprofile"&gt;Shel Finkelstein&lt;/a&gt;.&amp;nbsp; We were joined by a friend of mine I met last year, &lt;a href="http://athx2.cs.berkeley.edu/~marmbrus/"&gt;Michael Armbrust&lt;/a&gt;, who is a graduate student at UC Berkeley studying in the &lt;a href="http://radlab.cs.berkeley.edu/wiki/RAD_Lab"&gt;Berkeley RAD Lab&lt;/a&gt;.&amp;nbsp; The panel was on the ways in which cloud-based systems are, in many cases, evolving towards availability over consistency.&amp;nbsp; I presented a summary of "Building on Quicksand".&amp;nbsp;&amp;nbsp; Shel did a marvelous job presenting "Principles for Inconsistency".&amp;nbsp; Finally, Michael presented about his project at Berkeley called "SCADS: Scale-Independent Storage for Social Computing Applications" and then we had a joint Q&amp;amp;A.&amp;nbsp; You can find the papers for these talks at &lt;a title="http://www-db.cs.wisc.edu/cidr/cidr2009/program.html" href="http://www-db.cs.wisc.edu/cidr/cidr2009/program.html"&gt;http://www-db.cs.wisc.edu/cidr/cidr2009/program.html&lt;/a&gt; and then navigating the program to Tuesday evening.&lt;/p&gt; &lt;p&gt;The panel was a blast...&amp;nbsp; I've known Shel for almost 20 years and knew he would do a great job.&amp;nbsp; He did.&amp;nbsp; This was Michael's first conference but I was THRILLED with his talk.&amp;nbsp; He was clear, organized, and thought provoking.&amp;nbsp; An absolute home run for someone's first conference!&amp;nbsp; &lt;/p&gt; &lt;p&gt;FInally, I want to thank Mike Franklin, Joe Hellerstein, and Gerhard Weikum (and many others) for all their hard work to make CIDR 2009 possible.&lt;/p&gt; &lt;p&gt;- Pat&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9303181" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>"Building on Quicksand" Paper for CIDR (Conference on Innovative Database Research)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2008/12/12/building-on-quicksand-paper-for-cidr-conference-on-innovative-database-research.aspx" /><link rel="enclosure" type="application/pdf" length="861953" href="http://blogs.msdn.com/pathelland/attachment/9205214.ashx" /><id>http://blogs.msdn.com/pathelland/archive/2008/12/12/building-on-quicksand-paper-for-cidr-conference-on-innovative-database-research.aspx</id><published>2008-12-13T05:34:00Z</published><updated>2008-12-13T05:34:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 4pt"&gt;&lt;FONT face="Times New Roman"&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;
&lt;P minmax_bound="true"&gt;I just&amp;nbsp;submitted the final (photo-ready) version of&amp;nbsp;a new paper called "Building on Quicksand" to the &lt;A class="" title="Conference on Innovative Database Systems" href="http://www-db.cs.wisc.edu/cidr/cidr2009/" minmax_bound="true" mce_href="http://www-db.cs.wisc.edu/cidr/cidr2009/"&gt;Conference on Innovative Database Research&lt;/A&gt;.&amp;nbsp; This is a paper I coauthored&amp;nbsp;with my friend, Dave Campbell.&amp;nbsp; We submitted an earlier version (to try to get into the conference) in October, I wrote a presentation on this for TechEd EMEA, and now we have&amp;nbsp;a new and longer full paper complete.&amp;nbsp; I like this version best of all.&amp;nbsp;&lt;/P&gt;
&lt;P minmax_bound="true"&gt;- Pat&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P minmax_bound="true"&gt;&lt;STRONG&gt;&lt;U&gt;Building on Quicksand&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 4pt"&gt;Reliable systems have always been built out of unreliable components.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Early on, the reliable components were small such as mirrored disks or ECC (Error Correcting Codes) in core memory. These systems were designed such that failures of these small components were transparent to the application. Later, the size of the unreliable components grew larger and semantic challenges crept into the application when failures occurred.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 4pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Fault tolerant algorithms comprise a set of idempotent sub-algorithms.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Between these idempotent sub-algorithms, state is sent across the failure boundaries of the unreliable components.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The failure of an unreliable component can then be tolerated as a takeover by a backup, which uses the last known state and drives forward with a retry of the idempotent sub-algorithm.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Classically, this has been done in a linear fashion (i.e. one step at a time).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 4pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;As the granularity of the unreliable component grows (from a mirrored disk to a system to a data&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;center), the latency to communicate with a backup becomes unpalatable.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This leads to a more relaxed model for fault tolerance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The primary system will acknowledge the work request and its actions &lt;I style="mso-bidi-font-style: normal"&gt;&lt;U&gt;without&lt;/U&gt;&lt;/I&gt; waiting to ensure that the backup is notified of the work.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This improves the responsiveness of the system because the user is not delayed behind a slow interaction with the backup.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;There are two implications of asynchronous state capture:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 13.5pt; TEXT-INDENT: -13.5pt; mso-add-space: auto; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Arial"&gt;&lt;SPAN style="mso-list: Ignore"&gt;1)&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Everything promised by the primary is probabilistic&lt;/SPAN&gt;&lt;/U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There is always a chance that an untimely failure shortly after the promise results in a backup proceeding without knowledge of the commitment.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Hence, nothing is guaranteed!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 4pt 13.5pt; TEXT-INDENT: -13.5pt; mso-add-space: auto; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Arial"&gt;&lt;SPAN style="mso-list: Ignore"&gt;2)&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Applications must ensure eventual consistency&lt;/SPAN&gt;&lt;/U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since work may be stuck in the primary after a failure and reappear later, the processing order for work cannot be guaranteed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 4pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Platform designers are struggling to make this easier for their applications.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Emerging patterns of eventual consistency and probabilistic execution may soon yield a way for applications to express requirements for a “looser” form of consistency while providing availability in the face of ever larger failures. As we will also point out in this paper, the patterns of probabilistic execution and eventual consistency are applicable to intermittently connected application patterns. &lt;FONT color=#ff0000&gt;&lt;SPAN class=msoDel&gt;&lt;DEL cite=mailto:Dave%20Campbell dateTime=2008-12-04T08:00&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DEL&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 4pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;This paper recounts portions of the evolution of these trends, attempts to show the patterns that span these changes, and talks about future directions as we continue to “build on quicksand”.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9205214" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>An Interview with .NET Rocks while I Was at Barcelona Last Week</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2008/11/20/an-interview-with-net-rocks-while-i-was-at-barcelona-last-week.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2008/11/20/an-interview-with-net-rocks-while-i-was-at-barcelona-last-week.aspx</id><published>2008-11-20T22:55:41Z</published><updated>2008-11-20T22:55:41Z</updated><content type="html">&lt;p&gt;Mark Dunn of .NET Rocks asked me to do an interview at TechEd EMEA last week.&amp;nbsp; We chatted about one of my talks called "If You Have Too Much Data, then Good Enough Is Good Enough".&amp;nbsp; The link to the interview is &lt;a href="http://mfile.akamai.com/14853/wmv/microsofttec.download.akamai.com/14853/TechEdOnline/Videos/444_low.asx"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Thanks, Mark!&amp;nbsp; It was fun!&lt;/p&gt; &lt;p&gt;- Pat&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AnI.NETRockswhileIWasatBarcelonaLastWeek_A77B/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="411" alt="image" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AnI.NETRockswhileIWasatBarcelonaLastWeek_A77B/image_thumb.png" width="644" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9130196" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>Channel 9 Just Posted an Interview with Me on the Drive to Many-Core Processors</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2008/11/11/channel-9-just-posted-an-interview-with-me-on-the-drive-to-many-core-processors.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2008/11/11/channel-9-just-posted-an-interview-with-me-on-the-drive-to-many-core-processors.aspx</id><published>2008-11-11T13:27:31Z</published><updated>2008-11-11T13:27:31Z</updated><content type="html">&lt;p&gt;This was filmed at TechEd NA in Orlando last June.&amp;nbsp; I received the link to the video today.&amp;nbsp; It was a nice chat with Patrick Weikle about the inevitability of Many-Core Processors and how this will inevitably drive us to parallel computation.&lt;/p&gt; &lt;p&gt;The link is &lt;a href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Pat-Helland-on-the-Drive-to-Many-Core-Processors/"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/Channel9JustPostedanInterviewwithMeonthe_A111/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="403" alt="image" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/Channel9JustPostedanInterviewwithMeonthe_A111/image_thumb.png" width="644" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9059716" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>I'm Doing Five Talks at TechEd EMEA Developer (Barcelona -- November 10-14)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2008/10/16/i-m-doing-five-talks-at-teched-emea-developer-barcelona-november-10-14.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2008/10/16/i-m-doing-five-talks-at-teched-emea-developer-barcelona-november-10-14.aspx</id><published>2008-10-17T01:05:02Z</published><updated>2008-10-17T01:05:02Z</updated><content type="html">&lt;p&gt;Well, those folks at TechEd EMEA continue to be nice to me.&amp;nbsp; Looks like I get to do four talks for the architecture track AND the closing general session.&amp;nbsp; It is quite an honor to be told I can make up whatever I feel like and they will let me present it.&lt;/p&gt; &lt;p&gt;Here are the titles and abstracts for the four talks for the architecture track:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;Building on Quicksand &lt;/u&gt;&lt;/b&gt; &lt;p&gt;Quicksand is a mixture of sand and water that looks like it is solid but will slowly consume anyone that tries to walk over it.&amp;nbsp; This talk will argue that for many years our systems have built their reliability by layering on top of unreliable components and, effectively, built on top of quicksand.&amp;nbsp; Furthermore, the granularity of the unreliable components has been steadily increasing through the years and is gradually showing new and challenging semantics to the application developer.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Fault tolerant algorithms are built by creating pieces that are idempotent or repeatable without harm.&amp;nbsp;&amp;nbsp; Ensuring these idempotent operations can be performed by components that are unreliable, a reliable design must capture the state ACROSS the failure units and keep going if something fails.&amp;nbsp; This has been done with circuitry, mirrored disks, multiprocessors, and more.&amp;nbsp; In the past, failures were usually masked from the running application.&amp;nbsp; Now, the size of the unreliable component is inexorably getting larger as the economics of our systems changes.&amp;nbsp; This is making it impossible for the underlying hardware and software platforms to hide the failures.&amp;nbsp; Increasingly, applications must design to cope with the failures of these unreliable components.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;This talk will sketch the theory of fault tolerance and show a number of examples of how systems have been designed through the years and how their evolution has gradually impacted application design.&amp;nbsp; Hopefully, this discussion will help application designers understand the new responsibilities they face in building reliable distributed systems.&amp;nbsp; It is possible to stay afloat on top of quicksand with sufficient care!&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;When You Have Too Much Data, “Good Enough” is Good Enough&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Classic database management systems have very tight control over their data and over the correctness of the answers they provide.&amp;nbsp;&amp;nbsp; A number of pressures are being placed on classic database systems:&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;· We are awash in vast quantities of data&lt;br&gt;· There are many sources of the data, it frequently has inconsistent schema, and its interpretation is up to… well… interpretation&lt;br&gt;· Data are streaming into the system(s) at the same time as we are attempting to analyze it&lt;br&gt;· The machines holding the data may not all be concurrently available&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;This talk will examine some of these forces on classic database management systems and propose that there are a number of new ways to think about data.&amp;nbsp; We will explore a number of different dimensions in which the “classic” database world is being relaxed to meet the needs for our customers in a changing world.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;RIAs and Emissaries&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;The emerging field of RIA (Rich Internet Applications) is a hybrid between the classic rich-client application and a browser.&amp;nbsp; Designed to provide the richness of the client environment without installation, RIA applications must be small and lightweight.&amp;nbsp; To provide safety, they must have strictly limited access to resources on the client machine.&amp;nbsp;&amp;nbsp; Sandboxing of the client access limits the RIA app to per-app/per-user/per-machine state.&amp;nbsp;&amp;nbsp; The state of the art is evolving in how sharing can be done within RIA environments across applications and across users while providing safe computing.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;The emissary design pattern is one where there is non-trusted code running outside of a service which is specifically designed to support interactions with the service.&amp;nbsp; Leveraging reference data published by the target service, the emissary prepares requests with a sophisticated enough understanding of the service’s expectations that the request is likely to be accepted and processed.&amp;nbsp; All of this is done while respecting the trust boundaries imposed by the target service.&amp;nbsp;&amp;nbsp; This pattern is clarified in the talk by showing parallels to the usage of paper forms in the business processes that proceeded the advent of computers.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;We will explore the use and evolution of the Rich Internet Application and discuss some of the fun challenges the industry faces as RIAs evolve.&amp;nbsp; Then, we will describe the emissary design pattern and show how RIAs are very well suited to working with their parent web environment using this pattern.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;This talk is simply the wild ideas of the presenter and does not reflect any product commitments.&amp;nbsp; It might, however, help you understand and build your applications differently.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;Metropolis: Buildings and Applications&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;The Metropolis series of talks refers to a collection of presentations which examine cities and their evolution since being connected by the railroads and shows how Information Technology is undergoing the same transformations as IT shops are connected by the Internet.&amp;nbsp; This second talk in the series examines the parallels between buildings in the city and applications in the IT shop.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Buildings come in many shapes, forms, and uses.&amp;nbsp; Some are built with major investments and the builders anticipate a long and vibrant lifetime for the building.&amp;nbsp; Others are built for quick turnover and short lives.&amp;nbsp; As buildings age, different aspects of the building have different lifetimes and amortizations.&amp;nbsp; It is common to see the roof, siding, plumbing, or wiring redone a number of times before the building is discarded.&amp;nbsp; We are also seeing an increasing trend towards buildings being designed for a class or category of occupant without knowing the specific occupant.&amp;nbsp; You see this in retail malls, office buildings, and more.&amp;nbsp; As time moves on, a larger percentage of buildings are designed for a generalized use and a smaller percentage customized for the buyer.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Applications are following the same trend (although lagging the construction industry by a number of decades).&amp;nbsp;&amp;nbsp; We see major investments in some pieces of software and then surprisingly quick-and-dirty implementations of others.&amp;nbsp; We see renovation of applications across releases with some aspects of the application remaining intact while other aspects may change many times over the lifetime of the code.&amp;nbsp; Finally, we are gradually seeing the creation of patterns or classes of applications and supporting infrastructure to ease their development.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;This talk will cover a number of parallels between buildings and applications.&amp;nbsp; We intend to show that the same forces that have shaped the building industry are shaping the development of applications.&amp;nbsp; It is possible to look to the building industry to tell us where applications will be going. &lt;p&gt;Some (but not many) of you may have seen this talk a few years ago but it is still guaranteed to make you think differently about the composition and evolution of applications.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;And, finally, the closing general session at which the poor attendees have no alternative entertainment but listening to me!&amp;nbsp; The organizing folks offered me this spot and asked me what I wanted to present.&amp;nbsp; Since I was curious about data centers and felt REALLY uneducated, I had to select that as a topic.&amp;nbsp; This led me to the following title and abstract for the big presentation. &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;Green Computing through Sharing&lt;br&gt;&lt;/u&gt;&lt;/b&gt;Reducing both Cost AND Carbon&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Data centers consumed 1.5% of the total electricity in the US in 2006 and are on track to double as a percentage every five years. It is about 2% of the US total in 2008. Western Europe’s use is increasing at a slightly faster rate (from a slightly lower base percentage). The consumption of electicity within data centers is of significant financial and environmental importance.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Where the heck is all this power going? Why is the electrical load increasing so much? What can be done about it?&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;This talk will examine both traditional and emerging data center designs. We will start by examining how a data center is laid out, constructed, and managed. We will show two emerging trends: the change to designing data centers for the optimization of power and the emergence of new economies of scale in data centers which is contributing to the drive towards cloud computing. Microsoft is actively moving to compete in the space of cloud computing as we are seeing at the PDC (Professional Developers Conference) a few weeks before TechEd EMEA Developer.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Next, we will examine the sources of waste in the system today and examine why so many of our resources are underutilized. Because we are reluctant to share computing resources, they are left idle much of the time. Why is this currently the dominant choice? What can be done in the design of applications, systems, and data centers to make them more green (both carbon and cash)? What can developers do to make a difference?&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Anyway, I am super excited to be going to Barcelona and humbled by the trust and opportunity I've been given!&amp;nbsp; Hope to see you there!&amp;nbsp; If so, please come up and say hi!&amp;nbsp; In the meantime, I'm going to work on my slides... &lt;p&gt;- Pat &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9002425" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>First You Live, Then You Die, Live Now!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2008/10/10/first-you-live-then-you-die-live-now.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2008/10/10/first-you-live-then-you-die-live-now.aspx</id><published>2008-10-10T16:18:17Z</published><updated>2008-10-10T16:18:17Z</updated><content type="html">&lt;p&gt;I didn't think I wanted to blog about this but it's been rattling around inside of me so I thought I would share it!&lt;/p&gt; &lt;p&gt;Life is short and life is precious... none of us know when our time is up and we all need to hold close what is dear to us.&lt;/p&gt; &lt;p&gt;Monday evening, Sept 29th, I was away from home for the evening at a Microsoft internal conference.&amp;nbsp; At around 10:30PM, I checked the local newspaper and found out that a friend of mine, Keith Grinstein, had passed away the day before.&amp;nbsp; Coverage was in the &lt;a href="http://seattlepi.nwsource.com/business/381100_obitgrinstein30.html"&gt;Seattle Post-Intelligencer&lt;/a&gt;, &lt;a href="http://www.bizjournals.com/seattle/stories/2008/09/29/daily6.html"&gt;Puget Sound Business Journal&lt;/a&gt;, and later in the &lt;a href="http://seattletimes.nwsource.com/html/localnews/2008214675_grinsteinobit30.html"&gt;Seattle Times&lt;/a&gt;.&amp;nbsp; A few days later, a nice article was in &lt;a href="http://www.crosscut.com/business-technology/18304/Remembering+Keith+Grinstein/"&gt;Crosscut&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Keith was my neighbor and I really, really liked him and really, really like his wife, Claire.&amp;nbsp; We'd only been out to dinner once as the two couples and kept talking about wanting to set up another dinner.&amp;nbsp; I would see Keith at least once a week hanging around in the lobby of the building we share.&amp;nbsp; We all live on top of a hotel and there are folks working for the hotel down in the lobby all the time.&amp;nbsp; It is a busy and vibrant place.&amp;nbsp; Keith had been a successful entrepreneur and businessman.&amp;nbsp; He was a lawyer, did a stint as an aid to various politicians, worked in telecommunications (he was formerly CEO of NexTel amongst other things), was an early investor in Amazon, and much more.&amp;nbsp; He had set his life up the way he wanted it and was now doing venture capitol work out of a small company he set up with some friends.&amp;nbsp; His office was one block away and he spent most mornings down in the "Studio" area off the hotel lobby where you can get breakfast.&amp;nbsp; He was there for a couple of hours each day, pacing around, doing business over his cell phone, and teasing, laughing, and smiling with whoever he would encounter.&amp;nbsp; Keith's wife, Claire, is a beautiful, vibrant, fun, and hard-working ophthalmologist.&amp;nbsp; Keith had the energy to be on countless boards of charitable organizations.&amp;nbsp; He was on the board for our home owner's association.&amp;nbsp; One week before he passed away, Keith and Claire opened their home to 300-400 people on a condo tour to benefit the Pike Place Market.&lt;/p&gt; &lt;p&gt;While Keith was certainly not my closest friend nor I his, it is so very hard to see such a vibrant, good, kind, productive, and funny man go so suddenly.&amp;nbsp; In our building, we have a community and it is hurting from the loss.&amp;nbsp; The wonderful people working in the lobby are so sad... they interacted with Keith almost every day.&amp;nbsp; Miles, one of the concierges, said "I miss Keith pacing back and forth across the lobby in his bare feet doing business over the cell phone in his loud and laughing voice".&amp;nbsp; Denny, the general manager of the hotel, said that two days before he passed away, Keith had his head stuck through the door of Denny's office making him laugh hysterically.&amp;nbsp; None of this surprises me.&lt;/p&gt; &lt;p&gt;We couldn't go to Keith's funeral as my wife, Lisa, had sinus surgery last Monday (she is doing fine).&amp;nbsp; About two hours after the surgery, she was getting ready to go home and Lisa said "I couldn't be more thrilled with the surgery... I just wish we had been able to go to the funeral!".&amp;nbsp;&amp;nbsp; The surgeon said, "What, Keith's funeral?".&amp;nbsp; We had not had any discussion of Keith with him but the doctor had served on a charity board with Keith and had known him for years.&amp;nbsp;&amp;nbsp; I've heard reports that the gathering was standing room only with over 1000 people in attendance.&amp;nbsp; It would be amazing to say how many lives Keith had touched in his 48 years but I saw his spirit and that makes it all seem so plausible.&lt;/p&gt; &lt;p&gt;What can you say when a wonderful person's life is cut short?&amp;nbsp; My dear friend, Jim Gray, frequently said, "First you live, then you die, live now!"&amp;nbsp; It is SO true!&amp;nbsp; I miss Keith...&lt;/p&gt; &lt;p&gt;- Pat &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8994235" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>A Wonderful Few Days at a Wedding in Chicago</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2008/09/01/a-wonderful-few-days-at-a-wedding-in-chicago.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2008/09/01/a-wonderful-few-days-at-a-wedding-in-chicago.aspx</id><published>2008-09-02T04:53:31Z</published><updated>2008-09-02T04:53:31Z</updated><content type="html">&lt;p&gt;Blogging on the bus again!!&amp;nbsp; This was written on August 18th and 19th but it's taken a few weeks to get around to editing the photos...&amp;nbsp; No computer stuff in this blog, just personal fun!&lt;/p&gt; &lt;p&gt;So, on Wednesday, August 13th, Lisa and I flew to Chicago to attend a wedding of a friend from our building in Seattle.&amp;nbsp; We met John at the building in which we live.&amp;nbsp; He recently fell in love with a wonderful lady named Helen and when we were invited, we had to say yes!&amp;nbsp;&amp;nbsp; Neither of us had been to Chicago (I am NOT counting two work trips where I didn't get out of the conference rooms).&amp;nbsp;&amp;nbsp; We were very excited to go and simply had the BEST time.&lt;/p&gt; &lt;p&gt;The wedding was at the downtown Ritz-Carlton right next door to the John Hancock Tower.&amp;nbsp;&amp;nbsp; As we were leaving home and walking out the front of the building to get to the Seattle airport, we saw John and Helen loading up to go!&amp;nbsp;&amp;nbsp; After some hugs, we determined that they we on an Alaska airlines flight landing 30 minutes before our United flight and we would see them at the hotel later in the evening since they were having dinner with Helen's parents who live in Chicago.&amp;nbsp;&amp;nbsp; We landed, got to the hotel, unpacked, and had dinner in the hotel.&amp;nbsp; We stayed up late Wednesday night drinking at chatting with the almost newlyweds since we were the first to arrive into town.&lt;/p&gt; &lt;p&gt;Helen is a beautiful Chinese lady originally from Beijing and an only child.&amp;nbsp; Her father came over to become a university professor (I think in material sciences) and started a successful company... the real American dream!&amp;nbsp;&amp;nbsp; John is from Philadelphia and is the 11th of 12 children from an Irish family.&amp;nbsp;&amp;nbsp; He has worked his butt off for years in the financial industry and has held amazing positions at very influential companies having climbed up solely with his wits, hard work, and honor.&amp;nbsp; It is a joy to have them both as friends.&amp;nbsp; They waited to later in life to marry since neither of them found their true love until recently.&amp;nbsp; Just watching them together (and knowing they are our neighbors) is so cool!&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20012.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 012" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20012_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Thursday, August 14th -- Walking, checking out the Chicago Spire, an amazing dinner, and partying with new friends!&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;We were going to be attending the wedding on Saturday but had Thursday and Friday as a mini-vacation to acquaint ourselves with downtown Chicago.&amp;nbsp;&amp;nbsp; The weather was perfect!&amp;nbsp; The town was alive and pumping.&amp;nbsp; We were in the middle of the Magnificent Mile of shopping on Michigan Avenue and we just had a blast.&amp;nbsp;&amp;nbsp; After sleeping in on Thursday, we had to try Chicago Pizza!&amp;nbsp;&amp;nbsp; We headed to Gino's East and were one of the first there for lunch (since this was our breakfast after sleeping in).&amp;nbsp; I wanted to try deep dish pizza.&amp;nbsp;&amp;nbsp; Lisa wanted a thin crust... So, not wanting either of us to be disappointed, we ordered both!&amp;nbsp;&amp;nbsp; It takes a LONG time for deep dish pizza...&amp;nbsp; When they both came, we were astonished that it is DEEP dish pizza!&amp;nbsp;&amp;nbsp; It seemed like a lasagna more than like a pizza.&amp;nbsp; I actually liked Lisa's pizza better!&amp;nbsp;&amp;nbsp; The locals told us later that it is always better the next day after sitting in the refrigerator all night.&amp;nbsp;&amp;nbsp; I'm not convinced!&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20025.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 025" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20025_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Next, since Lisa and I are fascinated by cool buildings, we went to the presentation center for the &lt;a href="http://en.wikipedia.org/wiki/Chicago_Spire"&gt;Chicago Spire&lt;/a&gt; (also &lt;a href="http://www.thechicagospire.com/"&gt;see&lt;/a&gt;).&amp;nbsp;&amp;nbsp; This condo building will be 2000 feet tall hand hold about 1100 homes in it!&amp;nbsp; It is a really novel architecture right where the Chicago River meets Lake Michigan.&amp;nbsp;&amp;nbsp; It will punch up on the Chicago Skyline about 500 feet taller than the Sears' Tower and be the tallest building in North America when it opens in 2012.&amp;nbsp; The construction is just about at ground level now.&amp;nbsp;&amp;nbsp; Each of the 1100 (or so) homes has a different floor plan since the tower gets gradually smaller as it rises and the window (and structural) placement gradually rotates (about 2.5 degrees per floor).&amp;nbsp; It was a BLAST to see the project even though we are currently quite content with our condo home in Seattle that we are planning to move into next year (and the commute to Redmond from downtown Chicago would be harder than from downtown Redmond).&amp;nbsp; Still, it was fascinating checking it out and we will certainly remember on subsequent visits when it is a world famous landmark!&lt;/p&gt; &lt;p&gt;After leaving the Chicago Spire offices, we walked to &lt;a href="http://en.wikipedia.org/wiki/Navy_Pier"&gt;Navy Pier&lt;/a&gt; which is wonderful public pier extending into Lake Michigan with amusement rides and boat tours and much more.&amp;nbsp; There were lots of people just having fun in the sun on a beautiful day.&amp;nbsp; Soon, the roar of the jet engines told us that the &lt;a href="http://en.wikipedia.org/wiki/Blue_Angels"&gt;Blue Angels&lt;/a&gt; were in town!&amp;nbsp; Now, we had just spent &lt;a href="http://blogs.msdn.com/pathelland/archive/2008/08/07/seafair-in-seattle.aspx"&gt;an afternoon watching the Blue Angels&lt;/a&gt; less than two weeks ago!&amp;nbsp; Also, Lisa had bumped into the pilots at the &lt;a href="http://www.wac.net/"&gt;Washington Athletic Club&lt;/a&gt; where we exercise.&amp;nbsp; The WAC is where they stay when in Seattle and Lisa had a wonderful conversation with these fine servicemen.&amp;nbsp; So, when we saw them flying over us again, it was just a LOT of fun to watch them practice on Thursday.&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20053.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 053" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20053_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20029.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 029" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20029_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20037.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 037" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20037_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20039.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 039" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20039_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20042.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 042" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20042_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20043.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 043" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20043_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20046.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 046" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20046_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20047.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 047" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20047_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20052.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 052" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20052_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;By 3:30PM, we needed to start our walk back to the hotel as we had 6:00PM dinner reservations at Charlie Trotter's Restaurant and needed to get all dressed up!&lt;/p&gt; &lt;p&gt;So, Lisa had heard about &lt;a href="http://www.charlietrotters.com/restaurant/"&gt;Charlie Trotter's&lt;/a&gt; and we were told it was one of the finest restaurants in the world.&amp;nbsp; Now, you never know how that should be interpreted but we have to say, it was phenomenal!&amp;nbsp; There was a seven course menu with wine pairing.&amp;nbsp; A coat and tie is required and it was my first opportunity to try out my new suit (since the old one from 18 months ago was too loose).&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20001.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 001" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20001_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;We had the most amazing food and had a wonderful time!&amp;nbsp;&amp;nbsp; They have two seatings (6PM and 9PM) and by 8:30, we were heading back to the hotel.&amp;nbsp; Unfortunately, Lisa was getting a headache so she crashed for the night.&amp;nbsp; I shot a text message to the groom but the recently arrived gang was still at dinner so I walked and explored the beautiful city in the Magnificent Mile area on an absolutely lovely evening.&amp;nbsp; The place was abuzz with action and it felt SO good to walk and burn some calories.&lt;/p&gt; &lt;p&gt;Soon, I was meeting some of John and Helen's friends and family and we were out partying!&amp;nbsp; Helen's friend Eva is currently living in Shanghai.&amp;nbsp; Most of John's friends are from Washington DC but his family (six brothers and five sisters) are from Philadelphia.&amp;nbsp; I met Mike and Karen (from Austin), Reza (from DC), TJ and Emily (from DC), and John's brother, Tony!&amp;nbsp;&amp;nbsp; John, Tony, and I closed the place down and had a blast!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Friday, August 15th -- Sushi Lunch, The Bus Tour, the Boat Tour, and Meeting more friends!&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;So, I slept in until 10AM (Lisa had popped to life at around 8AM but let me sleep).&amp;nbsp; We started by tracking down sushi for my lovely (sushi-loving) wife.&amp;nbsp; We had a lovely lunch and the set out to figure out what to do.&amp;nbsp; We decided to hop onto one of those double-decker busses where you can sit on top, see a LOT, and get a sunburn.&amp;nbsp; We did all these!&lt;/p&gt; &lt;p&gt;We rode around on the tour bus for two hours in the sun and saw SO many fascinating buildings, parks, the Chicago River, and more.&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20003.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 003" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20003_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20006.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 006" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20006_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20014.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 014" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20014_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20021.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 021" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20021_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20115.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 115" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20115_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20089.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 089" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20089_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20101.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 101" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20101_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20105.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 105" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20105_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20106.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 106" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20106_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20112.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 112" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20112_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20114.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 114" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20114_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20140.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 140" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20140_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20161.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 161" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20161_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20185.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 185" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20185_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20218.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 218" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20218_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20220.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 220" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20220_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20224.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 224" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20224_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;We decided to bail out near the Chicago River and walk down to Grant Park.&amp;nbsp;&amp;nbsp; This would only lose us the last mile of the tour loop and that was the &lt;a href="http://en.wikipedia.org/wiki/Magnificent_Mile"&gt;Magnificent Mile&lt;/a&gt; of shopping and we had already walked that.&amp;nbsp;&amp;nbsp; As we crossed the river, we saw a tour boat on the river and decided that would be more fun and hiked over to Navy Pier (where we already knew they originated).&amp;nbsp; So, off we were on an "Architecture Tour" from a boat up the Chicago River.&amp;nbsp;&amp;nbsp; This time, it was an hour in the sun and again, snapping photos like crazy!&amp;nbsp;&amp;nbsp; Here's some of the best!&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20226.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 226" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20226_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20234.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 234" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20234_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20242.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 242" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20242_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20245.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 245" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20245_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20246.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 246" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20246_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20247.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 247" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20247_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20251.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 251" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20251_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20255.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 255" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20255_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20256.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 256" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20256_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20261.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 261" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20261_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20266.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 266" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20266_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20277.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 277" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20277_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20279.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 279" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20279_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20282.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 282" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20282_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20284.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 284" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20284_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20288.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 288" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20288_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20290.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 290" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20290_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20291.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 291" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20291_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20317.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 317" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20317_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20292.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 292" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20292_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20293.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 293" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20293_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20310.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 310" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20310_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20311.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 311" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20311_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;We had promised to get back to the hotel by 5:30 to rendezvous with some of the folks flying in from other places.&amp;nbsp; That evening was the rehearsal dinner and, while we weren't in the wedding party, we were hanging out with some of them, their spouses, etc, while the rehearsal itself happened.&amp;nbsp; It was a BLAST.&amp;nbsp; Soon, we were running off with our new friend, Reza, to grab a steak a couple of blocks away while the wedding party did the dinner together.&amp;nbsp; We came back to the hotel later and had drinks with everyone until we bagged it at around 1AM.&amp;nbsp;&amp;nbsp; Again, an absolutely LOVELY day of adventures, partying, and nice people.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20068_1.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 068" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20068_thumb_1.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20065_1.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 065" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20065_thumb_1.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20066_1.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-Aug08- 066" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-Aug08-%20066_thumb_1.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Saturday, August 16th -- A lovely lunch and an AMAZING Wedding!&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;So, again we slept in and rested.&amp;nbsp; We got ourselves going at around 10:30 and knew we couldn't be too adventurous because we needed to be in formal clothing and ready for the wedding by 3:30.&amp;nbsp; We decided that the Chicago River was just TOO cool and so we hiked the mile down Michigan to the River and started exploring for a restaurant along the river to sit for lunch.&amp;nbsp; It took a little while but we found a wonderful place called &lt;a href="http://www.flatwater.us/index.html"&gt;Flatwater&lt;/a&gt; and had a GREAT lunch.&amp;nbsp; Walking back, we explored the hotel lobby for the new Trump Tower along the river.&amp;nbsp; Having an OPEN hotel while &lt;u&gt;major&lt;/u&gt; construction is going on 90 stories above is really cool!&amp;nbsp; But there they are open while the building is being built!&amp;nbsp;&amp;nbsp; We walked back and checked out the &lt;a href="http://www.encyclopedia.chicagohistory.org/pages/2384.html"&gt;Fourth Presbyterian Church of Chicago&lt;/a&gt; which was only a block away from our hotel.&amp;nbsp; It is a beautiful 140 year old church!&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20331.jpg"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20322.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 322" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20322_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 331" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20331_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20324.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 324" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20324_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Here's the building with our hotel, the &lt;a href="http://en.wikipedia.org/wiki/Ritz-Carlton_Chicago_%28A_Four_Seasons_Hotel%29"&gt;Ritz-Carlton&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20338.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 338" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20338_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;And, right next door is the &lt;a href="http://en.wikipedia.org/wiki/John_Hancock_Center"&gt;John Hancock Center&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20341.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 341" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20341_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20327.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 327" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20327_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Soon, it was back to a shower and getting the fancy clothes on.&lt;/p&gt; &lt;p&gt;We showed up at around 3:30 for the 4:00PM wedding and it was gorgeous!&amp;nbsp; Our new friends were arriving and soon we saw the groom (our neighbor, John) and his six brothers.&amp;nbsp; There was a string quintet playing while everyone was seated and a trumpet player just waiting for the "Here Comes the Bride" procession... that's ALL the trumpet player did!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20343.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 343" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20343_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20346.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 346" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20346_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20352.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 352" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20352_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20356.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 356" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20356_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The wedding itself was short and beautiful!&amp;nbsp;&amp;nbsp; Soon, we were outside the room for appetizers and cocktails while the wedding party had jillions of photos taken and the room was reset for dinner.&amp;nbsp; It was wonderful!&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20376.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 376" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20376_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20359.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 359" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20359_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20361.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 361" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20361_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20364.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 364" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20364_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20372.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 372" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20372_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20374.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 374" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20374_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;We sat at dinner with some of John's family (a sister, nephew, niece, and nephew's girlfriend).&amp;nbsp;&amp;nbsp; Let me clarify... the nephew was 30, built like a mountain, and back from his second tour in Iraq.&amp;nbsp; They were fun!&amp;nbsp; There were also some of John's good friends from some of his jobs in the financial industry.&amp;nbsp; During the (lovely) meal, there were four musicians playing traditional Chinese music while we ate.&amp;nbsp; It was amazingly cool.&lt;/p&gt; &lt;p&gt;Then, out came the THIRD group of musicians, a 9 piece orchestra to do the dance music.&amp;nbsp; Helen has spent years doing ballet and John and Helen did the most impressive "first dance" I have ever seen.&amp;nbsp; It was elegant, graceful, and charming.&amp;nbsp; The singer from the musicians said she had seen a LOT of first dances and that was the classiest.&amp;nbsp; Then dancing began, the wedding cake was served, and more and more dancing!&amp;nbsp;&amp;nbsp; Lisa had to (temporarily) abandon her beautiful (but painful) high-heels in order to dance!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20386.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 386" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20386_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20388.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 388" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20388_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20390.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 390" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20390_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20393.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 393" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20393_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20395.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 395" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20395_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20398.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 398" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20398_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20399.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 399" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20399_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Our new friend, Reza, caught the garter belt!&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20404.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 404" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20404_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20407.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Chicago-080817- 407" src="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/AWonderfulFewDaysataWeddinginChicago_DADC/Chicago-080817-%20407_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;We managed to dance on and off until about 1AM.&amp;nbsp; My new suit DEFINITELY needed dry cleaning and we had a wonderful time.&amp;nbsp;&amp;nbsp; It was just one of the classiest and most fun weddings I've ever been to.&lt;/p&gt; &lt;p&gt;So, back to the room by 1AM... Packing... Too little sleep... Catching a ride to the airport by 9AM... Change planes in Denver and glad to be home!&amp;nbsp;&amp;nbsp; Happy (and tired) to be at the gym by 6AM Monday morning... Between the cruise and Chicago, I need more time at the gym!&lt;/p&gt; &lt;p&gt;A trip we won't forget!&amp;nbsp; Chicago is a great city!&lt;/p&gt; &lt;p&gt;-- Pat&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8918425" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>Confidence in the Cloud</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2008/09/01/confidence-in-the-cloud.aspx" /><id>http://blogs.msdn.com/pathelland/archive/2008/09/01/confidence-in-the-cloud.aspx</id><published>2008-09-02T02:13:37Z</published><updated>2008-09-02T02:13:37Z</updated><content type="html">&lt;p&gt;So, one morning a few weeks or so ago, my colleague, &lt;a href="http://www.linkedin.com/ppl/webprofile?action=vmi&amp;amp;id=4361936&amp;amp;authToken=wf0z&amp;amp;authType=name&amp;amp;trk=ppro_viewmore&amp;amp;lnk=vw_pprofile"&gt;Ruwen Hess&lt;/a&gt;,&amp;nbsp; stuck his head in my door and commented on an &lt;a href="http://www.infoworld.com/article/08/08/15/Google_Apps_admins_jittery_about_Gmail_hopeful_about_future-IDGNS_1.html"&gt;Article on Gmail and User Confidence&lt;/a&gt; he had just read.&amp;nbsp; He also pointed out a very interesting &lt;a href="http://status.aws.amazon.com/s3-20080720.html"&gt;Article on the S3 failure from July 20th&lt;/a&gt; (which I had seen before).&amp;nbsp; Now, before I start commenting on the point of this blog post, I want to say that this is NOT meant as a slam on our competitors.&amp;nbsp;&amp;nbsp; This is a complex and nascent space in which we are all learning.&amp;nbsp;&amp;nbsp; I want to complement my former company, Amazon, on the openness exhibited in their discussion of the event of July 20th.&amp;nbsp; It is a new thing for Amazon to explain when stuff happens and I think it is great for the industry and great for Amazon.&amp;nbsp; Google is just fighting the good fight to provide highly available services.&amp;nbsp; They are both fascinating companies and worthy competitors.&amp;nbsp; Still, there are some interesting aspects to this publicly available news.&lt;/p&gt; &lt;p&gt;Of course, this leads my mind down too many different paths.&amp;nbsp; This was going to be a short post but I always get carried away!&amp;nbsp; Let me cover:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Some Observations about Reliable Process Pairs,  &lt;li&gt;Less Is More,  &lt;li&gt;N-Version Programming,  &lt;li&gt;Availability Over Consistency,  &lt;li&gt;Eventual Consistency,  &lt;li&gt;Front-Ending the Cloud, and  &lt;li&gt;It's Going To Be a Fun Ride!&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Some Observations about Reliable Process Pairs&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Let me start by discussing independence of failures (and the need to focus on it to achieve high availability).&amp;nbsp; During the 1980s, when I was developing system software at Tandem Computers, some of our important programs were &lt;a href="http://books.google.com/books?id=S_yHERPRZScC&amp;amp;pg=PA138&amp;amp;lpg=PA138&amp;amp;dq=process+pairs&amp;amp;source=web&amp;amp;ots=JJlAOXGDCg&amp;amp;sig=7U8tr7RlyqGJb6aSAMHUar95TK4&amp;amp;hl=en&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;resnum=5&amp;amp;ct=result"&gt;process pairs&lt;/a&gt;.&amp;nbsp; In this scheme, the same software ran in two different processes on different computers within the distributed system connected via messaging.&amp;nbsp; The goal was that if only one of the computers (and, hence, processes) failed, the other would "take-over" and continue offering service.&amp;nbsp; Of course, it was essential to be able to restart a backup and fill it up with sufficient state to continue the computation.&amp;nbsp; Specifically, every failure and take-over created the need to restart the other process (which used to be the primary).&amp;nbsp; Restarting implies the filling of the new backup with enough state to be ready to take-over.&lt;/p&gt; &lt;p&gt;During this time, I was privileged to be able to see a number of different implementations of process pairs within the Tandem System and, indeed, to do major development and implementation on a large process pair (in addition to a number of other pieces of software with different approaches to fault tolerance).&amp;nbsp;&amp;nbsp; As I lived and breathed the triage of product support, crashes, dump analyses, patches, and major product upgrades, it became clear to me that there was a pattern.&amp;nbsp;&amp;nbsp; Some process pairs were implemented to ship entire data structures.&amp;nbsp; Some were implemented to send very narrow and minimalist descriptions of an operational change in state (e.g. in the transaction manager: "We just advanced transaction-X to the stage of flushing the log records to disk").&amp;nbsp; In a different example, one process pair would send a message containing its entire address space of data to its partner whenever a change occurred!&amp;nbsp; Lots of lively debates raged about the best way to implement reliable process pairs.&lt;/p&gt; &lt;p&gt;I observed that the implementations which sent &lt;u&gt;&lt;em&gt;the minimum amount of data&lt;/em&gt;&lt;/u&gt; seemed to be the most resilient.&amp;nbsp; There were many crash dump analyses that showed a process running along and it would trash some data structure.&amp;nbsp; Then, a checkpoint would copy the data structure to the backup process, including its corruption.&amp;nbsp; (A checkpoint is the message used to communicate state from the primary process to the backup process in a process pair.)&amp;nbsp;&amp;nbsp;&amp;nbsp; Soon, the corruption caused the primary process (and its computer) to crash.&amp;nbsp; Now, the backup (with the corruption received from the checkpoint) takes over to do the work of the process pair.&amp;nbsp; Before long, the backup gets tangled up because of the corruption in the data structure and IT falls over, too!&amp;nbsp;&amp;nbsp; The entire fault tolerant system has succumbed to a single failure because there is insufficient isolation between the parts.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Less Is More&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Communicating less information within a message is usually best.&amp;nbsp; If you send extra stuff, it can cause corruption!&lt;/p&gt; &lt;p&gt;The &lt;a href="http://status.aws.amazon.com/s3-20080720.html"&gt;failure of Amazon's S3 on July 20th&lt;/a&gt; is fascinating and, yet, very typical.&amp;nbsp;&amp;nbsp; S3 uses a &lt;a href="http://en.wikipedia.org/wiki/Gossip_protocol"&gt;Gossip Protocol&lt;/a&gt; to spread state around the network without any master.&amp;nbsp;&amp;nbsp; The knowledge is simply propagated to anyone that will listen and, very quickly, spreads around the network.&amp;nbsp;&amp;nbsp; Unfortunately, there was a bit of poison introduced into the system.&amp;nbsp; Now, it just so happens that this was introduced because Amazon's &lt;a href="http://en.wikipedia.org/wiki/Md5"&gt;MD5 hash protection&lt;/a&gt; of their messages did not cover some of the system status bits, but that is not my main point.&amp;nbsp;&amp;nbsp; All (non-protected) data communications will occasionally have transmission errors and, unfortunately, the stuff being gossiped by S3 was not protected.&amp;nbsp; The article simply describes it as system status state.&lt;/p&gt; &lt;p&gt;I know that in these complex distributed systems,it is essential to keep somewhat accurate track of the state of the system.&amp;nbsp; What is not clear from the Amazon S3 article from July 20th was the shape and form of the system status information and why it did not settle out automatically after the corruption.&amp;nbsp;&amp;nbsp; The article mentions that the system status state is given a higher priority and was starving out the real work as it was gossiping about the system state.&lt;/p&gt; &lt;p&gt;The main point is that when you are communicating information, it is essential to keep the information flow as sparse as possible.&lt;/p&gt; &lt;p&gt;While S3 is a brilliant system which is designed to continue functioning during a data center outage, it had a flaw (which I'm sure is now fixed) which allowed for some bad state to propagate to ALL the data centers.&amp;nbsp; To eliminate the problem, all the data centers were taken offline and then the entire system was restarted.&lt;/p&gt; &lt;p&gt;Let me reiterate my deep respect for the engineering at both Amazon and Google in addition to what I see at Microsoft.&amp;nbsp; Still, as the industry matures, we will all learn by the school of hard knocks to keep the information we spread across failure units as crisp and concise as semantically possible.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;N-Version Programming&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I've never personally experienced it but have read about uses of &lt;a href="http://en.wikipedia.org/wiki/N-version_programming"&gt;N-Version Programming&lt;/a&gt;.&amp;nbsp;&amp;nbsp; In this scheme, specifications of a program are drawn up and presented to N different teams, each of which will produce a version of the system.&amp;nbsp; Now, if you develop 3 versions of the system, you may then implement a voting scheme in which when there are two disparate answers, you pick the one with two votes.&amp;nbsp; The concept is to reduce the probability of a software bug causing the entire system to fail.&amp;nbsp; Of course, one of the challenges in this approach is the development of comprehensive and clear specifications.&lt;/p&gt; &lt;p&gt;The reason I think of N-Version Programming is that it involves the "Less Is More" principle.&amp;nbsp; To do N-Version Programming correctly, you need to isolate your development teams and prohibit any out-of-band communication.&amp;nbsp; If the teams communicate (other than through the specifications), it increases the chances of propagating some corruption.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Availability Over Consistency&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I am not aware of any information from Google about the cause of their outage but, again, we as an industry are still learning how to keep ever more complex applications and services available.&amp;nbsp;&amp;nbsp; The &lt;a href="http://www.infoworld.com/article/08/08/15/Google_Apps_admins_jittery_about_Gmail_hopeful_about_future-IDGNS_1.html"&gt;article cited above&lt;/a&gt;, expresses the dismay of many users as a service they've grown to depend upon is simply not there for a while.&lt;/p&gt; &lt;p&gt;In many cases, the user would gladly take a "good enough" answer NOW rather than wait for the "correct" answer LATER.&amp;nbsp; In fact, it is MORE common to see users just want to keep going.&amp;nbsp; Right now, I am typing most of this on the bus with Windows Live Writer inserting notes to myself about the hyperlinks to fix when I am back online...&amp;nbsp; It's great to just "keep going" even with a reduced experience!&lt;/p&gt; &lt;p&gt;Amazon published a wonderful paper on&amp;nbsp; &lt;a href="http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf"&gt;Dynamo&lt;/a&gt; at &lt;a href="http://www.sosp2007.org/"&gt;SOSP 2007&lt;/a&gt;.&amp;nbsp; This paper provides an excellent overview of the Dynamo storage system (which I had a role in encouraging from the sidelines -- I can't take credit for it).&amp;nbsp; Dynamo is in production with at least two running services and numerous fascinating techniques employed in its implementation.&amp;nbsp; I would encourage you to read the paper.&lt;/p&gt; &lt;p&gt;The reason that I raise this here is that Dynamo provides &lt;u&gt;&lt;em&gt;availability over consistency&lt;/em&gt;&lt;/u&gt;.&amp;nbsp; In a distributed system, it has been &lt;a href="http://citeseer.ist.psu.edu/cache/papers/cs/26764/http:zSzzSztheory.lcs.mit.eduzSztdszSzpaperszSzGilbertzSzBrewer6.pdf/brewer-s-conjecture-and.pdf"&gt;proven&lt;/a&gt; that &lt;a href="http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf"&gt;Brewer's CAP Conjecture&lt;/a&gt; is true... Hence, it is now called the CAP Theory.&amp;nbsp;&amp;nbsp; The idea is that you can have only two of &lt;u&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;/u&gt;onsistency, &lt;strong&gt;&lt;u&gt;A&lt;/u&gt;&lt;/strong&gt;vailability, or &lt;strong&gt;&lt;u&gt;P&lt;/u&gt;&lt;/strong&gt;artition Tolerance.&amp;nbsp;&amp;nbsp; You have have a consistent (and by this, the idea is a &lt;a href="http://en.wikipedia.org/wiki/ACID"&gt;classic transactional ACID consistency&lt;/a&gt;) and partition tolerant system but it may not be available under some partitions.&amp;nbsp; Alternatively, you can have an available system which tolerates partitions but it won't have the classic notion of consistency.&amp;nbsp; Increasingly, I see applications designed with looser notions of consistency.&amp;nbsp; Most of the time, customers really want availability at the expense of classic consistency!&amp;nbsp; New means of expressing looser consistencies are emerging to provide availability even when failures occur!&lt;/p&gt; &lt;p&gt;I learned over 20 years ago working in transactional systems to ASK a customer what their priority was when dealing with an outage.&amp;nbsp; Indeed, some customers wanted you to ensure that every transaction was correct before bringing the system online.&amp;nbsp; At first, it shocked me to learn that many, many customers wanted the system up even if the results of the work might be somewhat "less than perfect".&amp;nbsp; Indeed, I saw this in some banking systems with humongous amounts of money being pushed around.&amp;nbsp; It wasn't that they were doing anything wrong... if the system came up, most of the transfers could be accomplished and overnight interest gathered for them.&amp;nbsp; The funds involved were large enough that hundreds of bank workers would simply stay up all night and verify the accuracy of the work, cleaning up as necessary.&amp;nbsp; The timeliness mattered more than the accuracy!&lt;/p&gt; &lt;p&gt;Again, more often than not, availability matters more than strict (classic) consistency!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Eventual Consistency&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Also fascinating (at least to me) is the area of &lt;a href="http://www.allthingsdistributed.com/2007/12/eventually_consistent.html"&gt;eventual consistency&lt;/a&gt; (and, again, this term implies a LOOSER form of consistency than classic ACID transactions).&lt;/p&gt; &lt;p&gt;The basic idea is that it is OK to diverge opinions across replicas.&amp;nbsp; What is needed is a system that coalesces when communication is reestablished between the replicas.&amp;nbsp; I talked about this in my talk &lt;a href="http://blogs.msdn.com/pathelland/archive/2008/05/02/link-to-the-video-of-the-irresistible-forces-meet-the-movable-objects.aspx"&gt;The Irresistible Forces Meet the Movable Objects&lt;/a&gt;.&amp;nbsp;&amp;nbsp; I am bringing this up &lt;u&gt;&lt;em&gt;because&lt;/em&gt;&lt;/u&gt; (I am arguing) that people really want availability over consistency.&amp;nbsp; When divergent changes are made while disconnected, they also want the messes to clean themselves up as much as possible.&lt;/p&gt; &lt;p&gt;It is my opinion that we will be &lt;u&gt;&lt;em&gt;designing&lt;/em&gt;&lt;/u&gt; systems to support eventual consistency.&amp;nbsp; Part of this trend will be to back away from our traditional separation of storage (e.g. database) from applications.&amp;nbsp; In my opinion, we will evolve towards integrated solutions that combine the storage with the execution of the application in a way that will make it easier to &lt;u&gt;&lt;em&gt;redo the operation by the application&lt;/em&gt;&lt;/u&gt; and create eventual consistency across different executions of the app.&amp;nbsp; This is much easier to do than to cope with reorderability of write operations against a data store.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Front-Ending the Cloud&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;So, I love and believe in &lt;a href="http://en.wikipedia.org/wiki/Cloud_computing"&gt;cloud computing&lt;/a&gt;.&amp;nbsp; I think the entire space will grow and evolve.&amp;nbsp; The cost structures for many companies will make it very cost effective to use big data centers for hosting lots of their computation.&amp;nbsp; As I look at data center cost structures, it is clear that it is going to be a competitive business with many advantages to large data center managers with large economies of scale.&amp;nbsp; In a handful of years, most companies will look to offsite providers for their reliable servers.&lt;/p&gt; &lt;p&gt;Still, I wonder if there will be a market for local front-end systems running a replica of a portion of the applications needed to keep the business going.&amp;nbsp;&amp;nbsp; Not all the computation a company performs is "mission critical".&amp;nbsp; In other words, the company can function with a subset of its computation (at least for a short while).&amp;nbsp; Will there be an emerging space of loosely-coupled eventually consistent computation run either at the local company or at a different hosting company than the main cloud-purveyor?&amp;nbsp;&amp;nbsp; If there is an outage of the cloud services, this front-end would keep the business going.&amp;nbsp; When reconnected, the results of the work would be shared and reconciled.&lt;/p&gt; &lt;p&gt;This is very much like the relationship between Outlook and Exchange.&amp;nbsp; Outlook does a LOT of its functionality while disconnected and that is of huge value.&lt;/p&gt; &lt;p&gt;This may be an interesting economic point -- combining the cost savings of the cloud with independent failures of the front-end.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;It's Going To Be a Fun Ride!&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I am SO glad to be working in this space!&amp;nbsp; It seems to me this is a great time for distributed systems geeks!&lt;/p&gt; &lt;p&gt;- Pat&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8918026" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author></entry><entry><title>The Emissary Design Pattern and RIAs (Rich Internet Applications)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pathelland/archive/2008/08/10/the-emissary-design-pattern-and-rias-rich-internet-applications.aspx" /><link rel="enclosure" type="application/vnd.openxmlformats-officedocument.pres" length="1085585" href="http://blogs.msdn.com/pathelland/attachment/8846730.ashx" /><id>http://blogs.msdn.com/pathelland/archive/2008/08/10/the-emissary-design-pattern-and-rias-rich-internet-applications.aspx</id><published>2008-08-10T18:28:00Z</published><updated>2008-08-10T18:28:00Z</updated><content type="html">&lt;P&gt;Here is a first draft of a new presentation.&amp;nbsp;&amp;nbsp; I gave it a couple of months ago just after TechEd and thought I would share it as I try to write up some of my thoughts on RIAs.&amp;nbsp; I plan to rework this a bit more and present it again at TechEd Europe.&amp;nbsp;&amp;nbsp; The talk is titled: "The Emissary Design Pattern and RIAs (Rich Internet Applications)"&lt;/P&gt;
&lt;P&gt;Abstract:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;The Emissary design pattern was first described in 1999 in the old "Fiefdoms and Emissaries" talk.&amp;nbsp; The concept of a "fiefdom" is very similar to what we today call a service in a Service Oriented Architecture.&amp;nbsp; The fiefdom is a separate trust sphere and transactional boundary.&amp;nbsp;&amp;nbsp; An emissary is a prescriptive pattern for interacting with a service (or fiefdom) which leverages reference data and a deep understanding of the service to prepare requests for service and maximize the chance those requests will comply with the requirements of the service.&amp;nbsp;&amp;nbsp; An emissary may be richly interactive and anticipate the validation requirements of the service.&lt;/P&gt;
&lt;P&gt;The emerging world of RIAs (Rich Internet Applications) is a fascinating blend of a classic smart client and a browser-based web application.&amp;nbsp;&amp;nbsp; In a RIA app, client code runs in the browser but still must comply with the browser enforced sand-boxing and not cause harm to the host client machine.&amp;nbsp; Navigation, naming, linking, and much more are being defined in a fashion drawing from both the web style and the client style.&amp;nbsp; Many of the design issues with RIAs are under discussion today as this support for these applications is emerging.&lt;/P&gt;
&lt;P&gt;This talk examines both the emissary design pattern and the nascent space of Rich Internet Applications.&amp;nbsp; It motivates how one can look to the workflow patterns contained in our parents' use of paper forms for workflow to understand the possibilities of implementing user-centric workflow as shared replicated data.&amp;nbsp; The talk concludes with some preliminary concepts of a shared and declarative definition of the "paper form" model and its constraints and how these may someday be used in the automatic generation of emissary-based RIA clients.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;More RIA stuff soon!&lt;/P&gt;
&lt;P&gt;- Pat&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8846730" width="1" height="1"&gt;</content><author><name>PatHelland</name><uri>http://blogs.msdn.com/members/PatHelland.aspx</uri></author><category term="Architectural" scheme="http://blogs.msdn.com/pathelland/archive/tags/Architectural/default.aspx" /></entry></feed>