<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>PatHelland's WebLog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/pathelland/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/pathelland/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 04:13:13 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Leaving Microsoft and Moving to San Francisco</title>
      <link>https://docs.microsoft.com/archive/blogs/pathelland/leaving-microsoft-and-moving-to-san-francisco</link>
      <pubDate>Fri, 30 Sep 2011 08:03:41 GMT</pubDate>
      <dc:creator><![CDATA[Pat Helland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/pathelland/2011/09/30/leaving-microsoft-and-moving-to-san-francisco/</guid>
      <description><![CDATA[Hello, Friends!
Lots has happened since I last blogged.&nbsp; For almost two years, I've worked on...]]></description>
      <content:encoded><![CDATA[<p>Hello, Friends!</p>
<p>Lots has happened since I last blogged.&nbsp; For almost two years, I've worked on Cosmos, some of the plumbing for Bing.&nbsp; It stores hundreds of petabytes of data on tens of thousands of computers.&nbsp; Large scale batch processing using Dryad with a high-level language called SCOPE on top of it.&nbsp; Working on this team (with some amazing colleagues and friends) has been one of the highlights of&nbsp;my career.</p>
<p>Last June, I was honored to be able to write a paper for the Communications of the ACM.&nbsp; It is called "If You Have Too Much Data, then 'Good Enough' Is Good Enough" and can be found here: <a href="http://cacm.acm.org/magazines/2011/6/108666-if-you-have-too-much-data-then-good-enough-is-good-enough/abstract">http://cacm.acm.org/magazines/2011/6/108666-if-you-have-too-much-data-then-good-enough-is-good-enough/abstract.</a>&nbsp;&nbsp; If was quite an honor and a lot of fun.</p>
<p>Now for some big news, today is my last day at Microsoft after over 15 years (that's 17-1/2 minus the 2 years at Amazon).&nbsp; My wife, Lisa, and I have decided to move to downtown San Franciso.&nbsp; We will be only about 30 minutes drive from the grandkids, my daughter, and son-in-law.&nbsp; We will be about an hour from two of my brothers.&nbsp; Since my father passed away in April, 2010, there has not really been a close family tie to keep us in Seattle.&nbsp; We are really longing to be down where we can see the grandkids.</p>
<p>While I will miss my wonderful colleagues on the Cosmos team, it is time to search for something new.&nbsp; I don't have a new job lined up and plan to move to SF, help unpack, and attend the bi-annual High Performance Transaction Systems workshop (<a href="http://www.hpts.ws">www.hpts.ws</a>) in late October.&nbsp; HPTS&nbsp;has been a big part of my life since 1985.&nbsp; I will see my friends who work in scalable computing and look around to see what opportunities are available in the Bay Area.&nbsp; I know there's lots going on and I am looking forward to returning to California after my 17+ years in the Seattle area.</p>
<p>It is my hope to get a new website and blog going at <a href="http://www.pathelland.com">www.pathelland.com</a> but there's nothing there yet.&nbsp; It's amazing how busy you can be working at Microsoft and preparing to move to California!</p>
<p>If someone wants to contact me, my personal email is <a href="mailto:phelland0215@hotmail.com">phelland0215@hotmail.com</a>.&nbsp;&nbsp;</p>
<p>Thank you all for your interest and kindness through the years...&nbsp; I would really like to offer more thoughts and ideas moving forward but today I am off to my last day of work and my exit interview.&nbsp; You'll hear more from me soon!</p>
<p>All my best,</p>
<p>Pat</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>The Importance of Teams in Software Engineering</title>
      <link>https://docs.microsoft.com/archive/blogs/pathelland/the-importance-of-teams-in-software-engineering</link>
      <pubDate>Thu, 13 May 2010 12:09:14 GMT</pubDate>
      <dc:creator><![CDATA[Pat Helland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/pathelland/2010/05/13/the-importance-of-teams-in-software-engineering/</guid>
      <description><![CDATA[Sorry I haven’t been blogging for a while.&nbsp; Last Fall, I switch to work on Bing Infrastructure...]]></description>
      <content:encoded><![CDATA[<p>Sorry I haven’t been blogging for a while.&nbsp; Last Fall, I switch to work on Bing Infrastructure and have been very, very busy (and having a wonderful time).&nbsp; The projects I’m working on include COSMOS and Autopilot.&nbsp; COSMOS is a petabyte store (working towards being an exabyte store) which runs over tens of thousands of inexpensive computers.&nbsp; In addition to reliable storage, COSMOS supports <a href="research.microsoft.com/en-us/projects/Dryad">Dryad</a> based computation with application development in SCOPE which is a SQL-like language.&nbsp; Some public papers include: <a href="http://research.microsoft.com/en-us/um/people/jrzhou/pub/Scope.pdf ">SCOPE and COSMOS</a>, and <a href="http://research.microsoft.com/en-us/um/people/jrzhou/pub/PGS.pdf">Partitioning and Parallel Plans in SCOPE and COSMOS</a>.&nbsp; The Autopilot team in OSD (Online Services Division which includes Bing) makes hardware selections for our ever-increasing bunch of servers, networking, systems support, automatic deployment and load balancing.&nbsp; See&nbsp; <a href="research.microsoft.com/apps/pubs/default.aspx?id=64604">Autopilot</a>.&nbsp; I have been having a <em><u>blast</u></em> working with the team in Bellevue and a team in Beijing with lots of talented people.</p> <p>Recently, I’ve been trying to pull the various sub-teams together and open up communications and camaraderie within them.&nbsp; This is an approach I’ve taken numerous times since the 1980s and I believe it is super powerful and important.&nbsp; The idea is SO simple that I am always amazed it is not more common.&nbsp; We pick a regular day of the week and meet for lunch on that day.&nbsp; Simply reserve a conference room and have everyone run to the cafeteria (or wherever) and grab their lunch.&nbsp; As people trickle into the room at a few minutes after noon, the discussion begins.&nbsp; Here are some basic rules:</p> <blockquote> <p>1) You want to pick a team size of 10-25ish which has a set of common technology interests. It should include development, test, and program management.</p> <p>2) No topic is off limits but it needs to be broadly interesting to the folks on the team.&nbsp; Realistically, this quickly settles into some challenge the team is facing, some architectural issue, or some customer issue.&nbsp; What I like to do is let it go wherever it goes but watch the folks in the room.&nbsp; Once in a GREAT while, some small group gets into something that is kinda boring the others and you need to steer the discussion back to one of general interest.&nbsp; After a team is used to the meetings, it happens less often.</p> <p>3) One person at a time talks as the discussion moves back and forth.&nbsp; It is important to listen to everyone and let the discussion evolve.&nbsp; No one should dominate the time.&nbsp; The more senior people should contribute (they usually have lots of valuable stuff to add) but they shouldn’t talk for too long.</p></blockquote> <blockquote> <p>4) It is important to try and get as many people (senior and junior) to participate as possible.&nbsp; When someone fresh out of college and new on the team feels they can contribute to the discussion, they feel more like they belong.&nbsp; To ensure this is safe and OK, it needs to be understood that critical responses are not OK.&nbsp; Gently discussing where a proposal may not be the best for some concrete reason is great as long as everyone contributing can feel safe.&nbsp; Of course, healthy and safe teasing and joking around are fun.&nbsp; One thing I’ve learned (by screwing it up) is that you shouldn’t call on the shy people to participate.&nbsp; Sometimes, a really shy person would rather hide under the table than talk.&nbsp; If you call on them, they’ll stop showing up for lunch.&nbsp; Now, when they WANT to speak, it is OK to stop the table to listen (unless the folks at the table have already done the polite thing as they should).&nbsp; It is normal for me to look around the room through the hour and make a mental note of who has not yet contributed.&nbsp; If I have sufficient context, I may try to steer the topic to something near to their interests to make it easy and natural for them to chime in… that’s not threatening to them.&nbsp; When this goes well, you will find that in a team of 15 to 20 everyone (or almost everyone) will have participated during the hour.</p> <p>5) As much as possible, it is good to not cancel the weekly lunch discussions.&nbsp; We all find crunches and deadlines.&nbsp; The team gets busy and has to work its butt off for a few weeks.&nbsp; Still, everyone needs to eat lunch and the emotional decompression with your friends (and talking about the fun challenges in your product) is a good diversion from tracking down those bugs.</p> <p>6) I think it’s important to not prepare for the lunch nor to announce a topic for the lunch.&nbsp; If the topic is known in advance, sometimes people say: “That’s not my favorite topic” and blow off the lunch.&nbsp; If, on the other hand, they get used to not expecting to know the topic and that the sessions are fun, they will show up and it can evolve into something fun.&nbsp; Also, if you have announced: “Sam will talk about XYZ”, it gets really tough to handle when Sam is a bore.&nbsp; Not everyone is capable of keeping a lecture interesting.&nbsp; It is better to say that the lectures are not during the “Friday Lunch Discussions” but are at some other time.&nbsp; You will learn that having a pre-planned topic takes away from the team’s sense of ownership of THEIR time to chat together.&nbsp; If there is a speaker, their won’t be as heavy a participation and it is a different event.&nbsp; </p></blockquote> <p>I like the following definition of the word “Culture”.&nbsp;&nbsp; <u><em>Culture is “the way we do things around here”.</em></u>&nbsp;&nbsp;&nbsp; It’s my experience that once the expectations are set, the team just naturally behaves in accordance with how they are used to behaving.&nbsp; That means you can set this discussion group up and it just happens moving forward.</p> <p>There are many positive results from having these weekly meetings.&nbsp; The members of the team get to know the some of the larger team better than they would have… healthy fun discussions make you LIKE your colleagues.&nbsp; With a team size of 10-25ish, there will always be folks you don’t know as well as you’d like to know.&nbsp; The discussion of the main challenges for the team can forge and evolve the shared vision for the team.&nbsp; It is essential that the broader team understand the big picture and then work down into some of the details of the other pieces.</p> <p>For me, this is both a major investment and a really nice treat.&nbsp; I’m working to provide architectural guidance to all of COSMOS and Autopilot.&nbsp; It’s pretty hard to keep up with all of these efforts and the people involved in them.&nbsp; I’ve wiped out my lunches for the week.&nbsp; Monday is Autopilot’s discussion meeting.&nbsp; Tuesday’s is the COSMOS Store team.&nbsp; Wednesday this week was the first for the SCOPE Compiler and Optimizer team.&nbsp; [Thursday’s are my day to write quietly… like this blog entry.]&nbsp; Friday’s are the Execution Engine’s meeting.&nbsp; I am still trying to figure out which of these days will have TWO meetings so the Manageability team can have a discussion (and I will have to switch off between them).</p> <p>Each time I’ve started a team going with this, there’s quite a bit of confusion before the meeting but afterwards we have a good consensus that it was fun and useful.&nbsp; For me, it allows a precious opportunity to learn about the technology, the people, and how the people interact with their technology.&nbsp; Sometimes, I can contribute some comment here and there which moves the way people think about the goals and direction of the product.&nbsp; Always, it gives me an opportunity to work to help all the members of the team to learn and grow.&nbsp; A healthy team is built out of people who are growing and stretching in their abilities.&nbsp; This requires all the members of the team helping their friends in that process.</p> <p>While typing this blog entry, an email came through from a teammate wanting to start a small effort on a utility.&nbsp; The discussion at lunch yesterday encouraged him to push forward with an idea he and another teammate were thinking about.&nbsp; I’m going to meet with them next week and get to know them better.&nbsp;&nbsp; It is tough to quantify all the ways these discussion help the team!</p> <p>Anyway, I just wanted to share this experience with you.&nbsp; Software is much more than just bits and bytes.&nbsp; Many times, it is building the caring and comfort that allows you to be friends with shared responsibilities and shared goals.&nbsp;&nbsp; Sharing meals and camaraderie make a big difference.&nbsp; An occasional beer is good, too.</p> <p>Great to be blogging!</p> <p>- Pat </p>]]></content:encoded>
    </item>
    <item>
      <title>Trip Report -- HPTS (High Performance Transaction Systems) Workshop -- Part 1 of the Trip Report</title>
      <link>https://docs.microsoft.com/archive/blogs/pathelland/trip-report-hpts-high-performance-transaction-systems-workshop-part-1-of-the-trip-report</link>
      <pubDate>Mon, 02 Nov 2009 09:35:00 GMT</pubDate>
      <dc:creator><![CDATA[Pat Helland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/pathelland/2009/11/02/trip-report-hpts-high-performance-transaction-systems-workshop-part-1-of-the-trip-report/</guid>
      <description><![CDATA[Trip Report – HPTS (High Performance Transaction Systems) Workshop – Oct 25th-28th, Asilomar,...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Trip Report – HPTS (High Performance Transaction Systems) Workshop – Oct 25<SUP>th</SUP>-28<SUP>th</SUP>, Asilomar, Pacific Grove, CA.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>(</FONT><A href="http://www.hpts.ws/"><FONT color=#0000ff size=3 face=Calibri>www.hpts.ws</FONT></A><FONT size=3 face=Calibri>).<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>This is Part 1 of the trip report…<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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!</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><U><SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 16pt; mso-bidi-font-size: 11.0pt"><FONT face=Calibri>Overview:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></SPAN></U></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>HPTS was founded by Jim Gray, Dieter Gawlick, Andreas Reuter, and some other industry luminaries in 1985.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is a workshop designed to bring together practitioners and academics working in super large, scalable, high throughput systems.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>There is a lot of overlap between this community and the folks doing DBMS systems.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In the early days, the biggest challenges included getting 1000 transactions per second through a mainframe.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>At the time, that felt like getting a man to land on the moon and come back safely.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Now, this includes huge web based sites like Amazon, eBay, Google, and Bing.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Our area of interest also includes integrating massively complex heterogeneous Enterprise and Internet (B2B) systems.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Of course, we are fascinated with hardware trends, networking, and all sorts of geeky stuff.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>I first attended HPTS in 1985.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It was a magic opportunity to be with legends in the industry.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Gene Amdahl drove up in his Rolls Royce and parked next to my beat up old van.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It was a magical 3 day gathering.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Let me explain the Asilomar Conference Center (</FONT><A href="http://www.visitasilomar.com/"><FONT color=#0000ff size=3 face=Calibri>www.visitasilomar.com</FONT></A><FONT size=3 face=Calibri>).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Asilomar sits right by the Pacific Ocean between Pebble Beach and Monterey in the Pine Trees and includes dunes leading right to the beach.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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. <SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>It is normal to walk out of your room, hear the surf, and see deer walking around.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I absolutely love the evenings by the real wood fireplaces. </FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>In 1985, Gray decided we could all go cheap and lined us up to sleep four in a room.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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).<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>After the first night, Hector informed us we ALL snored too much and moved to stay in a hotel down the street.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>I’ve attended HPTS every two years (for three days) since 1985.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I was program and general chair in 1989 and general chair in 2007.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Since Jim Gray’s disappearance, I’ve assumed the role of local arrangements chair and “godfather” – kinda’ watching out for the whole workshop.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This year, James Hamilton (now of Amazon) was general chair and Margo Seltzer (of Harvard) was the program chair.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>We had a wonderful (but exhausting) three days and I will tell you about them soon.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I will remain as local arrangements chair and “godfather”.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>So, every HPTS starts with Sunday dinner and a casual beer/wine afterwards.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Monday is all day presentations and after dinner we have poster sessions (volunteer 10 minute talks – we had 15 this year).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Tuesday is all day presentations and this time we had a 90+ minute panel after dinner.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Finally, we have sessions Wednesday morning and adjourn after lunch.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is a long, exhausting, and exhilarating 3 to 4 days.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>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).<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>As I type this the following weekend, I am still tired from the sleep shortage!</FONT></P>
<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">
<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><FONT size=3 face=Calibri>So, let’s get to the content:</FONT></P></DIV>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-VARIANT: small-caps; FONT-SIZE: 18pt; mso-bidi-font-size: 11.0pt"><FONT face=Calibri>Session 1) The New Memory Hierarchy – <BR><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Session Chair: David Cheriton (Stanford)<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><U><FONT face=Calibri><FONT size=3>Steve Kleiman – Chief Scientist at NetApp:<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>“Flash on Compute Servers”<o:p></o:p></FONT></FONT></U></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Steve started with a discussion of hardware trends (not all of which I was able to capture in my notes).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>He observed that with multi-core and VMs, more bandwidth (BW) and IOs per Second (IOPS) are needed for each node.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Also, as a trend, Steve pointed out that flash memory has more than 5X the IOPS and less than 100 microseconds access time.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It has been the case that a single application per host has somewhat limited ability to consume bandwidth.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Considering flash in a networked storage environment, it does not have the same benefits of sharing.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Since there are enough IOPS in a flash drive to placate most apps, the equation changes.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Is network storage fast when the network latency is noticeable compared to flash?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>We can do 5 SSDs to get 40,000 IOPS but will the latency be a problem?</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>We will see flash on compute servers.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Servers can already accommodate flash and it is cheap enough with 250GB &lt; 10% of the server cost.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT face=Calibri><FONT size=3><U>A new tier in the storage hierarchy</U>:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Steve argues we will see storage split into two tiers: the <U>IOPS tier</U> and the <U>capacity tier</U>.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It will be the new “primary storage”.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>The Capacity-Tier will offer the best $/GB – Deduplication, compression, and good serial performance.</FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Steve then outlined three broad categories of Host-Based Flash usage.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>DAS (which I think means “Direct Access Storage but my notes failed me), Primary Storage Service, and Cache.</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><FONT size=3><U>Host-Base Flash: DAS</U>:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Single point of failure and so you would use normal backup or application based replication like Exchange or Oracle).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>You can have boot files, VM, temp files.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><FONT size=3><U>Host-Based Flash: Primary Storage Service</U>:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>File or Block.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Requires mirroring or RAID to peers.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Allows capacity sharing.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Steve believes it is likely that Microsoft and VMWare are likely to compete here – the integration of this is complex.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Making reliable primary storage is hard and this may impact the roles of folks in IT.</FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><FONT size=3><U>Host-Based Flash: Cache</U> –File or block.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This will be a writethrough cache.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If you do a write-back you will occasionally lose stuff.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Using a cache can allow for a centralized data management (in a remote network storage server).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This can help with keeping the current IT storage management roles by providing an automatic “tiering”. </FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>So, data management spans the IOPS tier and the Capacity tier.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>You need to have automated data movement and global access.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is impractical to have manual placement at huge scale.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is going to be important for us to have a technology independent language to specify the desired properties for the data.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Say what properties you want and not how to get them.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>New SLO (Service Level Objectives) for Max Latency, Bandwidth, Availability, etc.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>In summary, the new host-based flash is the new IOPS-Tier.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It will replace high-performance primary storage in the cloud.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This IOPS-Tier s is not going to be economical as a secondary or as archival since the $/GB is higher than spinning media.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>The Capacity Tier will be implemented as network storage.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is optimized for the best $/GB.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Data management between these two tiers will be important.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>There was a lot of discussion around the SLO (Service Level Objectives).<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Steve indicated that their vision was not super-flexible set of knobs but more a small set of options for defining the data characteristics.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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. </FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>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).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Steve answered that there had not been an explicit performance analysis.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Stonebraker observed that enterprises seem to like NAS/SAN but that the Cloud guys are using direct attached storage.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Are the forward looking guys walking from NAS/SAN?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Steve replied there are people very interested in NAS/SAN because it gives them a way to control the data and make servers stateless.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Adding in the IOPS-Tier is a simple extension.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>This was a fascinating and engaging presentation!</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><U><FONT face=Calibri><FONT size=3>Memory Technologies for Data Intensive Computing –Andy Bechtolshein (Sun Computers)<o:p></o:p></FONT></FONT></U></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>What an honor to get Andy to come and present to us.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Unfortunately, I didn’t get a chance to chat with him personally as he was only at the workshop for a short while.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Andy is a well respected and talented hardware engineer who was a founder of both Sun Microsystems and of Arista Network.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>His slides are not going to be posted and I typed as aggressively as I could during his lightning fast presentation.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I would recommend you look both at my friend James Hamilton’s blog post of Andy’s talk at: </FONT><A href="http://perspectives.mvdirona.com/2009/10/26/AndyBechtolsheimAtHPTS2009.aspx"><FONT size=3 face=Calibri>http://perspectives.mvdirona.com/2009/10/26/AndyBechtolsheimAtHPTS2009.aspx</FONT></A><FONT size=3 face=Calibri> and then read my notes attached below.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I have not attempted to coalesce the information between James’ notes and mine and there may be overlap.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>James has done a nice job cleaning his up and I will focus on some of the other sessions in my editing.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Here’s my rough notes:</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-add-space: auto; mso-list: l0 level1 lfo3" class=MsoListParagraph><SPAN style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><SPAN style="mso-list: Ignore"><FONT size=3>è</FONT><SPAN style="FONT: 7pt 'Times New Roman'"> </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></B></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Semiconductor Technology Roadmap<o:p></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto" class=MsoListParagraphCxSpFirst><FONT size=3 face=Calibri>Still increasing </FONT></P>
<P style="MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><FONT size=3 face=Calibri>Number of devices on the chip still doubling</FONT></P>
<P style="MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><FONT size=3 face=Calibri>Flash is increasing faster than logic and DRAM – Flash faster than Moore’s law</FONT></P>
<P style="MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><FONT size=3 face=Calibri>Between 2010 and 2022, Flash should increase by 100X – After that (10nm) optical problems may become severe – don’t know after 2022</FONT></P>
<P style="MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto" class=MsoListParagraphCxSpLast><FONT size=3 face=Calibri>&lt;more content lost…&gt;</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Emerging devices<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Carbon-nano tubes</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Graphene Nanoribbons</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>… &lt;more that I lost…&gt;</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Silicon Roadmap Predictions<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>128X increase in transistors by 2022</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>1000 cores per chip by 2022</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>CPU Module Roadmap<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><FONT size=3>IO bandwidth will not allow the same bandwidth per core.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>IO going a little faster but number of pins hasn’t increased in 10 years.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>1000 cores would need several terabytes of bandwidth to memory.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Of course, this would need power and cooling</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>&lt;more lost…&gt;</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>CPU Challenge<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><FONT size=3>Power per core --<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Clock rates not increasing – need lower power level per core</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>&lt;more lost…&gt;</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Power efficiency – Increasing frequency – a Square effect on the power<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>CPU power strategy – </FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Clock rates look flat</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>High clock rates are less power efficient</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>To reduce power, simplify architecture</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>&lt;more lost…&gt;</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Multi-Chip 3D packaging<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Thru-Si via Stacking</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Need to combine CPU and Memory on one module</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>High Density 3D Multi-Chip Module<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Benefits of MCM Packaging<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Enables much higher memory bandwidth</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>More channels, wider interfaces, faster I/o</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Greatly reduces power</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Challenges with MCM packaging<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Total Memory – 64 device &lt;…??...&gt;</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>With 64 GNB/device – 4TB</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Assuming 1K cores – 4BG/core</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>MCM enables <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Fabric I/O<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>2010 –1 32 Gb/direction</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>2020 1.73Tbps/direction</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Mesh or higher radix fabric topologies</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Expected Link Data Rates<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>10GBps shipping today</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>2012 – 25 GBps</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>2016 – 50 GBPS</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>2020 – 100 GBps</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>ExaScale Storage<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Forget Hard Disks – Disk are not getting faster</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Flash Experience so far<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Not easy to get to 1000000 IOPS</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Writes are a problem</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>SAS/SATA interface not optimal</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Direct PCI-Express interface looks more promising.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>– Move FLASH closer to the CPU<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>-- Lower latency and more throughput</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Flash in the Memory Hierarchy<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Flash is not random access<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>more like a block device<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>-- random access about 1000 slower than DRAM</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Flash can be used as a stable storage device<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>-- writes are committed – Supercap magic behind the scenes.</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><FONT size=3 face=Calibri>Tremendous throughput and size – terabytes of capacity</FONT></B></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Flash Latency<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Latency expected to drop by a factor of 10</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Flash transfer rates will double each year for the next several years. – 250MBS/sec 2012</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Flash prices<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>2004 -- $100 GB</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>2009 $1 – GB</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><FONT size=3>2012 -- $.25 / GB<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Prices are dropping dramatically – </FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Flash Summary<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.75in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>FLASH will be very expensive, very dense,</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.75in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Costs falling by 50% per year</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.75in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Access times falling by 50% per year</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Tech Summary<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Moore’s Law for at least 10 more years</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Frequency Gains<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>not happening</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Flash will be interesting</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Software Challenges<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Limits of App Parallelism</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1.2in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Need to exploit Parallelism</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-VARIANT: small-caps; FONT-SIZE: 18pt; mso-bidi-font-size: 11.0pt"><FONT face=Calibri>Session 2) Using the New Memory Hierarch <BR><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Session Chair: David Cheriton (Stanford)<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><U><FONT face=Calibri><FONT size=3>Scaling-Out without Partitioning – Phil Bernstein and Colin Reid (Microsoft)<o:p></o:p></FONT></FONT></U></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>This session was, in many ways, one of the most interesting at HPTS.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Phil did a great job explaining a radical new approach to scale-out and serializable database!</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Hyder is a software stack for transactional record management.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It can offer full database functionality and is designed to take advantage of flash in a novel way.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Most approaches to scale-out use partitioning and spread the data across multiple machines leaving the application responsible for consistency.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>In Hyder, the database is the log, no partitioning is required, and the database is multi-versioned.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Hyder runs in the App process with a simple high-performance programming model and no need for client server.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This avoids the expense of RPC.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Hyder leverages some new hardware assumptions.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I/Os are now cheap and abundant.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Raw flash (not SSDs – raw flash) offers at least 10^4 more IOPS/GB than HDD.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This allows for dramatic changes in usage patterns.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>We have cheap and high performance data center networks.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Large and cheap 64-bit addressable memories are available.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>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.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>The Hyder system has individual nodes and a shared flash storage which holds a log.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In this fashion, many servers can be pushing records into the log and they are allocated a location by the log controller.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It turns out that this simple centralized function of assigning a log location on append will adjudicate any conflicts (as we shall see later).</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The Hyder database is stored in a log but it IS a binary tree.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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. </FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>The Binary Tree is multi-versioned.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>You do a copy-on-write creating new nodes and replace nodes up to the root.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The transaction commits when the copy-on-write makes it up to the root of the tree.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>For transaction execution, each server has a cache of the last committed state.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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].<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>So, each transaction running in a single server reads a snapshot and generates an intention log record.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>The transaction gets a pointer to the snapshot and generates an intention log record.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Updates are copy-on-write climbing up the binary tree to the root.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Log updates get broadcast to all the servers – everyone sees the log.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Changes to the log are only done by appending to the log.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>New records and their addresses are broadcast to all servers.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In this fashion, each server can reconstruct the tail of the log.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT face=Calibri><FONT size=3>Now we get to transaction commit.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>All machines are marching ahead rolling the log forward.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>When an intention record is generated (indicating a proposed new root for the log), each machine in the cluster checks for a conflict.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If any of the records updated conflicts with previously committed work, the transaction is aborted.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Conflict in this case is traditional read/write conflict using all the classic set of rules for various degrees of consistency.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If there are no conflicts, the transaction is committed.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If there are conflicts, the transaction is aborted.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Conflict detection and transaction commit is done redundantly and predictably at each node.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>So, each node generates an intention log for a transaction it wants to do.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Every server checks for conflicts and then either aborts or commits.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The log order provides determinism.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT face=Calibri><FONT size=3><U>Performance of Hyder</U>:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The system scales without partitioning.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The system-wide throughput of update transactions is bounded by the update pipeline.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Conflict detection and merge can do about 200K txs per second.</FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>The abort rate on write-hot data is bounded by the transaction’s conflict zone.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This is determined by the transactions end-to-end latency.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This conflict zone is about 200 microseconds in the prototype.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is estimated that this would handle about 1500 TPS (<I style="mso-bidi-font-style: normal">assuming all the transaction have conflicts</I>).</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT face=Calibri><FONT size=3><U>Major Technologies</U>:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This is using flash as append only (and it is not using SSD flash but raw flash with a special controller).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The custom controller over raw flash has mechanisms for sync and fault tolerance.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Storage is striped with a self-adaptive algorithm for storage allocation.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It includes a fault tolerant algorithm for a totally ordered log.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Also, it has a fast algorithm for conflict detection and merging of records.</FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT face=Calibri><FONT size=3><U>Status</U>:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Most of Hyder has been prototyped but there is a long way to go.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Phil Bernstein and Colin Reid are working on a paper and HPTS is the first time Hyder has been discussed publicly.</FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Again, this was a wonderful talk with some fascinating and different ideas.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Great work!</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><U><FONT face=Calibri><FONT size=3>A Performance Puzzle:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>B-Tree Insertions are Slow on SSDs (Bradley Kszmaul – Tokutek – Research Scientist at MIT)<BR style="mso-special-character: line-break"><BR style="mso-special-character: line-break"><o:p></o:p></FONT></FONT></U></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>So, this talk was about some surprises in SSD performance in supporting MySQL.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Much of the discussion was about the datasheets for some of the drives not matching the measured reality.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Bradley had measured the value of running MySQL against SSDs and expected the SSDs (with higher IOPS) to get better Btree performance.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Here’s my rough and raw notes:</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Intel X25E Specs<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Read BW up to 250 MB/s</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Write BW up to 170 MB/s</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Random 4KB read rate – 35 KIO/s</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Random 4KB</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>&lt;lost some…&gt;</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Measure Berkeley DB<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Trending to 4500 write per second </FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Performance Model<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>-- <o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Startup cost plus bandwidth cost</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Looking at read performance as a function of block size</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>As block size gets bigger, bandwidth goes up</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Discussion </FONT><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"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">à</SPAN></SPAN><FONT face=Calibri> Margo points out that many Filesystems see large blocks and do read ahead.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>That can perturb the results…</FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>When you read and write large blocks, Bradley sees Filesystems doing the right thing and keeping contiguous blocks adjacent.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>The datasheet for the drive is not matching the reality for larger block sizes</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Mixing reads and writes seems to impact the performance quite a bit…</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>What Block Size to Use?<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><FONT size=3>For point-queries, BTrees are insensitive to block size.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>For range queries, block size if important</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Tension: Large block sizes make range queries faster; Small block sizes make exact match faster</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Set block size so half of the time is accounted by seek, half by bandwidth</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Reads: 50KB for SSD but 500KB-1000KB for rotating disk</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Writes 10KB SSD , 500KB-1000KB for HDD</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Mixed read/write 21KB for SSD</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Cache-Oblivious Approach <o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Use data structures that are fast for any block size</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Also can speed insertions without slowing searches</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Tokutek’s MySQL storage engine uses these ideas.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Discussion: James Hamilton layering of software and release by release changes makes it hard to get predictable behavior.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>When all these releases are separately evolved, the performance behavior is very unpredictable.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Bradley: fragmentation starts messing with this, too.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>James: all the layers interact and we need to measure by the workload and adapt.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The complexity makes performance very hard to predict.</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><U><FONT face=Calibri><FONT size=3>Implications of Storage Class Memories (SCMs) on Software Architectures (C. Mohan – IBM)<o:p></o:p></FONT></FONT></U></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Storage Class Memory (SCM)<o:p></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Mohan gave a very thought provoking talk on the implications of Storage Class Memories.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Where do we need them?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>What good will they do? </FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>If we have non-volatile memory that is as easy to access as DRAM, will we have corruption problems?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Will we see a running system trash the non-volatile memory like it trashes DRAM?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>That dramatically reduces the chance of this happening. </FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Anyway, Mohan’s talk was really thought provoking and enjoyable!<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It was good to see my old friend back at HPTS after taking a stint in India for a few years.</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Raw notes:<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Blurs the distinction between DRAM and Disk</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Industry SCM Activities<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>IBM</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Intel/ST spun out of Numonyx (FLASH and PCM)</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Samsung, Numonyx sample PCM chips –</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>&lt;lost som&gt;</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Speed/Volitility/persistenct<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>DRAM plus SWCM – Fast and persistent</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Persistent storage will not lose data</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Competing technologies for SCM<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Phase Change RAM (most promising)</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>SCM as a part of the storage stack<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>The distinction between RAM and Disk – the line in between is blurring</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Memory-like and also Storage-Like</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>SCM Design Triangle<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Speed – endurance – Cost/bit</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Speed with Write endurance is more memory-like</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Phase-Change RAM<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>When density increases, the failure rate goes up as bits flip more often</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>SCM is on Moore’s law</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>PCM is fast <o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>100-1000 ns</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Architecture<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>SCM may be used as Memory</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>SCM may, alternatively be used as a storage (through IO controllers)</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Discussion </FONT><SPAN style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">à</SPAN></SPAN><FONT face=Calibri> Pat:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Bugs in non-volatile memory can sometimes be preserved</FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>PCM Use Cases<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>PCM as Disk</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>PCM as Staging device</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>PCM as memory</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>PCM as extended memory</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Exploring DBMS as an exploiter of PCM<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Should log records be written directly to PCM?</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Should log be more like Disk (first to buffer and then forced to disk)?</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>PCM is not as reliable as disk </FONT><SPAN style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">à</SPAN></SPAN><FONT face=Calibri> do you need to offload to a disk</FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>If you use Group Commit, it is unclear that PCM helps a DBMS</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>PCM replaces DRAM – Buffer Pool in PC<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>The PCM Buffer Pool access will be slower than DRAM</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Writes will suffer more than reads!</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Should we instead have a DRAM BP backed by a PCM BP?</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Similar to DB2 z in parallel sysplex environment with BPs in coupling facility (CF)</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>But DB2 situation has well defined rules on when pages a move from DRAM CP to CF BP</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Variation was used in SafeRAM work at MCC in 1989</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Assume the whole DB fits in PCM<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Apply old main memory DB concepts design directly</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Shouldn’t we leverage persistence specially?</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Every bit change persisting may not be good!</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Today’s failure semantics has flexibility on tracking changes to DB pages.</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Memory overwrites will cause more damage</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>If every write assumed to be persistent as soon as write completes, then L1 and L2 caching can’t be leveraged.</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>Assume whole DB fits in memory<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Need to externalize periodically since PCM won’t have good endurance</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>If DB spans both DRAM and PCM, hard to figure out what goes where!</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3>What about Logging?<o:p></o:p></FONT></FONT></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.45in; mso-add-space: auto; mso-list: l2 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>If PCM is persistent and whole DB is in PCM, do we need logging?</FONT></P>
<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">
<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><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Of course it is needed to provide at least partial rollback even if data is being versioned (at least to track versions to invalidate)</FONT></P></DIV>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>The end of Monday morning!<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>More soon…<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-add-space: auto; mso-list: l3 level1 lfo4" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>-</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Pat</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>]]></content:encoded>
    </item>
    <item>
      <title>Building Blocks and the Three Bears</title>
      <link>https://docs.microsoft.com/archive/blogs/pathelland/building-blocks-and-the-three-bears</link>
      <pubDate>Mon, 13 Apr 2009 19:41:54 GMT</pubDate>
      <dc:creator><![CDATA[Pat Helland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/pathelland/2009/04/13/building-blocks-and-the-three-bears/</guid>
      <description><![CDATA[So, about a year and a half ago, I was working in Developer Division and there were lots of...]]></description>
      <content:encoded><![CDATA[<p>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…&nbsp; it seemed that everyone was talking past each other and meant really different things about they meant by a component.&nbsp; I decided to try to identify three different meanings of the word “component”.&nbsp;&nbsp; To avoid debates over the naming, I chose the really ridiculous names:&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”.&nbsp;&nbsp; Last week, <a href="http://blogs.msdn.com/kcwalina/">Krzysztof Cwalina</a> asked me to post a description of the “Three Bears” because it would be helpful for him in describing their project, MEF.&nbsp;&nbsp; Here goes…</p> <p>The idea is that there are three different types of components.&nbsp; </p> <ul> <li><u>Baby-Bears</u> are much like the classic object with inheritance, reference-passing, and synchronous interactions with their callers.&nbsp;&nbsp; <li><u>Momma-Bears</u> (closely related to what is provided by MEF), are comprised of multiple Baby-Bears.&nbsp; While exhibiting synchronous call patterns, they do not support pass-by-reference nor inheritance.&nbsp; They will, however, allow for support of <a href="http://en.wikipedia.org/wiki/Dependency_injection">dependency injection</a>.  <li><u>Papa-Bears</u> are the biggest of the three and are most similar to a SOA Service.&nbsp;&nbsp; A Papa-Bear will typically be composed of multiple Momma-Bears.&nbsp;&nbsp; Papa-Bears interact with their partners asynchronously, are frequently remote, do not support pass-by-reference or inheritance, and may be offline.</li></ul> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/pathelland/WindowsLiveWriter/BuildingBlocksandtheThreeBears_A386/image_2.png" original-url="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/BuildingBlocksandtheThreeBears_A386/image_2.png"><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="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/pathelland/WindowsLiveWriter/BuildingBlocksandtheThreeBears_A386/image_thumb.png" original-url="http://blogs.msdn.com/blogfiles/pathelland/WindowsLiveWriter/BuildingBlocksandtheThreeBears_A386/image_thumb.png" width="1028" border="0"></a> </p> <p>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.&nbsp;&nbsp; I will leave it to Krzysztof to explain MEF (which I believe is more akin to the Momma-Bear) type of component.</p> <p>Anyway, this is what I like to call “Building Blocks and the Three Bears”.</p> <p>- Pat</p>]]></content:encoded>
    </item>
    <item>
      <title>“Book Report” on the UC Berkeley Paper “Above the Clouds: a Berkeley View of Cloud Computing”</title>
      <link>https://docs.microsoft.com/archive/blogs/pathelland/book-report-on-the-uc-berkeley-paper-above-the-clouds-a-berkeley-view-of-cloud-computing</link>
      <pubDate>Fri, 10 Apr 2009 20:57:29 GMT</pubDate>
      <dc:creator><![CDATA[Pat Helland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/pathelland/2009/04/10/book-report-on-the-uc-berkeley-paper-above-the-clouds-a-berkeley-view-of-cloud-computing/</guid>
      <description><![CDATA[As I mentioned in a previous blog post, I am very impressed with a recent paper from my friends at...]]></description>
      <content:encoded><![CDATA[<p>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: <a href="http://abovetheclouds.cs.berkeley.edu.">Above the Clouds: a Berkeley View of Cloud Computing</a>.&nbsp;&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.&nbsp; You can see the presentation I created covering the paper’s contents <a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2009/Above-the-Clouds-090401k.pptx">here</a>.&nbsp; </p> <p>If you are interested in cloud computing, you want to understand these ideas.</p> <p>Also, I highly recommend the Berkeley blog on cloud computing available at:&nbsp; <a href="http://abovetheclouds.cs.berkeley.edu">http://abovetheclouds.cs.berkeley.edu</a>.</p> <p>Thanks to the folks at Berkeley for their hard work and permission to show this to you.</p> <p>- Pat</p>]]></content:encoded>
    </item>
    <item>
      <title>Great Paper from UC Berkeley on Cloud Computing</title>
      <link>https://docs.microsoft.com/archive/blogs/pathelland/great-paper-from-uc-berkeley-on-cloud-computing</link>
      <pubDate>Fri, 20 Feb 2009 19:05:00 GMT</pubDate>
      <dc:creator><![CDATA[Pat Helland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/pathelland/2009/02/20/great-paper-from-uc-berkeley-on-cloud-computing/</guid>
      <description><![CDATA[My friends at the UC Berkeley RAD Lab have written a wonderful paper on Cloud Computing.&nbsp;&nbsp;...]]></description>
      <content:encoded><![CDATA[<P>My friends at the UC Berkeley RAD Lab have written a wonderful paper on Cloud Computing.&nbsp;&nbsp; It can be found (with a video interview and some other stuff) at<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"> <A href="http://abovetheclouds.cs.berkeley.edu/">http://abovetheclouds.cs.berkeley.edu</A></SPAN>.&nbsp; I strongly recommend looking at their work!</P>
<P>- Pat</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Slides from SQL Service Broker Design Preview from August 2001</title>
      <link>https://docs.microsoft.com/archive/blogs/pathelland/slides-from-sql-service-broker-design-preview-from-august-2001</link>
      <pubDate>Tue, 20 Jan 2009 21:41:35 GMT</pubDate>
      <dc:creator><![CDATA[Pat Helland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/pathelland/2009/01/20/slides-from-sql-service-broker-design-preview-from-august-2001/</guid>
      <description><![CDATA[I know this is a LONG time ago but these slides were never made public before and there's some...]]></description>
      <content:encoded><![CDATA[<p>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.&nbsp; At the time, it was confidential but that is no longer the case.</p> <p>In August of 2001, the SQL Service Broker team did a design preview and I wrote five presentations totaling 280 slides.&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).</p> <blockquote> <p><strong><em><u>CAUTION:&nbsp; These slides are from August of 2001 and SQL Service Broker shipped in late 2005.&nbsp; Many things are changed!&nbsp; Do NOT count on these slides for accuracy of the product but they can be a big help with inspiration.</u></em></strong></p></blockquote> <p>The following slide decks are now out in my new <a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/browse.aspx/.Public">public skydrive folder</a>.</p> <h3><strong><u>SQL Service Broker Overview</u></strong></h3> <blockquote> <p>An overview and introduction to SQL Service Broker.&nbsp; This slide deck has the following major sections:</p> <ul> <li><strong><u>Introduction</u></strong>:&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.</li> <li><strong><u>High-Level Architecture</u></strong>: This covers web services, brokers, message fragmentation, service environments (which provide a namespace for services), message-types, service-contracts, services, and service programs.</li> <li><strong><u>Programming Model</u></strong>:&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.&nbsp; Caution: the syntax has changed between this and the shipped product!</li> <li><strong><u>Relationship to Other Stuff</u></strong>: Here we visit management issues, interoperation, and look at products that create services.</li> <li><strong><u>Conclusion</u></strong>:&nbsp; We revisit the scenarios and summarize the points made.</li></ul></blockquote> <blockquote> <p>The SSB overview talk has 87 slides and can be found <a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2001/SQL-Service-Broker-Design-Preview-Aug01/SSB-Overview-010828.ppt">here</a>.</p></blockquote> <h3><strong><u>SQL Service Broker Messaging</u></strong></h3> <blockquote> <p>This talk examines the message protocols used in SQL Service Broker.&nbsp; <u><em>Reminder:&nbsp; This is not an accurate depiction of what is in the product!</em></u></p> <p>This slide deck has the following major sections:</p> <ul> <li><strong><u>Introduction</u></strong>:&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.</li> <li><strong><u>Adjacent Broker Protocol</u></strong>: The adjacent broker protocol talks to a nearby SQL Server to propagate messages and get them closer to their destination.&nbsp; This section outlines the challenges at this level with delivery (sometimes tunneled through firewalls), lifetime management, and format negotiation.</li> <li><strong><u>Endpoint Broker Protocol</u></strong>: 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).&nbsp; This section covers dialog endpoint state, fragmentation and sequence numbers, piggy-backed acknowledgements, and unsequenced ack messages.</li> <li><strong><u>Message Formats</u></strong>: This covers pieces of the messages, encryption challenges, and ASCII versus binary sections of the SOAP message.</li> <li><strong><u>Monolog Contracts</u></strong>: Monologs were not implemented but they are VERY interesting if you care about Pub-Sub.&nbsp; This short section on Monologs covers some of the issues related to the messaging formats.&nbsp; It discusses dialog contracts to implement monologs.</li> <li><strong><u>Web Services and SOAP Bubbles</u></strong>:&nbsp; Some brief framing of the relationship of the SSB protocols to Web Services and SOAP.</li> <li><strong><u>Conclusion</u></strong>: a summary of the content covered.</li></ul></blockquote> <blockquote> <p>The SSB messaging talk has 31 slides and can be found <a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2001/SQL-Service-Broker-Design-Preview-Aug01/SSB-Messaging-010828.ppt">here</a>.</p></blockquote> <h3><strong><u>SQL Service Broker Performance</u></strong></h3> <blockquote> <p>This talk examines performance, scaling, and high-availability issues with SQL Service Broker.&nbsp;&nbsp; <u><em>Reminder:&nbsp; This is not an accurate depiction of what is in the product!</em></u></p> <p>This slide deck has the following major sections:</p> <ul> <li><strong><u>Introduction</u></strong>&nbsp; </li> <li><strong><u>Work Within a Service</u></strong>: 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.</li> <li><strong><u>Fault Tolerant Services</u></strong>: In this section, we cover designing services for fault tolerance, deploying services for fault tolerance, and more issues with fault tolerance.</li> <li><strong><u>Scaling and High-Performance</u></strong>: Here, we examine application issues for scale-up, execution of scale-up services, application issues for scale-out, and execution of scale-out services.</li> <li><strong><u>Conclusion</u></strong></li></ul></blockquote> <blockquote> <p>The SSB performance talk has 46 slides and can be found <a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2001/SQL-Service-Broker-Design-Preview-Aug01/SSB-Perf-Scale-010828.ppt">here</a>.</p></blockquote> <h3><strong><u>SQL Service Broker Monologs</u></strong></h3> <blockquote> <p>One of my favorite talks, this describes the unshipped feature of SSB Monologs.&nbsp; Monologs implement a very flexible form of pub-sub.&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.&nbsp;&nbsp; <u><em>Reminder:&nbsp; This is not an accurate depiction of what is in the product (it has not shipped)!</em></u></p> <p>This slide deck has the following major sections:</p> <ul> <li><strong><u>Monolog Overview</u></strong>:&nbsp; This covers "What's a Monolog?", programmatic interfaces, and broker-to-broker contracts.&nbsp; Included are the notions of "History versus Currency", Monolog-Groups, and Subscriptions.</li> <li><strong><u>Programming with Monologs</u></strong>:&nbsp; This section includes programming a publisher, requesting a subscription, and monolog delivery in a subscriber.</li> <li><strong><u>Some Special Monolog Features</u></strong>: A really cool concept called a Monolog-Checkpoint is covered as well as the lifetime of monologs.</li> <li><strong><u>Plumbing Monologs Over Dialogs</u></strong>:&nbsp; We examine fan-out trees for scale, plumbing the fanout using dialogs, publisher agents, and subscriber agents.</li> <li><strong><u>Conclusion</u></strong>:&nbsp; Here we examine content syndication and content aggregation and then summarize the talk.</li></ul></blockquote> <blockquote> <p>The SSB monologs talk has 53 slides and can be found <a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2001/SQL-Service-Broker-Design-Preview-Aug01/SSB-Monologs-010828.ppt">here</a>.</p></blockquote> <h3><strong><u>SQL Service Broker Security</u></strong></h3> <blockquote> <p>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.&nbsp; Classic session-oriented security only works when messages are received in order.&nbsp; That is just one of the challenges.&nbsp;&nbsp; <u><em>Reminder:&nbsp; This is not an accurate depiction of what is in the product!</em></u></p> <p>This slide deck has the following major sections:</p> <ul> <li><strong><u>Security Behavior</u></strong>: This section covers identity, dialog authorization, monolog authorization, and auditing.</li> <li><strong><u>Encryption Concepts</u></strong>:&nbsp; Here we examine symmetric key encryption, public key encryption, and some practical rules for using encryption.</li> <li><strong><u>Encrypting Dialogs</u></strong>:&nbsp; In this section, we introduce a concept called "handshakes" which helps optimize the performance of certificate management in a dialog-based system.&nbsp; We look at handshake certificates, messages and dialogs, and cryptographic guarantees.</li> <li><strong><u>Encrypting Monologs</u></strong>: Monologs are N-party communications.&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.</li> <li><strong><u>Conclusion</u></strong></li></ul></blockquote> <blockquote> <p>The SSB security talk has 61 slides and can be found <a href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/2001/SQL-Service-Broker-Design-Preview-Aug01/SSB-Security-010828.ppt">here</a>.</p></blockquote> <p>I hope these talks are fun as there's still lots of interesting concepts in them 8 years later.</p> <blockquote> <p>- Pat</p></blockquote>]]></content:encoded>
    </item>
    <item>
      <title>Transaction Processing and the Barbarian Hordes</title>
      <link>https://docs.microsoft.com/archive/blogs/pathelland/transaction-processing-and-the-barbarian-hordes</link>
      <pubDate>Mon, 19 Jan 2009 20:53:00 GMT</pubDate>
      <dc:creator><![CDATA[Pat Helland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/pathelland/2009/01/19/transaction-processing-and-the-barbarian-hordes/</guid>
      <description><![CDATA[So, I'm starting to figure out how to put stuff up on Windows Live Skydrive and I have beginning out...]]></description>
      <content:encoded><![CDATA[<P>So, I'm starting to figure out how to put stuff up on Windows Live Skydrive and I have beginning out <A href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/browse.aspx/.Public"><FONT color=#669966>here</FONT></A>.&nbsp;&nbsp; I've only spent a few hours on this and there's lots more old stuff to add soon.&nbsp; I will send another blog post when this is in better shape.</P>
<P>I just couldn't resist sharing some fun, though...</P>
<P>As I was sorting through old files, I came across a video of <A href="http://cid-84f3c5ef51d06e8b.skydrive.live.com/self.aspx/.Public/1996/Barbarian-Hordes-961106.wmv"><FONT color=#669966>Transaction Processing and the Barbarian Hordes</FONT></A> and placed it up for all to see.&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...</P>
<P>This was at the Long Beach PDC in November of 1996.&nbsp; The PDC was titled "The Renaissance of Distributed Computing" and I had a one hour General Session to introduce <A href="http://en.wikipedia.org/wiki/Microsoft_Transaction_Server"><FONT color=#669966>Microsoft Transaction Server</FONT></A>.&nbsp; We wanted to show that MTS was easier to install than a classic <A href="http://en.wikipedia.org/wiki/Transaction_processing_monitor"><FONT color=#669966>Transaction Processing Monitor</FONT></A>.&nbsp; So, my friend Greg Hope came out to do a 2-1/2 minute setup on MTS.&nbsp; While this was happening, I told a five minute joke...</P>
<P>There were 7000 people in the room and (I think) 10000+ on video feed.&nbsp; They had NO idea what I was doing for at least three minutes.</P>
<BLOCKQUOTE>
<P>- Pat</P></BLOCKQUOTE>]]></content:encoded>
    </item>
    <item>
      <title>A Wonderful Time at CIDR (Conference on Innovative Database Research)</title>
      <link>https://docs.microsoft.com/archive/blogs/pathelland/a-wonderful-time-at-cidr-conference-on-innovative-database-research</link>
      <pubDate>Fri, 09 Jan 2009 20:35:39 GMT</pubDate>
      <dc:creator><![CDATA[Pat Helland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/pathelland/2009/01/09/a-wonderful-time-at-cidr-conference-on-innovative-database-research/</guid>
      <description><![CDATA[Sunday, January 4th through Wednesday, January 7th was the Conference on Innovative Database...]]></description>
      <content:encoded><![CDATA[<p>Sunday, January 4th through Wednesday, January 7th was the <a href="http://www-db.cs.wisc.edu/cidr/">Conference on Innovative Database Research (CIDR)</a>&nbsp; at Asilomar.&nbsp; </p> <p>First, let me talk for a minute about <a href="http://www.visitasilomar.com/default.aspx">Asilomar</a>. It is located in the forest right off the beach in Pacific Grove, CA (right next to Monterey).&nbsp; From 1913 to 1956, it was a YWCA and has a number of magnificent and beautiful historic buildings.&nbsp; In 1956, it was sold to the State of California which has run it as a conference center since then.&nbsp; Asilomar has a deep and special place in my heart.&nbsp; I've spent 3 days every two years there since 1985 at the <a href="http://www.hpts.ws/">HPTS (High Performance Transaction Systems) workshop</a>.&nbsp; This gathering has been attended by many wonderful friends in the transaction processing and database community.&nbsp; Every job I've gotten since the 1980s has been through contacts forged at HPTS.&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).&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.&nbsp; Nick (my grandson) is now at Cal State San Jose.&nbsp;&nbsp;&nbsp; It was at Asilomar that I last saw my dear friend, Jim Gray.&nbsp; Now, I go two times each two years for CIDR (January of the odd years) and HPTS (October of the odd years).&nbsp; The smells, the feel, the fireplaces, the wonderful <a href="http://www.bluffton.edu/~sullivanm/jmasilomar/jmasilomarchapel.html">Chapel Building</a> (where we meet to present to each other), and the amazing participants offer me a rich combination of memories and current stimulus.</p> <p>So, this year's CIDR was a good one.&nbsp; The agenda was packed.&nbsp; There was a healthy combination of seasoned database folks and young grad student.&nbsp; We listened to a lot of presentations and had a lot of stimulating conversations.&nbsp; I saw a bunch of old friends and made a bunch of new ones.&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.&nbsp; It was a very, very nice event.</p> <p>On Tuesday evening, I was on a panel with my old friend from Tandem days, <a href="http://www.linkedin.com/ppl/webprofile?action=vmi&amp;id=5220261&amp;authToken=GGcn&amp;authType=name&amp;trk=ppro_viewmore&amp;lnk=vw_pprofile">Shel Finkelstein</a>.&nbsp; We were joined by a friend of mine I met last year, <a href="http://athx2.cs.berkeley.edu/~marmbrus/">Michael Armbrust</a>, who is a graduate student at UC Berkeley studying in the <a href="http://radlab.cs.berkeley.edu/wiki/RAD_Lab">Berkeley RAD Lab</a>.&nbsp; The panel was on the ways in which cloud-based systems are, in many cases, evolving towards availability over consistency.&nbsp; I presented a summary of "Building on Quicksand".&nbsp;&nbsp; Shel did a marvelous job presenting "Principles for Inconsistency".&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;A.&nbsp; You can find the papers for these talks at <a title="http://www-db.cs.wisc.edu/cidr/cidr2009/program.html" href="http://www-db.cs.wisc.edu/cidr/cidr2009/program.html">http://www-db.cs.wisc.edu/cidr/cidr2009/program.html</a> and then navigating the program to Tuesday evening.</p> <p>The panel was a blast...&nbsp; I've known Shel for almost 20 years and knew he would do a great job.&nbsp; He did.&nbsp; This was Michael's first conference but I was THRILLED with his talk.&nbsp; He was clear, organized, and thought provoking.&nbsp; An absolute home run for someone's first conference!&nbsp; </p> <p>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.</p> <p>- Pat</p>]]></content:encoded>
    </item>
    <item>
      <title>"Building on Quicksand" Paper for CIDR (Conference on Innovative Database Research)</title>
      <link>https://docs.microsoft.com/archive/blogs/pathelland/building-on-quicksand-paper-for-cidr-conference-on-innovative-database-research</link>
      <pubDate>Fri, 12 Dec 2008 21:34:00 GMT</pubDate>
      <dc:creator><![CDATA[Pat Helland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/pathelland/2008/12/12/building-on-quicksand-paper-for-cidr-conference-on-innovative-database-research/</guid>
      <description><![CDATA[I just&nbsp;submitted the final (photo-ready) version of&nbsp;a new paper called "Building on...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 4pt"><FONT face="Times New Roman"></P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">
<P minmax_bound="true">I just&nbsp;submitted the final (photo-ready) version of&nbsp;a new paper called "Building on Quicksand" to the <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/">Conference on Innovative Database Research</A>.&nbsp; This is a paper I coauthored&nbsp;with my friend, Dave Campbell.&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&nbsp;a new and longer full paper complete.&nbsp; I like this version best of all.&nbsp;</P>
<P minmax_bound="true">- Pat</P>
<BLOCKQUOTE>
<P minmax_bound="true"><STRONG><U>Building on Quicksand</U></STRONG></P>
<P class=MsoNormal style="MARGIN: 0in 0in 4pt">Reliable systems have always been built out of unreliable components.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 4pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Fault tolerant algorithms comprise a set of idempotent sub-algorithms.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Between these idempotent sub-algorithms, state is sent across the failure boundaries of the unreliable components.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Classically, this has been done in a linear fashion (i.e. one step at a time).<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 4pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">As the granularity of the unreliable component grows (from a mirrored disk to a system to a data<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>center), the latency to communicate with a backup becomes unpalatable.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This leads to a more relaxed model for fault tolerance.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The primary system will acknowledge the work request and its actions <I style="mso-bidi-font-style: normal"><U>without</U></I> waiting to ensure that the backup is notified of the work.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This improves the responsiveness of the system because the user is not delayed behind a slow interaction with the backup.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">There are two implications of asynchronous state capture:<o:p></o:p></SPAN></P>
<P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 13.5pt; TEXT-INDENT: -13.5pt; mso-add-space: auto; mso-list: l0 level1 lfo1"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Arial"><SPAN style="mso-list: Ignore">1)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </SPAN></SPAN></SPAN><U><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Everything promised by the primary is probabilistic</SPAN></U><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>There is always a chance that an untimely failure shortly after the promise results in a backup proceeding without knowledge of the commitment.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Hence, nothing is guaranteed!<o:p></o:p></SPAN></P>
<P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 4pt 13.5pt; TEXT-INDENT: -13.5pt; mso-add-space: auto; mso-list: l0 level1 lfo1"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Arial"><SPAN style="mso-list: Ignore">2)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </SPAN></SPAN></SPAN><U><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Applications must ensure eventual consistency</SPAN></U><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Since work may be stuck in the primary after a failure and reappear later, the processing order for work cannot be guaranteed.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 4pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Platform designers are struggling to make this easier for their applications.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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. <FONT color=#ff0000><SPAN class=msoDel><DEL cite=mailto:Dave%20Campbell dateTime=2008-12-04T08:00><SPAN style="mso-spacerun: yes">&nbsp;</SPAN></DEL></SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 4pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">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”.</SPAN></P></BLOCKQUOTE></FONT>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/20/52/14/BuildingOnQuicksand-V3-081212h-pdf.pdf" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-09-20-52-14/BuildingOnQuicksand_2D00_V3_2D00_081212h_2D00_pdf.pdf">BuildingOnQuicksand-V3-081212h-pdf.pdf</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>