<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-11714554</atom:id><lastBuildDate>Mon, 02 Sep 2024 05:04:44 +0000</lastBuildDate><category>comcast</category><category>network</category><title>The Falcon Blog</title><description>Dispatches from within the MySQL Falcon storage engine team.</description><link>http://carotid.blogspot.com/</link><managingEditor>noreply@blogger.com (Christopher Powers)</managingEditor><generator>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-8273013548483829367</guid><pubDate>Wed, 17 Feb 2010 22:11:00 +0000</pubDate><atom:updated>2010-02-17T18:40:58.269-06:00</atom:updated><title>Revival</title><description>&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;April 20, 2009 was one hell of a day. In the morning, Sun announced the Oracle acquisition. In the afternoon, my mother was diagnosed with terminal lung cancer. She died three months later.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Within hours, three foundational aspects of my life were rocked to the core: The project I worked on, the company I worked for, and one of the two people directly responsible for my very existence (however, I did receive a decent tax refund, so the news that week wasn&#39;t &lt;span style=&quot;font-style: italic;&quot;&gt;all&lt;/span&gt; bad.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Now that I&#39;m solidly on the other side of an extraordinarily disruptive year, I can afford to reflect and offer some perspective.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The burning question is, of course, What became of Falcon? The short answer is that the project was shelved and the team disbanded. But let me offer a somewhat more considered answer to that question.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Falcon&#39;s very existence was predicated upon the fact that MySQL needed a transactional storage engine alternative to InnoDB. To give you a sense of the importance of the project and a sense of the urgency back then, on my first &lt;span style=&quot;font-style: italic;&quot;&gt;day&lt;/span&gt; on the job with MySQL, Marten Mikos sat down with the Falcon team and said, &quot;If you deliver Falcon, I will take MySQL public.&quot; That&#39;s pretty motivating, and the Falcon team was, if anything, motivated.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Yet, two years later, the Oracle acquisition instantly rendered Falcon strategically unnecessary. Would there be a role for Falcon? It seemed doubtful, but no one in MySQL was certain, and if they were, they weren&#39;t talking.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;Falcon Reimagined&lt;/span&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC0fCncp5gu5KQBvw5v8eBJHWqkmMiNzFMDLHGGSnGJG83M314SG0EdUc1hpqPJJWt1B_yr-jkK5sUIrvWfzOrSe7qg9Q4xLf_jPmuNtk5Vl50xrNGWXYksswQ0yDeDWfAcjEOyg/s1600-h/baldy02.jpg&quot;&gt;&lt;img style=&quot;float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 284px; height: 177px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC0fCncp5gu5KQBvw5v8eBJHWqkmMiNzFMDLHGGSnGJG83M314SG0EdUc1hpqPJJWt1B_yr-jkK5sUIrvWfzOrSe7qg9Q4xLf_jPmuNtk5Vl50xrNGWXYksswQ0yDeDWfAcjEOyg/s400/baldy02.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5439346220689864898&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;In response to the Oracle announcement, and quite apart from the pithy &quot;&lt;a href=&quot;http://carotid.blogspot.com/2009_04_01_archive.html#8499683187188909543&quot;&gt;Whither MySQL?&lt;/a&gt;&quot; post, I assembled an internal wiki page describing my vision of a post-acquisition Falcon. Entitled &lt;span style=&quot;font-style: italic;&quot;&gt;Falcon Reimagined: The Falcon Performance Engine&lt;/span&gt;, it suggested that by reducing the engine to its purest elements--highly concurrent transactions and in-memory speed--and by optimizing the engine for screaming fast Sun hardware, we could turn Falcon into a performance &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;beast&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Of course, the vision depended upon the vision of our new owners, but I figured given that&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;1) Falcon would no longer be positioned as a competitor of InnoDB, and&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;2) Falcon has neither a legacy tail nor an installed base to contend with&lt;/span&gt;,&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;then we might have an opportunity to inhabit a new niche with the Falcon equivalent of a concept car. (I&#39;ll post &lt;span style=&quot;font-style: italic;&quot;&gt;Falcon Reimagined&lt;/span&gt; once I determine that it&#39;s within the corporate social media guidelines.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;Golden Slumbers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Weeks prior to the Oracle announcement, Sun management challenged the Falcon team to finally stabilize the engine once and for all. We&#39;d been chasing performance and memory targets for months, and although progress on those fronts was excellent, the bug trend was discouraging and the project seemed stalled. Management was restless, irritable and demanding changes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Kevin, Ann and I scrambled to devise a detailed and realistic plan with which we would finally drive Falcon home, but by then it was too late: Sun announced the acquisition and the Falcon team began to dissipate. By the end of the summer, each member of the Falcon team had either been reassigned or had chosen to leave Sun altogether.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;In mid-October, after being granted a three-week stay, Kevin, Ann and I wrapped up the last remaining issues and put Falcon to sleep.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;And In The End...&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I could write a book reflecting on Falcon and the experience of trying to deliver a high-visibility project &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;in the face of constant deadline pressure. Who knows? Perhaps some day I will. For now, I&#39;ll keep it simple:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;What we did wrong:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Chase InnoDB at the expense of stability. For example, our performance goals should have remained fixed until the engine was stable. Instead, we reprioritized performance whenever InnoDB improved theirs. Yes, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;extremely poor performance is a critical flaw, but 70% of InnoDB should&#39;ve been good enough until GA.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;What we did right:&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGD-h_8m7xG-j3vR4-Fpih_Z9hg3g0QLR-JfgKV4wACSTWurfjJcmujFnoarCpnlknS3NSpKAevQsR7_6V_DhG9DwMEKrWXahGKhSqMTVlXuV8AFOKxGBOhe0SE817OurYV8yvcg/s1600-h/athens_falcon_team.JPG&quot;&gt;&lt;img style=&quot;float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 291px; height: 199px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGD-h_8m7xG-j3vR4-Fpih_Z9hg3g0QLR-JfgKV4wACSTWurfjJcmujFnoarCpnlknS3NSpKAevQsR7_6V_DhG9DwMEKrWXahGKhSqMTVlXuV8AFOKxGBOhe0SE817OurYV8yvcg/s400/athens_falcon_team.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5439347875240142018&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Assemble a top-notch team. By the March &#39;09 Falcon team meeting in Athens, the Falc&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;on team was &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;comprised of a solid mix of senior engineers with a variety of technical skills. We had really come together in terms of collaboration, enthusiasm and technical innovation. We returned from Athens recharged and ready to kick ass. In some respects, the Athens meeting was like our Abbey Road album--the best and the last.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Falcon was fun. Falcon was interesting. Falcon was intense. Falcon was also frustratin&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;g and, at times, Falcon was insane. But that&#39;s why we do this, isn&#39;t it?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;So...yeah.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;What&#39;s next? For now, I am part of the MySQL Search Team, a self-directed, cross-team SIG within MySQL. Our mission:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Improve the ease of implementing native or third-party fulltext search with MySQL.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Improve the quality of fulltext search results.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Improve the performance of fulltext search response.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Fulltext search is a fascinating subject in its own right. It is an aspect of MySQL worthy of the considerable attention it&#39;s received over the years, and it is a feature for which there is room for considerable improvement.&lt;br /&gt;&lt;br /&gt;Now that the acquisition dust has settled, the MySQL Search Team will continue to gain momentum, and I will use The Falcon Blog to reflect upon our progress.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiXd4E6-AZtHMw63tPEloIESz1_dL8FlqBPFtJXmtW_dhSKj6eGAW0AgR3G6pn860hXoBt1qYoTpzF9VFGiGz4ksYXQTVRzzVeXG_MT687K1CHRdaLcrvQxQy5VQH4w48cs_qbEA/s1600-h/half_dome_chris_exultate_crop.JPG&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 290px; height: 250px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiXd4E6-AZtHMw63tPEloIESz1_dL8FlqBPFtJXmtW_dhSKj6eGAW0AgR3G6pn860hXoBt1qYoTpzF9VFGiGz4ksYXQTVRzzVeXG_MT687K1CHRdaLcrvQxQy5VQH4w48cs_qbEA/s400/half_dome_chris_exultate_crop.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5439344974570610002&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2010_02_01_archive.html#8273013548483829367</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC0fCncp5gu5KQBvw5v8eBJHWqkmMiNzFMDLHGGSnGJG83M314SG0EdUc1hpqPJJWt1B_yr-jkK5sUIrvWfzOrSe7qg9Q4xLf_jPmuNtk5Vl50xrNGWXYksswQ0yDeDWfAcjEOyg/s72-c/baldy02.jpg" height="72" width="72"/><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-8499683187188909543</guid><pubDate>Mon, 20 Apr 2009 15:12:00 +0000</pubDate><atom:updated>2009-04-20T13:10:32.752-05:00</atom:updated><title>Whither MySQL?</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPHIs7LSIDLe2S6X9ayUho_fmj1BaPXfQLq0qzJLU6OGRn026wnVBUo2nmII_SFQT9yQrHU1stlhQAzsoqYhsmzEQ09wjyYnxOAm6xpR-FbjkYpeZ0Ju83LO3Pf9Ptp4MvVQIXUQ/s1600-h/LastRegression-1600.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 225px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPHIs7LSIDLe2S6X9ayUho_fmj1BaPXfQLq0qzJLU6OGRn026wnVBUo2nmII_SFQT9yQrHU1stlhQAzsoqYhsmzEQ09wjyYnxOAm6xpR-FbjkYpeZ0Ju83LO3Pf9Ptp4MvVQIXUQ/s400/LastRegression-1600.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5326835752220450386&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;Stay tuned...&lt;br /&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2009_04_01_archive.html#8499683187188909543</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPHIs7LSIDLe2S6X9ayUho_fmj1BaPXfQLq0qzJLU6OGRn026wnVBUo2nmII_SFQT9yQrHU1stlhQAzsoqYhsmzEQ09wjyYnxOAm6xpR-FbjkYpeZ0Ju83LO3Pf9Ptp4MvVQIXUQ/s72-c/LastRegression-1600.jpg" height="72" width="72"/><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-6847659026765367709</guid><pubDate>Tue, 10 Feb 2009 02:35:00 +0000</pubDate><atom:updated>2009-02-09T22:01:02.226-06:00</atom:updated><title>Minnesota MySQL Users Group</title><description>&lt;style&gt;BODY { FONT-FAMILY:Verdana; FONT-SIZE:10pt } P { FONT-FAMILY:Verdana; FONT-SIZE:10pt } DIV { FONT-FAMILY:Verdana; FONT-SIZE:10pt } TD { FONT-FAMILY:Verdana; FONT-SIZE:10pt } &lt;/style&gt;&lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;    &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Last month, the local Sun office was gracious enough to host the local &lt;a href=&quot;http://mysql.meetup.com/92/calendar/9511016/&quot;&gt;MySQL &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Meetup&lt;/span&gt;&lt;/a&gt;. My attendance has been sporadic  last couple of years (57%, apparently), largely due to travel, but this time I committed to giving a talk on MySQL 6.0 and Falcon.&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-wUVp9WgiM5UpfGYV4T1S3s_TFwf6Fi7zm-S60tv4gP3MQV61go_6I7acMOA2IchFAruHAzkTqHDNw6ka-3jnUHJynC8dXRSVisKlo3l55eqHfpdk5HWTga0sXFjeK6VB_BxyGQ/s1600-h/FalconDreams.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 174px; height: 130px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-wUVp9WgiM5UpfGYV4T1S3s_TFwf6Fi7zm-S60tv4gP3MQV61go_6I7acMOA2IchFAruHAzkTqHDNw6ka-3jnUHJynC8dXRSVisKlo3l55eqHfpdk5HWTga0sXFjeK6VB_BxyGQ/s320/FalconDreams.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5301007157053709090&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt; &lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;It was a great meeting with excellent turnout--thirty-one, I think, including three from Sun/MySQL.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt; &lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Benjamin Wood, a systems engineer from Dallas, called in to give a MySQL 5.1 overview, including a nice &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;drilldown&lt;/span&gt; on the new features from which I learned a few things myself.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Prior to joining Sun last May, Benjamin had 12 years experience as an Oracle &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;DBA&lt;/span&gt;, which gives him substantial database street cred and the ability to speak with some technical authority to Sun&#39;s database customers about MySQL.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt; &lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Following Benjamin&#39;s talk, I gave an overview of MySQL 6.0 with emphasis (naturally) on Falcon and the Falcon architecture. I find that there is genuine interest in MySQL 6.0, especially with regard to scaling on newer platforms. &lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;As the drama of the MySQL 5.1 launch recedes and the product matures, 6.0&#39;s time will arrive.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Several folks expressed interest in trying out Falcon, and I offered to lend my services, including providing &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;dev&lt;/span&gt; builds of the engine, after we get the 6.10 alpha out the door.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt; &lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;I had a chance to chat briefly with &lt;a href=&quot;http://marcgrabanski.com/&quot;&gt;Marc &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;Grabanski&lt;/span&gt;&lt;/a&gt;, a local web developer, who gave a quick demo of a sweet little &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;UI&lt;/span&gt; that he developed (link &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;tbd&lt;/span&gt;). Marc was later kind enough to forward an introduction to Garrett &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;Woodworth&lt;/span&gt; and Nate &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;Abele&lt;/span&gt;, the project manager and lead developer, respectively, of &lt;a href=&quot;http://cakephp.org/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;CakePHP&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt; &lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Also in &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;attendance&lt;/span&gt; was Erik from &lt;a href=&quot;http://www.fisdap.net/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;FISDAP&lt;/span&gt;&lt;/a&gt;, Jim from &lt;a href=&quot;http://www.schawk.com/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;Schawk&lt;/span&gt;&lt;/a&gt; and of course, the usual suspects, Chris Barber from &lt;a href=&quot;http://www.cb1inc.com/&quot;&gt;CB1&lt;/a&gt; and Charlie from &lt;a href=&quot;http://www.carol.com/&quot;&gt;Carol.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The real strength of a user group is, well, &lt;span style=&quot;font-style: italic;&quot;&gt;users&lt;/span&gt;, and I look forward to hearing presentations from other members of the group, real-world stories, problems encountered, problems solved, lessons learned, etc.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://carotid.blogspot.com/2009_02_01_archive.html#6847659026765367709</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-wUVp9WgiM5UpfGYV4T1S3s_TFwf6Fi7zm-S60tv4gP3MQV61go_6I7acMOA2IchFAruHAzkTqHDNw6ka-3jnUHJynC8dXRSVisKlo3l55eqHfpdk5HWTga0sXFjeK6VB_BxyGQ/s72-c/FalconDreams.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-8085325401781054098</guid><pubDate>Sun, 07 Dec 2008 20:06:00 +0000</pubDate><atom:updated>2008-12-07T17:33:08.995-06:00</atom:updated><title>Bluster, Blather and B.S.</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpgpnW3CepnFyln918r1BJHUQ7uoRSo9VX7MlImVff8a4LkND_-a45TG5gTW23jLlFHe5XpCngUKeWIXgn4QcqdlbICJAb0sONxNmn2WK55Wmxu3a1laoq_MxWBRbPSMdk6QLyAA/s1600-h/riga_conference.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 233px; height: 192px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpgpnW3CepnFyln918r1BJHUQ7uoRSo9VX7MlImVff8a4LkND_-a45TG5gTW23jLlFHe5XpCngUKeWIXgn4QcqdlbICJAb0sONxNmn2WK55Wmxu3a1laoq_MxWBRbPSMdk6QLyAA/s320/riga_conference.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5277187298361104658&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Many have published their Very Important Opinions on the MySQL 5.1 GA. Now that the issue has been forced, I must take a stand.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Falcon is strictly a MySQL 6.0 project. I did not participate directly in the development of MySQL 5.1 and cannot render an informed technical opinion as to its quality except to say that &lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;I absolutely trust the judgment of MySQL management and the ability of my fellow engineers, and I fully stand behind their decision to release MySQL 5.1 GA.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;In twenty-two years, I have worked at companies ranging from mom-and-pop software shops to companies like IBM, CSC, Harris, Boston Scientific and everything in between. I have developed operating systems, telecommunication software, database microkernels, medical device firmware and, most importantly, applications for the wholesale distribution of beer.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Every single one of these products shipped with known bugs--&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;serious&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; bugs--and every single one of these products shipped with at least &lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;someone&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; strongly questioning the decision to ship. Every single one.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;But we &lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;did&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; ship, and the operating system ran millions of PCs and the telephone switch connected billions of phone calls and the database stored petabytes of data and the heart device saved thousands of lives and the warehouse delivered millions of gallons of beer.&lt;br /&gt;&lt;br /&gt;And the bugs got fixed and then we moved on. We &lt;span style=&quot;font-style: italic;&quot;&gt;moved on&lt;/span&gt;. Never once did I question our ability to do so, and never once did we fail to do so.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;So, in my experience, &quot;&lt;/span&gt;&lt;a style=&quot;font-family: verdana;&quot; href=&quot;http://ecorner.stanford.edu/authorMaterialInfo.html?mid=1642&quot;&gt;Disagree and Commit&lt;/a&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot; isn&#39;t just a feel-good platitude, it is a proven, practical approach that &lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;works&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;. It is the hallmark of a mature organization, and it is the core principle of smart, successful teams that actually &lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;deliver&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Yet, despite all of the bluster, blather, and b.s. (mine included), the issue is really quite simple: If you can&#39;t be a team player, find another team.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_12_01_archive.html#8085325401781054098</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpgpnW3CepnFyln918r1BJHUQ7uoRSo9VX7MlImVff8a4LkND_-a45TG5gTW23jLlFHe5XpCngUKeWIXgn4QcqdlbICJAb0sONxNmn2WK55Wmxu3a1laoq_MxWBRbPSMdk6QLyAA/s72-c/riga_conference.JPG" height="72" width="72"/><thr:total>7</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-6269563820560662982</guid><pubDate>Thu, 30 Oct 2008 17:29:00 +0000</pubDate><atom:updated>2008-10-30T18:28:35.660-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">comcast</category><category domain="http://www.blogger.com/atom/ns#">network</category><title>Play Action Fake</title><description>&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I host a MySQL server for use by the Falcon team, and this requires business class broadband service.&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFiT2V-1Tl3oTnwhPP3nlEvGEVNwJltFQoo59OlXTCFq7FDJY8pBXuExKJA_V-97LwaLIvzFi1oA5vY7yk-cjUn_gpPSScw6l8NlXAVvsvzpo8lrzlP_4loWef7VMi3vzCd9jKww/s1600-h/closure.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 193px; height: 149px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFiT2V-1Tl3oTnwhPP3nlEvGEVNwJltFQoo59OlXTCFq7FDJY8pBXuExKJA_V-97LwaLIvzFi1oA5vY7yk-cjUn_gpPSScw6l8NlXAVvsvzpo8lrzlP_4loWef7VMi3vzCd9jKww/s320/closure.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5263081927702209234&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Comcast&lt;/span&gt; Business Services support has been consistently stellar. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Network or line problems are addressed within the same day, and &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I always get straight through to a knowledgeable person when I call support.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Recently, the coax connector on the cable modem/router snapped loose. I called Business Services, and within two hours a replacement router sat on my desk. I configured the device and called to have them enable it on their network. I got right through.&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&lt;blockquote&gt;&quot;This is Ron. How may I help you?&quot;&lt;/blockquote&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;Twentysomething&lt;/span&gt;, confident in tone. A good sign.&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;Hi Ron. This is Chris. I just configured a replacement router and need to have it enabled on your network.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Hard stop.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;That is not a router. It is a mod-em. We call it a cable mod-em.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Like I was &lt;span style=&quot;font-style: italic;&quot;&gt;five&lt;/span&gt;, or something.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;Ok&lt;/span&gt;, well, I use it to manage the network, that&#39;s why I call it a router.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;That is a cable modem, not a router.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Strictly speaking, he was right: the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;Comcast&lt;/span&gt; Business Gateway (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;SMC&lt;/span&gt; 8014) &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;modulates and demodulates the cable &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;signa&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;l and is therefore a cable modem, albeit one with router-y capabilities.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I called it a router anyway. Another question:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;I have two &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;Comcast&lt;/span&gt; devices. Next to the router is a Scientific Atlanta &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;DPX&lt;/span&gt;2203. It&#39;s what we get our TV and phone with. What do you call that?&quot;&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&lt;br /&gt;&lt;br /&gt;&quot;I have no idea what that is.&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;He should have. It was just a standard cable modem.&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;He probably doesn&#39;t do residential customer support. Let it go.&lt;br /&gt;&lt;/blockquote&gt;Ron logged on to the router. He did something and it rebooted.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Try it now.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;No joy. My carefully configured network ceased up like an &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;acrophobic&lt;/span&gt; mountain goat.&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;Ron, the LAN can&#39;t see the WAN, local &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;DHCP&lt;/span&gt; is busted, the NAT and DMZ configuration pages are disabled on the router and my server can&#39;t see the network.&quot;&lt;br /&gt;&lt;br /&gt;&quot;What&#39;s your server&#39;s &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;IP&lt;/span&gt;?&quot;&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;He shouldn&#39;t have to know, but I gave it to him. The router rebooted.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;Ok&lt;/span&gt;, try it now.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Better, but not right.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;The NAT and DMZ options are still disabled, and my local systems are assigned public &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;IPs&lt;/span&gt;. Not good.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I explained, patiently and at some length, that I wanted my local network &lt;span style=&quot;font-style: italic;&quot;&gt;behind&lt;/span&gt; the firewall and that my server had to bypass the firewall. I also didn&#39;t want my local systems using the block of static &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;IPs&lt;/span&gt; assigned to my account. Basic stuff, but Ron simply didn&#39;t grasp the concept.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Then he said this, I swear:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;I can&#39;t help you with that. Those features are disabled for your account.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Something had gone terribly, terribly wrong in my world. &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;Subarachnoid&lt;/span&gt; hemorrhage? Radon?&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Shake it off, Powers.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;Now, wait a minute. The router was shipped unlocked, just like my old router. I configured it, just like my old router. When you remotely configured it, those features became disabled. I NEED THEM. Did the firmware revision change or something?&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;Sometimes the firmware changes, but&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt; NAT is disabled. Y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_15&quot;&gt;ou&lt;/span&gt; do not need those features.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Clearly, I was being tested. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Ron said this with complete conviction, and it threw me.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;Ron, I most certainly DO need those features to configure my network. I had a server in the DMZ and a LAN behind the firewall, and now you&#39;re saying that I can no longer do that? Has my account status changed?&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;No, but we don&#39;t support those features. I really can&#39;t help you with that.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Confusion yielded to irritation.&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;Look, this is unacceptable. You replaced my router--sorry, &lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;cable modem&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;--but disabled the features that I was using. It&#39;s useless now. Please let me speak to your supervisor or someone else who can help.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Ron stumbled, then recovered.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;I can transfer you, but those features are not enabled for your account. We don&#39;t support NAT.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;My incredulity finally inspired a calm sense of purpose.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;I will appeal to Ron&#39;s higher mind. He can be reasoned with. He is stubborn because he is afraid. I know he is wrong and he suspects he is wrong but wants to appear confident like his fellow techs who really do know their stuff.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I chose to &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_16&quot;&gt;de&lt;/span&gt;-escalate and reason with him instead.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_17&quot;&gt;Ok&lt;/span&gt;, let&#39;s think this through. Assuming you are right, &lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;why is my laptop accessing the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_18&quot;&gt;Comcast&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_19&quot;&gt;DHCP&lt;/span&gt; server? &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Are you saying I can&#39;t even turn on the router&#39;s &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_20&quot;&gt;DHCP&lt;/span&gt;?&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;A pause.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Let me look.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The router rebooted. Third time.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Check it now.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;All lights were green. Homepages blossomed.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;There! Great! What did you change?&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;I enabled NAT.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I thanked him. He said to call back if I needed anything else.&lt;/span&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_10_01_archive.html#6269563820560662982</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFiT2V-1Tl3oTnwhPP3nlEvGEVNwJltFQoo59OlXTCFq7FDJY8pBXuExKJA_V-97LwaLIvzFi1oA5vY7yk-cjUn_gpPSScw6l8NlXAVvsvzpo8lrzlP_4loWef7VMi3vzCd9jKww/s72-c/closure.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-2047303435000590640</guid><pubDate>Sun, 26 Oct 2008 02:38:00 +0000</pubDate><atom:updated>2008-10-26T02:24:47.027-05:00</atom:updated><title>The Weekly Falcon Index</title><description>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Planned Falcon Blog posts: 4&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Actual posts: 4&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Hours resolving network outage due to physically damaged router: 3&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Hours from first service call that a new router arrived via courier: 2&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Hours haggling with Comcast tech over router configuration: 1&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Hours resolving concurrent but unrelated disk corruption: 2.5&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Hours locked out of building where I was supposed to speak at MySQL Meetup: 0.5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Falcon IRC non-system messages: 2661&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;IRC champ: Vlad (26%)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Runner-up: Lars-Erik (19%)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Highest percentage of smiley faces per lines of chat: 19%&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Friendliest chatter: Olav&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;German/Norwegian message ratio: 1:1&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;References to reiserfs: 13&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;References to&lt;span style=&quot;font-style: italic;&quot;&gt; &lt;/span&gt;prison: 2&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;References to football (soccer): 182&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Gratuitous references to Ramadan: 1&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Best quote: &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;You obviously do not live in an apartment with a bunch of left-wing girls.&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Source of quote: [redacted]&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://carotid.blogspot.com/2008_10_01_archive.html#2047303435000590640</link><author>noreply@blogger.com (Christopher Powers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-170138488530581812</guid><pubDate>Thu, 23 Oct 2008 05:14:00 +0000</pubDate><atom:updated>2008-10-23T12:59:48.850-05:00</atom:updated><title>Some Perspective on Recent Events, Part III</title><description>&lt;span style=&quot;font-style: italic;font-size:78%;&quot; &gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;[&lt;a href=&quot;http://carotid.blogspot.com/2008_10_01_archive.html#4084635939815363401&quot;&gt;Part I&lt;/a&gt;, &lt;a href=&quot;http://carotid.blogspot.com/2008_10_01_archive.html#3699705583291069856&quot;&gt;Part II&lt;/a&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;Perturbations in the Field&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;In the weeks leading up to the Dev meeting in Riga, the Falcon team dumped a record number of changes into the codebase, including a page cache optimization that  contained a severe but &lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXxEb5CZRsdRGbTlkBvwjEU0fVWbqfU4JJd2yZZySMz2dde8L-rMxM9Mj4WSlCwvK6dl6UnP-iYKg5Bqn7rvb_CrFn1QHcYveVbL8-g2ix9Tz7q_kOyT_xzrQPcqXQiPYCLPQTHA/s1600-h/chris_rigab.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 212px; height: 140px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXxEb5CZRsdRGbTlkBvwjEU0fVWbqfU4JJd2yZZySMz2dde8L-rMxM9Mj4WSlCwvK6dl6UnP-iYKg5Bqn7rvb_CrFn1QHcYveVbL8-g2ix9Tz7q_kOyT_xzrQPcqXQiPYCLPQTHA/s320/chris_rigab.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5260238839344819506&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;undetectable bug.&lt;br /&gt;&lt;br /&gt;The usual indicators offered no sign of trouble: the Pushbuild matrix was green, the Falcon regression tests passed, Syst&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;em QA reported nothing unusual.&lt;/span&gt; &lt;span style=&quot;font-family:verdana;&quot;&gt;It wasn&#39;t until Philip modified the System QA stress tests that a problem emerged.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The modification was simple: kill mysqld at the end of the test, then restart the server and wait for Falcon recovery to complete. This unsophisticated, almost whimsical improvisation should have amounted to little more than a savage afterthought in the test plan, however, not only did it expose a severe bug, it also revealed a serious gap in our test coverage.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;What else had we missed?&lt;/span&gt; &lt;span style=&quot;font-family:verdana;&quot;&gt;Jim surfaced an old argument:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;The question is how something that broken could escape detection.&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;What we really need is an internal application that actually uses Falcon for something we care about. If we were actually using it, we would have noticed the breakage in about a minute.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;In fact, MySQL 4.1, 5.0 and 5.1 is used extensively throughout development. We last discussed &lt;a href=&quot;http://en.wikipedia.org/wiki/Dogfooding&quot;&gt;dogfooding&lt;/a&gt; Falcon at the London meeting in May, though nothing came of it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;A Personal Vendetta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The discussion continued.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Philip&lt;/span&gt;:&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;In an ideal world, we should have had a recovery test in PushBuild or in the Weekly Falcon Test starting sometime around Nixon&#39;s resignation.&quot;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;I wish this bug was caught in the course of the execution of some determined, comprehensive QA strategy for Falcon. Instead, it was caught because I happened to have a personal vendetta against Falcon recovery that drove me to create those tests.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Manyi&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;1) We need better coverage on regression testing. Serious side-effects of a patch from September were not caught by regression testing until Philip introduced more recovery tests. We need to complete the remaining tasks on FalconQAIdeas and improve the regression testing we have today.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;2) Falcon patches tend to be large and contain several bug fixes and worklogs, that adds complexity and makes it more difficult for the reviews. One way to solve this is having smaller patches and each patch corresponds to a bug report or a worklog.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Ann:&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&quot;Neither worklogs nor small patches would have made this any easier to find. You have to understand the code, specifically that there can be several dirty page with the same page number and walk the hash duplicates chain to get all the pages written. I doubt that anybody but Jim would have caught that subtlety.&quot;&lt;/blockquote&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Hakan had seen the recovery failure, but hadn&#39;t realized it:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Actually it was caught by the weekly DBT2 testing with 100 warehouses, where we load the data and restart the server. There were couple of 100 warehouses runs missing in September, but I ignored it because of Falcon being unstable in general.&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Todo: Add a hook into DBT2 to figure out why a 100 warehouse run was not started.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Vlad:&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7mTphNGJbSNDGuvkIr2jYNaN63jY-H1m_l6eGLAaVQ6GWiXI929P0NG5VkTAGuQvqd2jAMTDNDEuggf0boLfIRKWl1KNoFBJt85smQtOQ4qD8uReQKvvlKH9uXmz0y4zjShJtig/s1600-h/burlington_a.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 177px; height: 170px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7mTphNGJbSNDGuvkIr2jYNaN63jY-H1m_l6eGLAaVQ6GWiXI929P0NG5VkTAGuQvqd2jAMTDNDEuggf0boLfIRKWl1KNoFBJt85smQtOQ4qD8uReQKvvlKH9uXmz0y4zjShJtig/s320/burlington_a.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5260238030893286450&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;I&#39;m sorry to be annoying with my ideas of quality, but I really believe if we had good unit testing (and one for page cache of course) such regression would be caught there. SystemQA test is good to find regressions but it does not help localize the error...&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Jim&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;I&#39;m the heretic about code reviews. An architectural discussion before the design is cast into code is a hundred times more useful than a code review afterward...a bad implementation of a good design is easier to fix than a good implementation of a bad design.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;And on it went.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;El Photo Grande&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;My take was that this bug did us a favor:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;I think this entire episode was a gift. We identified the cause of a serious, complex &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;problem and consequently identified holes in our process.&lt;/span&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Strictly speaking, our QA system worked, albeit very inefficiently, because the bug didn&#39;t make its way into a telco switch or a 911 call center or Lehman Brothers financial system or even 6.0.7 for that matter (ok, maybe that was luck), so let&#39;s improve the process and move on.&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I continued with my analysis, bordering on bureaucratic blather:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;What Happened&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;There was &quot;perfect storm&quot; of concurrent events:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;A complex, multi-part change to a core component (page cache), not fully reviewed&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Other core changes piled on top (online alter, memory manager, transaction manager)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Disproportional reliance on Pushbuild I results&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;SystemQA stress tests were changed, thus no pass/fail history (was recovery bug new or old?)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;DBT2 failures were detected, but not correlated&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;What To Do&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;(I promise that these ideas are perfect and that there will never be another problem if we adopt them.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;Stricter Code Reviews&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;One commit-one bug (mea culpa on this one!)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Stability is KING&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Jim is still the reigning Falcon expert. USE HIM. Nag, if necessary.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Changes to core components (page cache, memory manager) require a higher barrier of entry:&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Clear, reproducible proof of benefit &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Clear evidence of no regression&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Assign a reviewer to understand EVERY LINE of the fix&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I also think we should suspend all performance changes until we get results from PAE.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;Assign Experts&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Assign responsibility for subsystem expertise. I&#39;ve seen this work on other teams (&quot;Who&#39;s the DMA guy? Ralph? Ok, great.&quot;) Each subsystem (TransactionManager, Cache) has an expert, a go-to person whose sign-off is required for code reviews.&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://lh4.ggpht.com/danbanyan/SQAgU7lwzBI/AAAAAAAABWU/g6DVTn8pwyA/s128/john_emb.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 83px; height: 149px;&quot; src=&quot;http://lh4.ggpht.com/danbanyan/SQAgU7lwzBI/AAAAAAAABWU/g6DVTn8pwyA/s128/john_emb.JPG&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Cross-component expertise is important but we need more depth.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;&quot;El Photo Grande&quot; for Falcon QA&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;We need the equivalent of Homeland Security for Falcon QA, an aggregation of QA intelligence such that we can, perhaps in a dashboard or something, see the overall state of QA: Pushbuilds I&amp;amp;II, SystemQA, DBT2, Performance, etc.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Once we establish a comprehensive QA baseline, then subtle-but-catastrophic bugs will manifest as perturbations in the field.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Ann thoughtfully countered many of my suggestions:&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEMAWFqQRamu6e1LCrGV2wDkPb8u7_s0pM0AgOGIgb8I7uoG6-5GcDO1NNS_Vj4y9W_SXLheaeSOwbrDiMPP861Z-zk_wiEJAzeSNECHZR0vU8CffmL3qyEVl7WhPc4lpLQRHBqw/s1600-h/falcon_heidelberg.JPG&quot;&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;It&#39;s not possible to do a visual code review of something as complex as Kelly&#39;s flush mechanism.&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;&lt;br /&gt;&lt;br /&gt;&quot;The problem is that we have to develop QA in parallel with the code.&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;This is all hard stuff, particularly recovery since it&#39;s not easy to make it deterministic, and if you do make it deterministic, you miss cases.&quot;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;People are better at analyzing and understanding designs than code.&lt;/span&gt;&quot;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I disagree with Jim and Ann on the value of code reviews. Yes, senior engineers should spend mor&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;e &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;time reviewing design than source code, but  my experience has been that a second or third pair of eyes will always catch stuff--always--and that changes to core components must be reviewed by senior engineers. Less critical changes require less scrutiny.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;But code reviews always miss stuff, too. &lt;span style=&quot;font-style: italic;&quot;&gt;Always&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;The Mansfield Anomaly&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;One case in particular comes to mind, a pacemaker firmware defect so subtle and so pernicious that it was named in honor of the engineer who introduced it.&lt;br /&gt;&lt;br /&gt;The &quot;Mansfield Anomaly&quot; evaded in-depth peer reviews, design analysis tests, unit tests, s&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEMAWFqQRamu6e1LCrGV2wDkPb8u7_s0pM0AgOGIgb8I7uoG6-5GcDO1NNS_Vj4y9W_SXLheaeSOwbrDiMPP861Z-zk_wiEJAzeSNECHZR0vU8CffmL3qyEVl7WhPc4lpLQRHBqw/s1600-h/falcon_heidelberg.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 123px; height: 123px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEMAWFqQRamu6e1LCrGV2wDkPb8u7_s0pM0AgOGIgb8I7uoG6-5GcDO1NNS_Vj4y9W_SXLheaeSOwbrDiMPP861Z-zk_wiEJAzeSNECHZR0vU8CffmL3qyEVl7WhPc4lpLQRHBqw/s320/falcon_heidelberg.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5260238035723660194&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;ystem verification and validation, pre-clinical testing and even clinical trials. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;It never manifested as a device failure in the field, fortunately, and&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; the bug was eventually found in-house and a firmware patch released.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I was introduced to the Mansfield Anomaly by an advisory level engineer &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;during an informal training session. He &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;flashed a rather innocuous &#39;switch&#39; statement on the screen  and challenged the ten or so engineers in the room to find the bug.&lt;br /&gt;&lt;br /&gt;No one did.&lt;br /&gt;&lt;br /&gt;After entertaining a few guesses, he pointed out a very subtle cut-and-paste error that could result in a device failure, but only during a 4ms hardware timing window. Anyone could (and did) miss it, especially in the context of a more comprehensive review with hundreds of lines of code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;A Savage Pleasure&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;So, back to the original question: How can the Falcon team better ensure that subtle-&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;but-devastating bugs are caught? Code reviews? Design reviews? Dogfooding? Unit tests? More system tests? The MySQL community?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;All of the above, of course, but what can a team do mid-project? What is the most effective change to make now?&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLovV8lRZUrKAC1W5b8UW9-h02AUDxakAstlXgryGegiXPrY6jg13zSVoCdrz-Dgc9QHyXcNnwNqojk3iKW4wK9I3PzkaFFd0D4br0WeiM2zTCp3-TP1JTeSz48Qlu1HzQUk0gvw/s1600-h/Pushbuild2.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 174px; height: 121px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLovV8lRZUrKAC1W5b8UW9-h02AUDxakAstlXgryGegiXPrY6jg13zSVoCdrz-Dgc9QHyXcNnwNqojk3iKW4wK9I3PzkaFFd0D4br0WeiM2zTCp3-TP1JTeSz48Qlu1HzQUk0gvw/s320/Pushbuild2.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5260236781155312962&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Here&#39;s what we&#39;ve done so far:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;More eyes on the code--all pushes must be code-reviewed&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Smaller pushes into the codebase&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Public intra-team email: falcon@lists.mysql.com&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Falcon QA is moving ahead with new tests&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Run the new tests on previous releases, compare with current or pending release&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Focus on stability in favor of performance--for now&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Save before and after file snapshots for recovery debugging&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Pushbuild2: a new array of servers dedicated to automated System QA stress tests&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;font-size:85%;&quot;&gt; &lt;span style=&quot;font-family:verdana;&quot;&gt;Item 8 is my personal favorite. Stress tests are irrational killers, but I find them to be a very satisfying challenge, which brings to mind one of my favorite quotes:&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;Problem-solving is hunting; it is savage pleasure and we are born to it.&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;--Thomas Harris, &lt;span style=&quot;font-style: italic;&quot;&gt;Silence of the Lambs&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;  &lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_10_01_archive.html#170138488530581812</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXxEb5CZRsdRGbTlkBvwjEU0fVWbqfU4JJd2yZZySMz2dde8L-rMxM9Mj4WSlCwvK6dl6UnP-iYKg5Bqn7rvb_CrFn1QHcYveVbL8-g2ix9Tz7q_kOyT_xzrQPcqXQiPYCLPQTHA/s72-c/chris_rigab.JPG" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-3039746683140353634</guid><pubDate>Wed, 22 Oct 2008 03:19:00 +0000</pubDate><atom:updated>2008-10-21T23:25:53.695-05:00</atom:updated><title>Bursty</title><description>&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;That&#39;s always been my M.O., I guess, but last week &lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;was&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; pretty busy:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-family: verdana;&quot;&gt;Flyway&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I went down to the &lt;/span&gt;&lt;a style=&quot;font-family: verdana;&quot; href=&quot;http://www.flywayfilmfestival.org/&quot;&gt;Flyway Film Festival&lt;/a&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; in Pepin, Wisconsin over the weekend to screen &lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Cottonwood&quot;, a short film I directed over the summer as part of the &lt;/span&gt;&lt;a style=&quot;font-family: verdana;&quot; href=&quot;http://www.48hourfilm.com/&quot;&gt;48 Hour Film Project&lt;/a&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://sites.google.com/site/sgfilms48/&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 187px; height: 234px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivnbPmhlYtlibDf3oWgUUcQs0SM-IfIH8ZAKNc6EaWstdRp3HfmQfw8S4-fv4izVuOpXCQSRVqYNlASHqCGNDiH8qCoW83B0EW3mJP5FvmZvMjl-ShjCLi4UMBLxyLVgvE6mT2eQ/s320/CottonwoodPoster.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5259818853810874738&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;I gave a brief Q&amp;amp;A about the making of the film, then did some schmoozing at the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;filmmaker&#39;s&lt;/span&gt; reception. I had a great chat with the director of &quot;&lt;/span&gt;&lt;a style=&quot;font-family: verdana;&quot; href=&quot;http://www.imdb.com/title/tt0093833/&quot;&gt;Redneck Zombies&lt;/a&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;--the guy was hilarious.&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&quot;Cottonwood&quot; is five minutes long--six with credits--and was written, shot, edited and scored in exactly forty-eight hours. And although &quot;Cottonwood&quot; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;font-size:85%;&quot;  &gt;looks&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; like a film that was made in an absolute, mad panic (it was), we had a blast doing it.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family: verdana; font-weight: bold;&quot;&gt;Minnesota MySQL+&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;PHP&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;Meetup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Last Wednesday, I had the great pleasure of attending the local MySQL+&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;PHP&lt;/span&gt; &lt;/span&gt;&lt;a style=&quot;font-family: verdana;&quot; href=&quot;http://mysql.meetup.com/92/calendar/8875520/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;meetup&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;The attendance was excellent, the attendees were interesting, and I had the opportunity to talk about Falcon, give a rundown of the Riga meeting, and dispel (I think) some of the rumors making the rounds in the MySQL community.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;There were many questions about the Sun acquisition and its effect on MySQL. I was happy to emphasize how positive the acquisition has been, most recently evidenced by the addition of several developers to Falcon and a commitment to avail us of the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;PAE&lt;/span&gt; performance team&#39;s expertise.&lt;br /&gt;&lt;br /&gt;I also met three local MySQL customers who are interested in giving Falcon a test run with their web applications. When we&#39;re closer to beta, I&#39;ll arrange to visit them and help with the configuration.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: verdana; font-weight: bold;&quot;&gt;Chill/Thaw Madness&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;I spent the rest of the week and weekend completely immersed in debugging several chill/thaw and concurrent online alter bugs emanating from the System &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;QA&lt;/span&gt; stress tests. Falcon must be stable before we can hand it over to the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;PAE&lt;/span&gt; team for testing--that has been my number 1 priority since Riga.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;I have a pile of fixes to push--some of which I will do tonight--but after wrangling with several nasty thaw bugs, I&#39;ve come to realize that any mechanism that complicated should probably be scrapped (more on this as it develops.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;Ok&lt;/span&gt;, now I&#39;m getting agitated. Back to it.&lt;/span&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_10_01_archive.html#3039746683140353634</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivnbPmhlYtlibDf3oWgUUcQs0SM-IfIH8ZAKNc6EaWstdRp3HfmQfw8S4-fv4izVuOpXCQSRVqYNlASHqCGNDiH8qCoW83B0EW3mJP5FvmZvMjl-ShjCLi4UMBLxyLVgvE6mT2eQ/s72-c/CottonwoodPoster.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-3699705583291069856</guid><pubDate>Wed, 22 Oct 2008 02:46:00 +0000</pubDate><atom:updated>2008-10-21T23:44:32.059-05:00</atom:updated><title>Some Perspective on Recent Events, Part II</title><description>&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;&quot;Why Falcon Doesn&#39;t Work Anymore&quot;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;Recap: After the MySQL Dev meeting in Riga, Philip &quot;&lt;a href=&quot;http://carotid.blogspot.com/2008_09_01_archive.html#521833683342482424&quot;&gt;Troublemaker&lt;/a&gt;&quot; Stoev, reported a &lt;a href=&quot;http://carotid.blogspot.com/2008_10_01_archive.html#4084635939815363401&quot;&gt;serious problem&lt;/a&gt; with Falcon recovery. Ann suspected that the problem not a true recovery bug, which Jim confirmed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The problem wasn&#39;t that we found a bug. The problem was that we &lt;span style=&quot;font-style: italic;&quot;&gt;didn&#39;t&lt;/span&gt;.&lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;&lt;br /&gt;&lt;br /&gt;Run-up to Riga&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;The Falcon team was really rockin&#39; in the last half of August and early September. With the Dev meeting looming, all changes for the 6.0.7 alpha had to be pushed by month&#39;s end, otherwise we&#39;d lose weeks of QA testing.&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbEQ8y1ngkWIejvDY1Wg4KGQn7T5SE_U8j29FKZ0BtJUpLu53Vf0cAeyvPDcOSg2Ppw05a7j_GZXhhUjsHK1KPWjCiFKDNLwvG8QjINyUyTi8nuiPfG0hUANvra0K-PpB5VAbVPQ/s1600-h/kevin_omer_kristofer.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 181px; height: 164px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbEQ8y1ngkWIejvDY1Wg4KGQn7T5SE_U8j29FKZ0BtJUpLu53Vf0cAeyvPDcOSg2Ppw05a7j_GZXhhUjsHK1KPWjCiFKDNLwvG8QjINyUyTi8nuiPfG0hUANvra0K-PpB5VAbVPQ/s320/kevin_omer_kristofer.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5259809015618050898&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;Lots of stuff was dumped into the codebase during that short time. The Falcon weekly report for August 22 records pushes to the Transaction Manager, Memory Manager, Page Cache and Online Alter, just to name a few.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The build team finally cloned mysql-6.0-falcon on September 4th, but the heavy volume of source changes continued, peaking on the 10th, one week before the conference:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:78%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;22:57:47 &amp;lt;wlad&amp;gt; Today is the absolute world-record in number of pushes/hour in the Falcon tree&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;22:57:47 &amp;lt;wlad&amp;gt; I think we already had 8 and seeing Chris&#39; determination, there are more to come:)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;22:58:56 &amp;lt;cpowers&amp;gt; Doing my best...iterative process of refinement, you know...&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;22:59:19 &amp;lt;cpowers&amp;gt; Got to keep them pushbuild servers happy&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;22:59:27 * wlad applauds:)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Pushbuild is the MySQL automated QA system. Every code push into the source tree triggers a wave of regression tests across twelve uniquely configured servers. Test results are displayed within in a simple matrix, where each cell represents the status of a single code change on a single server. If the cell is green, all tests passed on that server. Red indicates a test failure, build break or even a compiler warning.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjErwNeH6wfKXA5O-LPC2F6qh7FBON3FArecf2h60_5Fp0t-0h4gPq7Odv_gjbFjJlrNsgKmog1fFgKKQSbSPwYgNbfMtUjE1UzI3KOU7K6WeFX42D0twfikCpXzjDd5xo2Utj46A/s1600-h/pushbuild.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 232px; height: 145px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjErwNeH6wfKXA5O-LPC2F6qh7FBON3FArecf2h60_5Fp0t-0h4gPq7Odv_gjbFjJlrNsgKmog1fFgKKQSbSPwYgNbfMtUjE1UzI3KOU7K6WeFX42D0twfikCpXzjDd5xo2Utj46A/s320/pushbuild.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5259831728402464594&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;A high number concurrent pushes will cause Pushbuild tests to stack up, creating a multi-hour delay before results are available. Such was the case during the Great Week of Pushes as the Falcon team checked in change after change. The frantic pace also resulted in several preventable regressions that kicked the tree back into the red, necessitating repeat check-ins and further aggravating the Pushbuild backlog.&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;However, by the end of the week, Pushbuild returned to its refreshing, reassuringly green self, and we prepared for our journey to Latvia.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;Worklog #4479&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;During the pre-Dev meeting melee, one item made it into Falcon tree with relatively little fanfare: a two-part cache optimization provided by our performance expert, Kelly Long. From the associated worklog descriptions:&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;Falcon page cache has a findBuffer() routine that looks at the BDB list starting at the oldest and moving toward the youngest. This code is single threaded and can include time consuming disk IO. This change will increase the concurrency by executing most of the algorithm without locks.&lt;br /&gt;&lt;br /&gt;Falcon page cache currently uses a single lock on the entire hash table. This change will create a lock per hash bucket allowing for higher concurrency.&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The general idea was to push locking further down into the cache by replacing a single exclusive lock at the top with separate locks for each slot of the hash table.&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVRCKNaKIEJqNGkX8QAXBvcj_ijJaHI1Bj_YjwUyGqI63r22o_odc23mTgyaObpbLR-FWqhmMH6X2IAffIE3I226kt_mkAY_RCTEfV-Vz4AcqiG_Z8RBXUoPUWEUmeLoT3Md8DYQ/s1600-h/chris_limo.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 170px; height: 127px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVRCKNaKIEJqNGkX8QAXBvcj_ijJaHI1Bj_YjwUyGqI63r22o_odc23mTgyaObpbLR-FWqhmMH6X2IAffIE3I226kt_mkAY_RCTEfV-Vz4AcqiG_Z8RBXUoPUWEUmeLoT3Md8DYQ/s320/chris_limo.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5259809965028084466&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Jim rejected the notion when it was first proposed back in May, pointing out that the algorithm would effectively triple the number of exclusive locks, even for cache misses.&lt;br /&gt;&lt;br /&gt;Kelly was convinced, however, that the change would allow for better parallelism, and that a loss in performance at lower concurrency would be more than compensated by a performance gain at higher concurrency. His own benchmarks appeared to support his contention.&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;The issue was revisited--contentiously--at the July meeting in Boston, but with no consensus. As the Dev meeting grew near, Kevin reconsidered the matter and eventually granted approval for the change, so Kelly&#39;s cache optimization finally made its way into the Falcon tree--along with twenty-five other changes in the same week.&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Hard Landing&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The Falcon team returned from Riga at the end of September, tanned, rested and ready for the drive towards Falcon beta. No sooner did we sit down at our dusty keyboards than did Philip alert us to new problems with Falcon recovery.&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://lh6.ggpht.com/danbanyan/SP6Nq9GwA2I/AAAAAAAABSk/GGBuAtktxhc/kelly_paul_allan.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 189px; height: 134px;&quot; src=&quot;http://lh6.ggpht.com/danbanyan/SP6Nq9GwA2I/AAAAAAAABSk/GGBuAtktxhc/kelly_paul_allan.JPG&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;Recovery is a normal part of the engine initialization process that reestablishes the previous in-memory state and applies pending updates following an abrupt or abnormal shutdown. Recovery failures are serious and notoriously difficult to debug, so Philip&#39;s discovery of new failures stirred things up considerably.&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;Fortunately, Ann had a hunch as to what the problem might be. After some digging, Jim pinpointed the failure as a bug in the oft-debated cache optimization:&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;The problem is simple and straight forward. Cache.cpp is totally broken. More specifically, the I/O thread (and architecture) is totally broken.&quot;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&quot;When a checkpoint was required, a dirty page bitmap was produced. The bitmap, however, didn&#39;t contain the table space id, so ioThread had to loop through the collisions in the hash table to find the dirty buffer(s).&quot;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&quot;This only handles the first Bdb in a collision chain. In almost all circumstances, this will be the falcon_user tablespace. Consequently, dirty pages in falcon_master are never written.&quot;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&quot;I&#39;m sorry it has taken this long to discover that Philip&#39;s problems were page cache bugs masquerading as recovery bugs.&quot;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&quot;I think we may need to reconsider some of our procedures.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The fix appeared to be simple enough--ten minutes by Kelly&#39;s estimation--but rather than spin more cycles on optimization, Kevin chose a reliable but somewhat heavy-handed course of action:&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;In light of this analysis, I think it is prudent to back out Kelly&#39;s cache changes. We need to focus on delivering the most stable Falcon engine that we can, most immediately, to the [performance] team, who are our #1 customer right now.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The performance team was the Sun PAE group lead by Allan Packer. During the Dev meeting, we agreed to get a stable version of Falcon to them ASAP so they could begin their own in-depth performance analysis.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;But the issue at hand was much larger than a code regression--we&#39;d certainly had them before--the issue was that a serious bug escaped detection.&lt;br /&gt;&lt;br /&gt;Vlad got right to the heart of the matter:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;I do not see any way to prevent &#39;totally broken&#39; in the future. How should we should change our processes to detect an error before the push? It passed all the system tests.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Indeed, the problem wasn&#39;t with the Falcon code, it was with the Falcon process.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;(The third and final installment the story continues tomorrow, &quot;Perturbations in the Field&quot;)&lt;/span&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_10_01_archive.html#3699705583291069856</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbEQ8y1ngkWIejvDY1Wg4KGQn7T5SE_U8j29FKZ0BtJUpLu53Vf0cAeyvPDcOSg2Ppw05a7j_GZXhhUjsHK1KPWjCiFKDNLwvG8QjINyUyTi8nuiPfG0hUANvra0K-PpB5VAbVPQ/s72-c/kevin_omer_kristofer.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-1744084800665644232</guid><pubDate>Wed, 08 Oct 2008 00:55:00 +0000</pubDate><atom:updated>2008-10-08T12:54:57.410-05:00</atom:updated><title>Sort of Out of Sorts</title><description>&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I promised &lt;/span&gt;&lt;a style=&quot;font-family: verdana;&quot; href=&quot;http://datacharmer.blogspot.com/&quot;&gt;Giuseppe&lt;/a&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; that I&#39;d post Part II of &quot;Some Perspective on Recent Events&quot; today, but I got hit w/ some kind of bug.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Last month, authorities at Schiphol duly confiscated my &lt;/span&gt;&lt;a style=&quot;font-family: verdana;&quot; href=&quot;http://en.wikipedia.org/wiki/Riga_Black_Balsam&quot;&gt;Black  Baslam&lt;/a&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;, aka &quot;The Latvian Hammer&quot;, so I&#39;ve had to resort to bland, marginally  effective over-the-counter remedies.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Let&#39;s see how tomorrow goes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_10_01_archive.html#1744084800665644232</link><author>noreply@blogger.com (Christopher Powers)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-463871311689388384</guid><pubDate>Mon, 06 Oct 2008 10:54:00 +0000</pubDate><atom:updated>2008-10-06T06:58:13.124-05:00</atom:updated><title>Prolificity</title><description>&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I woke up today at 4:45 am, which is a completely worthless time to be awake. I lay there for twenty minutes tracking post-REM phosphenes and thinking random thoughts. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Here&#39;s one of them.&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;http://www.planetmysql.org/&quot;&gt;Planet MySQL&lt;/a&gt; aggregator ranks blogs according to &#39;activity&#39;, or number of posts in the last month. I typically care little for such things because unnecessary attention attracts unwanted expectation. However, &lt;span style=&quot;font-style: italic;&quot;&gt;were&lt;/span&gt; one to care about such things, this method of ranking favors those who tend to post like this:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;Sunday, October 5&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I broke my pencil but that&#39;s ok because I have another pencil.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;Monday, October 6&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I like Drizzle.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;Tuesday, October 7&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I like, &lt;span style=&quot;font-style: italic;&quot;&gt;drizzle.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;Wednesday, October 8&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I believe I lost my shoes, Clyde. I think the dog got &#39;em.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Free idea: Rank blogs using a &lt;span style=&quot;font-style: italic;&quot;&gt;Prolificity&lt;/span&gt; factor that incorporates two subfactors, &lt;span style=&quot;font-style: italic;&quot;&gt;Currency&lt;/span&gt; and &lt;span style=&quot;font-style: italic;&quot;&gt;Abundance&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Currency&lt;/span&gt; is the number of posts in the last month, and is a fair measure of how current the blog is.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Abundance&lt;/span&gt; is the moving weighted average of word count per post, which is a measure of the substance of the average blog post.&lt;br /&gt;&lt;br /&gt;A moving weighted average will favor more recent posts, so that 100,000-word post of your PhD thesis back in 2002--though a fine contribution to All Things--would have little relevance today.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Expressed formulaicly,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Prolificity = Currency*Abundance&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Let&#39;s say &lt;span style=&quot;font-style: italic;&quot;&gt;Currency&lt;/span&gt; wins in the event of a tie, so maybe this:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Prolificity = Currency*Abundance + Currency&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;For example,&lt;br /&gt;&lt;blockquote&gt;Blog Theta: 10 posts, 2000 words, 200 words/post MWA last 10 posts&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Currency &lt;/span&gt;= 10, &lt;span style=&quot;font-style: italic;&quot;&gt;Abundance &lt;/span&gt;= 200&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Prolificity &lt;/span&gt;= 10*200 + 10 = &lt;span style=&quot;font-weight: bold;&quot;&gt;2010&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Blog Zeta: 2 posts, 2000 words, 1000 words/post MWA last 10 posts&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Currency &lt;/span&gt;= 2, &lt;span style=&quot;font-style: italic;&quot;&gt;Abundance &lt;/span&gt;= 1000&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Prolificity &lt;/span&gt;= 2*1000 + 2 = &lt;span style=&quot;font-weight: bold;&quot;&gt;2002&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Blog Theta ranks because it&#39;s more current, but Blog Zeta isn&#39;t entirely out of the game. Perhaps the formula could be tweaked, but I&#39;ll leave that as an exercise for the reader.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_10_01_archive.html#463871311689388384</link><author>noreply@blogger.com (Christopher Powers)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-4084635939815363401</guid><pubDate>Sun, 05 Oct 2008 23:31:00 +0000</pubDate><atom:updated>2008-10-06T05:18:06.762-05:00</atom:updated><title>Some Perspective on Recent Events</title><description>&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;span style=&quot;font-style: italic;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;This has nothing to do with the financial crisis or the McCain/&lt;del&gt;Fey&lt;/del&gt;Palin ticket. Sorry.&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;]&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSoH2iO97XKrmPEDNFZsoacr-1_yoDwuKMH69YEg9DPr6p43Wmw5YZIoehQ4wUCoOCVzA9HdJsUF1JqONQLMDxcQu-UV6NmJX3v0wG7AAPshqSE4BgCf_-KCCSNDT5RHMIyQj_iA/s1600-h/chris_heidelberg_castle_moat.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 169px; height: 254px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSoH2iO97XKrmPEDNFZsoacr-1_yoDwuKMH69YEg9DPr6p43Wmw5YZIoehQ4wUCoOCVzA9HdJsUF1JqONQLMDxcQu-UV6NmJX3v0wG7AAPshqSE4BgCf_-KCCSNDT5RHMIyQj_iA/s400/chris_heidelberg_castle_moat.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5253833010906452562&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;Last Wednesday began innocently enough. Philip&#39;s email to the Falcon team, &lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&quot;Regarding Falcon&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt; Recovery&quot;, &lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;lamented the lack of progress in fixing recovery bugs. He detailed specific failures &lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;th&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;at he was seeing, many of them new, and pointed out that that the number of recovery bugs was increasing. He closed with&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;blockquote&gt;&quot;All of this means that the recovery problems must be tackled immediately and head-on. A database without functioning recovery can be at most alpha-quality software.&quot;&lt;/blockquote&gt;&lt;/span&gt;He was, of course, absolutely right. The lack of reliable database re&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;covery is li&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;ke flying with non-locking landing gear, so we took &lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;a hard look at the &lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;problem.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;Then all hell broke loo&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;se.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-size:100%;&quot; &gt;Falcon Recovery&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;Falcon recovery is the equivalent of waking up after a night of partying and t&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;rying to figure out where you are, what you did and who you did it with (I have never experienced such a thing. Ever.)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;When Falcon starts, it determines whether it was shutdown cleanly. If not, it invoke&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;s recovery to apply the remaining active parts of the seria&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;l log, beginning with the last serial log entry, then backing up to its &lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;recovery start point.&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHDVqQo9aAjNPWoj4AqhXSn9ZrWR7yfF6IMgDkN0QCXdUsximmrgUORdLyQdGD74QHcPhZ4gqs0MwoQbxqZEomiAZjKEor9M7iKgJk0MaBWG6cXNESwYXSsF-3LU-v0Q9Ep-DvZQ/s1600-h/hakan_vlad.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 235px; height: 164px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHDVqQo9aAjNPWoj4AqhXSn9ZrWR7yfF6IMgDkN0QCXdUsximmrgUORdLyQdGD74QHcPhZ4gqs0MwoQbxqZEomiAZjKEor9M7iKgJk0MaBWG6cXNESwYXSsF-3LU-v0Q9Ep-DvZQ/s400/hakan_vlad.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5253980731122113810&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;This multi-pha&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;se procedure must work without fail, every time, even following an a&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;borted recov&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;ery attempt (this is called double recovery.)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;The recovery process applies changes in the serial log to pag&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;e&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt; i&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;mages&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt; in the page ca&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;che&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;, u&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;ntil they are all done, then flushes the cache by forcing a check&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;p&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;oint.&lt;/span&gt; &lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;Falcon does this in &lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;three passes through the serial log:&lt;br /&gt;&lt;br /&gt;Phase I: Take Inventory, Establish State&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;- Determine transaction states&lt;br /&gt;- Determine object states (track state transitions, record final state)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;- Determine the last checkpointed record (prior objects guaranteed on dis&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;k)&lt;br /&gt;&lt;br /&gt;Phase II: Physical Allocation&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;- Allocate and release required pages and sections&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;- Track object &quot;incarnation&quot; and state--update active objec&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;ts with last incarnation&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;Phase III: Logical Application&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;- Apply data and index changes (avoid reallocating pages in use)&lt;br /&gt;&lt;br /&gt;(For details, have a look at SerialLog::recover() in SerialLog.cpp.)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;Recovery failures are notoriously difficult to debug. Sometimes you have to deter&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;mine not only what did happen, but also what &lt;span style=&quot;font-style: italic;&quot;&gt;didn&#39;t&lt;/span&gt; happen, such as a missing page update. And quite apart from tracking va&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;rious types of recovery objects, recovery must also tra&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;ck the state or &quot;incarnation&quot; of each recovery object. For instance, if a record was updated &lt;/span&gt; &lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;five times, we only care about the most recent version--the fifth incarnation&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;(Free idea: &quot;The Fifth Incarnation&quot;, an epic tale of lives lived, lives lost, loves lived and lost loves. At quality book stores near you.)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-size:100%;&quot; &gt;&quot;Expected 7, got 2&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;Philip modified the SystemQA stress tests to force a recovery and found that the engine crashed every time. Up to this point, Falcon recovery was regarded as generally reliable, though not flawless, but now we had a reproducible failure that always manifested the same way:&lt;br /&gt;&lt;blockquote&gt;Fatal assertion in Cache::fetchPage(), &quot;Error: page 103/0 wrong page type, expected 7 got 2&quot;.&lt;/blockquote&gt;Cache::fetchPage() lies within the very nucleus of the Falcon database engine. It is the cosmological core through which every essential database action must flow.&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;text-align: right;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1kfkKuF3DiaFJBUDjQpWemn3R9hGJKAWlD1AN7mGSmedgUIU1RTJQQ5Rg_aRuTnS08jbSjQ5z_DW-YQ28y_lTTjYWF175ukdBjQzHfQvMJA97SHBhlkpINePZcVjQDvi0xa0Z6A/s1600-h/gloucester_harbor_manyi_kevin.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 245px; height: 175px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1kfkKuF3DiaFJBUDjQpWemn3R9hGJKAWlD1AN7mGSmedgUIU1RTJQQ5Rg_aRuTnS08jbSjQ5z_DW-YQ28y_lTTjYWF175ukdBjQzHfQvMJA97SHBhlkpINePZcVjQDvi0xa0Z6A/s400/gloucester_harbor_manyi_kevin.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5253981029257616018&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt; &lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;Getting a &quot;wrong page type&quot; assertion in Cache::fetchPage() is like asking you&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;r HAL 9000 to compute &quot;4 + 4 and getting &quot;green&quot; for an answer. This is not the type of error you ever wa&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;nt to encounter in a database, or in Jupiter orbit for that matter, because it puts everything into question. Nothing can be trusted--data pages, index pages, orbital trajectories--nothing.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;Given that the cache error appeared to occur only during recovery, and given the c&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;omplexity of the recovery process, it was only natural to assume that we had somehow failed to properly record a page update within the serial log. (We later discovered that the error had indeed occurred elsewhere, but only occasionally. Hakan saw it during DBT2 testing, and I had also seen it&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt; testing online alter.)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-size:100%;&quot; &gt;&quot;This used to work. Always&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;Ninety minutes after Philip&#39;s email, Ann responded:&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;This appears to be a recently introduced problem that (probably) has noth&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;ng to do with recovery. It appears that the PageInventoryPage is not being written oft&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;en enough. I don&#39;t know why. As a result, pages that are actually in use are recorded as being free. This isn&#39;t a problem for a running Falcon becaus&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;e the page is up-to-date in the cache. After a crash, the out-of-date version is read from disk and pages are&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; reallocated.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;Falcon uses PageInventoryPages (PIPs) to track used and available pages, so &lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;an out-of-date PIP implies a very serious corruption.&lt;br /&gt;&lt;br /&gt;Jim provided his assessment shortly thereafter:&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;It doesn&#39;t work at all. There has been a huge regression. The simplest&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; of all possible test -- start with a clean database, create a single table, kill the server, and restart -- fails first time, every time.&quot; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;This used to work. Always.&quot; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;We don&#39;t have a recovery bug, we have a non-functional code base.&quot; &lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;And so it began.&lt;br /&gt;&lt;br /&gt;(Part 2 of the story continues tomorrow, &quot;Why Falcon Doesn&#39;t Work Anymore&quot;)&lt;br /&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_10_01_archive.html#4084635939815363401</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSoH2iO97XKrmPEDNFZsoacr-1_yoDwuKMH69YEg9DPr6p43Wmw5YZIoehQ4wUCoOCVzA9HdJsUF1JqONQLMDxcQu-UV6NmJX3v0wG7AAPshqSE4BgCf_-KCCSNDT5RHMIyQj_iA/s72-c/chris_heidelberg_castle_moat.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-4992141264711508084</guid><pubDate>Sun, 05 Oct 2008 18:58:00 +0000</pubDate><atom:updated>2008-10-05T15:32:31.731-05:00</atom:updated><title>The Weekly Falcon Index</title><description>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Planned &lt;span style=&quot;font-style: italic;&quot;&gt;Falcon Blog&lt;/span&gt; posts: 4&lt;br /&gt;Actual posts: 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Team emails debating the cost of changing core components: 44&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Post-debate emails suggesting a major change to a core component: 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Days advance notice to change my LDAP password: 9&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Nag emails to change my LDAP password: 9&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Days of delay before changing my LDAP password: 9&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Hours unable to access email after changing my LDAP password: 6&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Calls to support after changing my LDAP password: 1&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Falcon IRC n&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;on-system messages: 2022&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;IRC champ: Hakan (23%)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Runner-up: Vlad (21%)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Messages in German: 35&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;References to &quot;Ramadan&quot;: 10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;Best quote: &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;I try never to argue against clarity&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Source of quote: Ann&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Intrusions by senior staff: 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Number of times this week I typed a password into IRC: 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Number of times this year: 3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://carotid.blogspot.com/2008_10_01_archive.html#4992141264711508084</link><author>noreply@blogger.com (Christopher Powers)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-4794619683663394219</guid><pubDate>Mon, 29 Sep 2008 18:12:00 +0000</pubDate><atom:updated>2008-09-29T15:44:44.561-05:00</atom:updated><title>Falcon in London</title><description>&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;[I&#39;m still playing catch-up after a five-month blogging hiatus]&lt;br /&gt;&lt;br /&gt;By May of 2008, the Falcon team&#39;s technical center of gravity lay squarely within the European continent, so it was only fair and sensible that we gather where the combined travel effort would be at a minimum.&lt;/span&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;This was to be the first assemblage of the entire team, including new team members. We&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipdKaZsysd4bO7MTnr5puexpYgitJ_XbJjO0VEL8pPhRhfnUIMayE8UOhRP5LRqnvnqCin0hGQ7_XbPAFDddARSGruMTke-wdt01UYIAhi44VrNpO9N9keYwZSrWEyLEIuZCKmxA/s1600-h/London_Kevin_Chris.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 262px; height: 196px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipdKaZsysd4bO7MTnr5puexpYgitJ_XbJjO0VEL8pPhRhfnUIMayE8UOhRP5LRqnvnqCin0hGQ7_XbPAFDddARSGruMTke-wdt01UYIAhi44VrNpO9N9keYwZSrWEyLEIuZCKmxA/s400/London_Kevin_Chris.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5251535261725718146&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt; w&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;ere also &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;promised (and later cruelly denied) a rare sighting of Hakan K. who was unable to attend th&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;e all-hands staff &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;meeting in January o&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;r the &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;UC in April, as well as appearances by MC Brown and James Day.&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt; MC did an outstanding job as a one-man advance team, deftly applying his hitherto unknown logistica&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;l genius to the task of  arranging for accommodations at a reasonably-priced, centrally-located, well-appointe&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;d and distinctly British hotel...&quot;Holiday Inn&quot; I think was the name&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;. &lt;/span&gt; &lt;/p&gt;   &lt;p  style=&quot;margin-bottom: 0in; font-weight: bold;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Big News&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;We started the week in London on an interesting note: Jim announced that he was ste&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;pping &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;down from the Falcon project in order to pursue his cloud database idea. This wasn&#39;t a complete shock, because Jim had been itching to explore his cloud database concept for some time, but it was still big news.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;The timing of the announcement was pretty good, because Falcon was ne&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;arly feature complete and the team had gained enough expertise to carry on. We were also relieved to find that Ann Harrison (Jim&#39;s wife) in&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;tended to remain with Falcon, because she has a holographic knowledge of much of the architecture and would provide a reliable back channel of communication to Jim--reliable because they share the same office and that she can, and does, holler questions to him over the partition. &lt;/span&gt; &lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;We also had a full-time project manager and three new engineers, so Fal&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;con was clearly in capable hands. The only remaining issue was whether Jim could arrange a dea&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;l with Sun to continue assisting the project (which has since been worked out, so not much has changed on a day-to-day basis.)&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in; font-weight: bold;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Falcon Immersion&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuAnmizk6N89oq6CgQhHiiJKAPGZH7kkcNnvhIr1YKhGARxwVWSKkDhkbE5ZY9n4zwXyJb-MaCWiOUEPKvQU5EEEJkn-UERs46EGRxrwK-Q0HatysowHajcpEIFD2yYaaUOmZyoQ/s1600-h/London_conference.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 281px; height: 211px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuAnmizk6N89oq6CgQhHiiJKAPGZH7kkcNnvhIr1YKhGARxwVWSKkDhkbE5ZY9n4zwXyJb-MaCWiOUEPKvQU5EEEJkn-UERs46EGRxrwK-Q0HatysowHajcpEIFD2yYaaUOmZyoQ/s400/London_conference.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5251529209233883730&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;A key item on the agenda was Falcon training for the new team members. Jim provided an excellent, in-depth review of the salient aspects of the Falcon design, reinforced by line-by-line walkthroughs of certain core operations. &lt;/span&gt; &lt;/p&gt;    &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;I took notes which will ultimately make the&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;ir way into Falco&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;n design documents and even the code itself (the stringent use of source code comments within Falcon warrants furth&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;er discussion, as does the overall coding style. I will address this in a future post.)&lt;/span&gt;&lt;/p&gt;   &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;It was a long week of long days, and we covered a considerable amount of material (I will also cover some of these in future posts):&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;   &lt;ul  style=&quot;font-family:verdana;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Record insert process, from StorageInterface to data page&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Serial Log record formats&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Page Cache design and areas for optimization&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Internal SQL engine&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Low memory operations and record cache maintenance&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Falcon on-disk structure&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Falcon indexes, design and operation&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Page types: Data, Index, Inventory, Overflow, Blobs&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Engine initialization sequence&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Falcon handler and the MySQL Storage Interface API&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Overview of the Falcon Storage classes (StorageConnection, StorageTable, etc.)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Synchronization objects&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Replication: Statement-based vs Row-based&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;font-size:85%;&quot;  &gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;font-size:85%;&quot;  &gt;Statement-based Replication&lt;/span&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;So let&#39;s explore that last item a bit.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;You know how it goes: Someone asks an innocent question in a r&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;oom full of people, and before you know it, an hour of unintended discussion ensues. Such was the case with Falcon and replication.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmzdpggh5kIM_pPzeebDzmUbPe9BjmBBT6LfZsL1me4g_mj7-aEJrOqiwIIwl8FmBvjyX1f4E7FpwilDEDv6SHKHniVaVbXuETXhMxkwiaUAo-u3xvAzdz0etmsazm8BrRcywAiw/s1600-h/London_dining.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 306px; height: 229px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmzdpggh5kIM_pPzeebDzmUbPe9BjmBBT6LfZsL1me4g_mj7-aEJrOqiwIIwl8FmBvjyX1f4E7FpwilDEDv6SHKHniVaVbXuETXhMxkwiaUAo-u3xvAzdz0etmsazm8BrRcywAiw/s400/London_dining.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5251530614629229874&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;The question was: Why doesn&#39;t Falcon support&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt; statement-based replication? The complete &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;nswer is complicated and worthy of a separate post, so I wil&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;l only summarize here.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Falcon supports row-based replication (RBR), where every row event on the master &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;lands in &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;the binlog and is subsequently pulled in by the slaves. One advantage of RBR is also it&#39;s greatest disadvantage, t&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;hat is, everything is logged, which is fine except for unqualified statements like &quot;DELETE FROM T1&quot;, or for operations that are&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt; later &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;rolled back.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;On the other hand, statement-based replication does not handle non-deterministic or concurrent operations very well, and must therefore rely upon the a&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;ssumption that two statements won&#39;t have any interaction. Ann puts this very succinctly:&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&quot;Falcon does not and will not support statement based logging because Falcon transactions are not serializable, and in the absence of serializable transactions, statement based logging does not produce consistent results.&quot;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;As I understand, InnoDB gets around the problem by locking record touched by s&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;ub&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;queries, obviou&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;sly at the expense of concurrency. For Falcon to support SBR, the same would also hold true, requiring several expensive changes that would also affect &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;performance:&lt;/span&gt;&lt;/p&gt;&lt;ul  style=&quot;font-family:verdana;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Query expressions that drive data changes must be locking&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Autoincrement must be serialized&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Implement next-key and end-of-table locks&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Other stuff&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;This is not the complete list of changes that we&#39;d have to make to support SBR, nor does it take into account potential enhancements to MySQL replication, but captures the essence of the issue.&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt; &lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;(My interest in replication stems from a two-year stint on the replication project at Pervasive Software, however, that was a peer-to-peer implementation employing a change-capture mechanism rather than binlogs--a fundamentally different approach.)&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;font-family: verdana;&quot;&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in; font-weight: bold;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Falcon Schedule&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiknuWbcYUokqQlkVayYc8-TEhDsg6fkCyBM74DHpUWu1rP-0j1fe6jm_mPWoNs9TaaU0Df1N6ZGxziWUTgW79n-cp2hURpAsFV9xNBLOR1drmoKUuBIsA4N7At_ot7j3sdd2SCJw/s1600-h/London_lost.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 236px; height: 177px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiknuWbcYUokqQlkVayYc8-TEhDsg6fkCyBM74DHpUWu1rP-0j1fe6jm_mPWoNs9TaaU0Df1N6ZGxziWUTgW79n-cp2hURpAsFV9xNBLOR1drmoKUuBIsA4N7At_ot7j3sdd2SCJw/s400/London_lost.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5251536553592557490&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;[Disclaimer: I cannot disclose product release dates. Sorry.]&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Release planning is a black art, subject to the hazards of miscalculation, fuzzy estimations and plain old bad luck. Our biggest question at the London meeting was how to co&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;ordinate the performance optimization effort with that of fixing stability and ma&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;naging the bug load. Assigning a block of time to any of one of these tasks, much less all three, is not only difficult but outright dangero&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;us if not done carefully. But it had to be done, and so we did.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Assigning priorities is a classic problem in software development, but the textbook approach doesn&#39;t always apply. For&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt; example, performance optimization should be done late in the project, right? Ok, but what if performance is a major feature&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;, or what if the performance in some cases, is really bad? Isn&#39;t that a bug? And what if the performance fix requires a change to a core component, such as the synchronization model or caching algorithm? Wouldn&#39;t you want those sort of changes in earlier rather than later?&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;I suppose with well-defined release criteria and well-defined performance metrics and well-&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn6T7dKbUntzD9l_OpXGrdluHwl1nxdk1hYOCON0iy80bVoFyHupfZ6YoWtdC_QXpZIOC91hxfZ4l5THVyyhKcHKMaYG06fSFh8SBTnnPYxNgI9Z1h8TKEAg2gPwx6EY8K-celVg/s1600-h/Dont_ask.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 188px; height: 250px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn6T7dKbUntzD9l_OpXGrdluHwl1nxdk1hYOCON0iy80bVoFyHupfZ6YoWtdC_QXpZIOC91hxfZ4l5THVyyhKcHKMaYG06fSFh8SBTnnPYxNgI9Z1h8TKEAg2gPwx6EY8K-celVg/s400/Dont_ask.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5251531346954766690&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;defined defect criteria and well-defined quality metrics, the answers to such questions might be readily apparent, but alas, ours is not the tidy, frictionless &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;universe of textbook theory. No, ours is a messy, non-Newtonian hodgepodge of money, marketin&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;g and mission creep, an existential riot fueled by personality, tempered by perception and begging for order in an unordered cosmos.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;But I digress.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Actually, we really &lt;span style=&quot;font-style: italic;&quot;&gt;do&lt;/span&gt; have well-defined release criteria and even some pretty good performance criteria, although &quot;good performance&quot; has been something of a moving target for Falcon. The biggest unknown was the time required to bring the bug count under control.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;[Disclaimer: I am wholly unqualified to comment upon M&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;ySQL 5.1]&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;After considerable and sometimes heated debate, we did manage to hammer out a shaky consensus on a GA date, saddled with preconditions and &quot;only ifs&quot; as it was. The Falcon schedule has since been revised, and last week in Riga it was thoroughly rehashed again within the context of the Server 6.0 release schedule.&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;And that&#39;s all I have to say about that.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in; font-weight: bold;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Pilgrimage&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkCjEWMtjaFRqOK2wJ4U2bDXcWvAEfvP61yOxNQBgVA0hv8sdPGfE188OyKnDdNWmt8xZd-m67doDz76aLK32sdkH1G0OCBd8viOcy9Wc4NdEJLeP2Z0ecso7LrppJDDgSJsakSg/s1600-h/London_Kevin_Jeffrey.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 255px; height: 191px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkCjEWMtjaFRqOK2wJ4U2bDXcWvAEfvP61yOxNQBgVA0hv8sdPGfE188OyKnDdNWmt8xZd-m67doDz76aLK32sdkH1G0OCBd8viOcy9Wc4NdEJLeP2Z0ecso7LrppJDDgSJsakSg/s400/London_Kevin_Jeffrey.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5251537677659251682&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;The stark reality of the Falcon team meetings is that we spend 80% of the time sitting around a conference table screaming at each other.&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;No, that&#39;s not true. Let me try again.&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;The reality of our meetings is that we spend a long week of long days in a conference room digging int&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;o technical stuff. Despite the travel overhead, I find these meetings to be extremely productive and personally energizing.&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;In London, there were only two things I absolutely had to do: Visit the British Museum, and, well, see for yourself.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;I won&#39;t bore you with museum photos, but I did manage to I rope Kevin, Vlad and Vlad&#39;s wife, Tatyana, to make the pilgrimage with me to Apple Studios. Tatyana was kind enough &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;to shoot three of us crossing the zebra crossing. Unfortunately, some bearded dude jumped in front of us while we crossed.&lt;/span&gt;&lt;/p&gt;&lt;p face=&quot;verdana&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;He didn&#39;t say much. I think he was French.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKoBpIQAErXk90vsPQkcXO2oh8cVbSGzdeW7VRZnxr61UjXRtKyUw4HU-Pr-5J1paK5BsRgICtNPEgeopjsNHGiSlcX0n5Nb8irzzo0vi7t2MZ_OY0oTNqE6jOqCBGu3HboMKZtg/s1600-h/FalconTeam_AbbeyRoad.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 484px; height: 306px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKoBpIQAErXk90vsPQkcXO2oh8cVbSGzdeW7VRZnxr61UjXRtKyUw4HU-Pr-5J1paK5BsRgICtNPEgeopjsNHGiSlcX0n5Nb8irzzo0vi7t2MZ_OY0oTNqE6jOqCBGu3HboMKZtg/s400/FalconTeam_AbbeyRoad.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5251520196703366610&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0in; font-family: verdana;&quot;&gt;&lt;/p&gt;</description><link>http://carotid.blogspot.com/2008_09_01_archive.html#4794619683663394219</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipdKaZsysd4bO7MTnr5puexpYgitJ_XbJjO0VEL8pPhRhfnUIMayE8UOhRP5LRqnvnqCin0hGQ7_XbPAFDddARSGruMTke-wdt01UYIAhi44VrNpO9N9keYwZSrWEyLEIuZCKmxA/s72-c/London_Kevin_Chris.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-521833683342482424</guid><pubDate>Sun, 28 Sep 2008 02:21:00 +0000</pubDate><atom:updated>2008-09-27T23:22:41.179-05:00</atom:updated><title>Troublemakers, Part I</title><description>&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Philip Stoev&lt;/span&gt;, Software Engineer&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMcImz3RFXXWJqjxLLPSB8ijG1Z1nb7n86JAgNnfp1O-SyjyxOJzEkAwbOPMrHBeN2GiXGyN5KOIBESPAht7mgpDH3OsbB4Z3k57Asam-RuuVpnRC-PftMfs6PiDQAvgcj8eFkvw/s1600-h/philip1.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 175px; height: 261px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMcImz3RFXXWJqjxLLPSB8ijG1Z1nb7n86JAgNnfp1O-SyjyxOJzEkAwbOPMrHBeN2GiXGyN5KOIBESPAht7mgpDH3OsbB4Z3k57Asam-RuuVpnRC-PftMfs6PiDQAvgcj8eFkvw/s400/philip1.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5250894007305421586&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The mission of the System QA team is to beat the living daylights out of a MySQL release&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; before it is set free into the world. Philip Stoev is on the System QA team, not the Falcon team, but bl&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;ess his Bulgarian heart, he&#39;s caused more trouble on Falcon than anyone in recent memory except for perhaps Peter Z.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The &quot;trouble&quot; of which I speak is best illustrated by this vignette:&lt;/span&gt;  &lt;span style=&quot;font-family:verdana;&quot;&gt;Imagine that HMS Falcon is on a shakedown cruise in the Mediterranean. Weather is clear, crew is happy, course is plotted. Midshipman Stoev voices a concern.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;I beg your pardon, Captain, but I believe the ship has run aground.&quot;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;Nonsense, Mr. Stoev. The ship is quite sound. She floats upright, the sails are full and the crew is happy with rum and song.&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;Yes, of course, Captain, but if you&#39;ll please have a look &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;belowdecks, sir. The bilges are aw&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;ash, I&#39;m afraid, and the keel is broken.&lt;/span&gt;&lt;/span&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;Nonsense, Mr. Stoev, you imagine the worst. Now, hand me my spyglass, if you please, and go on about your duties.&lt;/span&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:verdana;&quot; &gt;&quot;As you wish, sir.&lt;/span&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Get the picture?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Philip does his job quite well such that he can, with the power of a two-line email, stop an entire release dead in its tracks. Last year, this caused tremendous frustration because System QA didn&#39;t begin testing until after a release clone-off, which is perilously late in the release cycle. One or two showstopper bugs can, and did, gum up the works for weeks, even months.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Since then we&#39;ve fixed the process, and now System QA tests are run regularly against pre-release code. There even exists an array of Pushbuild2 servers dedicated solely to System QA stress tests, so each push into the tree results in a battery of stress test executions.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Executions&quot;, indeed. These unassuming, cold-hearted tests, cobbled together from Perl and PHP, efficiently render the very fabric of our precious little engine into hot, screaming shards of digital shrapnel.&lt;br /&gt;&lt;br /&gt;Case in point: falcon_online_alter.&lt;/span&gt;  &lt;span style=&quot;font-family:verdana;&quot;&gt;This little gem is designed to &quot;exercise&quot; Falcon&#39;s online alter capability in the same sense that having your shirt pulled over your head and being kicked down the stairs is &quot;exercise&quot;. If I sound bitter, it&#39;s only because I&#39;ve been chasing stress test bugs for the better part of two months.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Let&#39;s take an example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;ALTER TABLE t1 ADD INDEX i1 (s1), ADD INDEX i2 (s2);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;In MySQL 6.0, &quot;ONLINE&quot; is implicit. Prior to the ONLINE ALTER implementation in Falcon, ADD INDEX worked like this:&lt;br /&gt;&lt;/span&gt; &lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;1. Get shared lock on table T1&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;2. Create temporary table #sql-abc with new attribute (e.g. index)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;3. Copy records from T1 to #sql-abc (index created during copy)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;4. Get exclusive lock on T1&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;5. Rename T1 to #sql-xyz&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;6. Rename #sql-abc to T1&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;7. Drop #sql-xyz&lt;/span&gt;  &lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;This is a horrendously inefficient way to create an index, so Falcon now creates them online such that a new index is created and populated in place--no temporary tables, no copying, etc. (the same is true with ADD COLUMN, although it&#39;s temporarily disabled due to a bug.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;So, with online alter, ADD INDEX works like this:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;1. Server queries Falcon to see if it can do the operation online&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;2. Falcon says, &quot;Yeah, sure, go for it.&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;3. Server commands online alter&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;4. Falcon creates new index&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;5. Falcon populates new index&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Falcon briefly locks the table during the DDL phase, but then normal operations resume, even while the index is populated. Pretty cool, right?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Well, sure, except when Philip runs his random query generator that issues thousands of random ALTER operations emanating from many client threads. This is a wholly unnatural act--I mean, what sane application performs thousands of ALTERs from multiple clients? It&#39;s nuts, just nuts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;But, and this is a big but, this test finds stuff. All sorts of stuff. Imagine putting a beautiful, Ford 4.6L 3-valve SOHC up on an engine test stand, bolt it down, then run it at 8,000 RPM until it flies apart. Automotive engineers actually do this, so why not software engineers? We need to know where the weak spots are, and, ideally, fix them. And so we do.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Chill/Thaw&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Philip also has a chill/thaw stress test, falcon_chill_thaw. This, too, is pure, resident evil, and I mean this in the kindest way.&lt;br /&gt;&lt;br /&gt;The Falcon &quot;chill/thaw&quot; mechanism works like this: Each record in the record cache consists of a &quot;system&quot; part and a &quot;data&quot; part. When the total amount of record data associated with an active transaction exceeds a predefined threshold, Falcon &quot;chills&quot; all of the records in the transaction by writing the data portion of each record to the serial log and freeing it from the record cache. When necessary, Falcon &quot;thaws&quot; individual records by restoring their data portions from the serial log.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;By default, the falcon_record_chill_threshold is 5MB, which means that when the size of a transaction exceeds 5MB, Falcon moves the record data for the transaction into the serial log. For the falcon_chill_thaw stress tests, Philip cranks the record chill threshold down to 1 byte, which means every record for every transaction is chilled and thawed countless times.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Again, this is a wholly unnatural act, no doubt illegal in the state (not country) of Georgia, and, in fact, I believe we are going to disallow chill thresholds lower than 32K. However, this test has exposed flaws in the chill/thaw code path that ordinarily would never see the light of day.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I have in a logfile a beautiful example of three threads trying to thaw the same record. Falcon is designed to resolve this intrinsic race condition with a compare-and-swap of the data pointer in Record::thaw(). However, the code path leading to the CAS is not (yet) properly reentrant, so we get all sorts of interesting behavior as a consequence of multiple concurrent thaws.&lt;br /&gt;&lt;br /&gt;On a live system, this would likely manifest in seemingly random, untraceable errors. &lt;/span&gt;  &lt;span style=&quot;font-family:verdana;&quot;&gt;So, it&#39;s better to find this stuff now, but it is necessarily time-consuming.&lt;br /&gt;&lt;br /&gt;The simple fact remains, however, that Philip is responsible for exposing some serious synchronization issues within Falcon, and for that I am grateful.&lt;br /&gt;&lt;br /&gt;I think.&lt;/span&gt; &lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_09_01_archive.html#521833683342482424</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMcImz3RFXXWJqjxLLPSB8ijG1Z1nb7n86JAgNnfp1O-SyjyxOJzEkAwbOPMrHBeN2GiXGyN5KOIBESPAht7mgpDH3OsbB4Z3k57Asam-RuuVpnRC-PftMfs6PiDQAvgcj8eFkvw/s72-c/philip1.JPG" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-6131737816071648035</guid><pubDate>Sat, 27 Sep 2008 22:10:00 +0000</pubDate><atom:updated>2008-09-27T18:05:01.395-05:00</atom:updated><title>New Falcon Engineers</title><description>&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Apart from a new project manager, the Sun acquisition also gifted our beloved little project with three Sun engineers from DBTG. I will spare the reader personal chagrin and preemptively counter the reflexive incantation of &lt;a href=&quot;http://en.wikipedia.org/wiki/Brooks%27s_law&quot;&gt;Brooke&#39;s Law&lt;/a&gt;  by stating up front that, in the case of Falcon, you would be wrong. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Mythical Man-Month&quot; my ass, we needed the help.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Naturally, we don&#39;t want just anyone hacking Falcon (yes, we&#39;re open source, but we have to &lt;span style=&quot;font-style: italic;&quot;&gt;ship&lt;/span&gt; for heaven&#39;s sake), and so we didn&#39;t get just &lt;span style=&quot;font-style: italic;&quot;&gt;anyone&lt;/span&gt;, we got three top-notch engineers each of whom bring something to the table.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;(Free idea: &quot;Heaven&#39;s Sake&quot;, a tangy Japanese alcoholic beverage made from fermented rice, available at select wine shops near you.)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Olav Sandstaa&lt;/span&gt;, Senior Software Engineer&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Here is Olav&#39;s official bio:&lt;/span&gt;  &lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Olav has developed database systems for the last eight years. He worked on the internode communication system, the database kernel as well as performance &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;optim&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTnnudLNACrwlfOmjSG8gDfPocxbgIZnV7GXZPPSns6fxRzX1h5UlHhpCPMS3JN1AnFd5n6JvvclAgwfaM47vd9GCS5mWg3lG4RZSg8_GolMyUed8MIXQ7x5RXrkQp2KRMXPjd_g/s1600-h/olav2.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 190px; height: 283px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTnnudLNACrwlfOmjSG8gDfPocxbgIZnV7GXZPPSns6fxRzX1h5UlHhpCPMS3JN1AnFd5n6JvvclAgwfaM47vd9GCS5mWg3lG4RZSg8_GolMyUed8MIXQ7x5RXrkQp2KRMXPjd_g/s400/olav2.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5250830793261093122&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;ization of HADB. Lately, he has worked as team lead for the performance team for Java DB. He has also made key contributions to design, architecture and technology evaluations for Project Cloudberry.&lt;/span&gt;  &lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Olav has a master&#39;s degree on the topic of parallel execution of relation algebra database operations and a PhD in storage systems for &lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;digital video archives from the d&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;atabase research group at the Norwegian University of Science and Technology.&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;What&#39;s this actually means is that Olav--sorry, &lt;span style=&quot;font-style: italic;&quot;&gt;Doctor &lt;/span&gt;Olav--is smarter than you. And me. What this als&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;o means is that he is really good at Scrabble, Norwegian Database Edition.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The cool thing about Olav is that he doesn&#39;t wear his impressive credentials on his sleeve, though he does have &quot;Database God&quot; tattooed behind his left ear (not seen in photo.)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Last week in Riga, I asked Olav what HADB was. He said, &quot;It&#39;s &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;like MySQL Cluster, except better.&quot; Ouch.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;John Embretsen&lt;/span&gt;, Software Engineer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Again, I will punt and provide John&#39;s official bio:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;John joined Sun in 2005, after graduating from the Norwegian Unive&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;rsity of Science and Technology. He has been working on Java DB QE/QA, including functional, long-running, usability and compliance testing. He recently gained committer privileges in the Apache Derby community, and have lately been working on adding JMX management and monitoring features to Java DB.&quot;&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJXBpAJdLYgW0YnM1J2HQPA7NVfAQRnibo09SGa-ZrRumlJf7nG1_tFZJDhGDAN9P8BULrTqBKyH_92kMKGz34wSRyue0b6tsqnHlA8FPJ7KTVaKd0f9Cg82J1E1NSedEDC3U_zA/s1600-h/john.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 150px; height: 180px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJXBpAJdLYgW0YnM1J2HQPA7NVfAQRnibo09SGa-ZrRumlJf7nG1_tFZJDhGDAN9P8BULrTqBKyH_92kMKGz34wSRyue0b6tsqnHlA8FPJ7KTVaKd0f9Cg82J1E1NSedEDC3U_zA/s400/john.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5250835297218415506&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;John&#39;s official bio fails to mention that he is also the tallest member of the Falcon team (sorry, Kevin), and has an impressive record playing Norwegian basketball, which in the U.S. we call &quot;basketball&quot;. At right is a photo of John in a typical just-got-&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;back-from-rigorous-mountain-hiking-and-now-I-will-sing pose&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;Fortunately for us, John accepted a role in Falcon QA, where help was desperately needed.&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; One of his first tasks was to dig through the suite of testcases relegated to a vile little backwater we call &quot;falcon_team&quot;. These are tests that fail for no apparent reason on the pushbuild regression servers, so to keep the matrix green we simply move uncooperative tests out of the way so they can be dealt with later. Well, later is now, because &quot;falcon_team&quot; is our mutant cousin thumping around in the attic, and it&#39;s time to walk up those stairs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Which brings to mind one test that John insists on holding up to the col&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;d light of day, a test that previously failed intermittently with odd warnings and an error. He now reports that after I implemented the ONLINE ALTER features in Falcon, this test still fails &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;but the row numbers are off by one.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;This seemingly innocuous observation carries little meaning to the untrained eye, however, a set of discrete database operations resulting in row numbers being off by one is like finding an extra proton in an atom--you can&#39;t simply brush such a thing aside. The magnitude of the &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;discrepancy is small, but the &lt;span style=&quot;font-style: italic;&quot;&gt;implication &lt;/span&gt;of the discrepancy is immense. I am, perhaps, being a bit hyperbolic (hydrochloric?), but the essential fact is that this means more digging into a feature should&#39;ve been wrapped up weeks ago. Thanks John. Love ya, bro.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Lars-Erik Bjørk&lt;/span&gt;, Software Engineer&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8kr0ZMdHCWUYN_R4DoWBwKe4zlpjbjojOTvGOmWhqyzxAHES7GA1pWAnmJVUxIbgQA4MQBYEav94PqX0x14LvF4DaaLwNgfynzUf76yyA-GXyaoupYryEpObB9pt9difa3WhI9Q/s1600-h/lars-erik.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 151px; height: 227px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8kr0ZMdHCWUYN_R4DoWBwKe4zlpjbjojOTvGOmWhqyzxAHES7GA1pWAnmJVUxIbgQA4MQBYEav94PqX0x14LvF4DaaLwNgfynzUf76yyA-GXyaoupYryEpObB9pt9difa3WhI9Q/s400/lars-erik.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5250836388613751074&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&quot;Lars-Erik joined Sun in July 2006, shortly after graduating from the Norwegian University of Science and Technology. He has been working 18 months on HADB kernel development and 4 months on PostgreSQL.&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Ok, that&#39;s pretty cool: HADB kernel development and PostgreSQL &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;experience. Some of you may also recall that Lars-Erik had a previous career in the music industry as the lead vocalist in the group &quot;A-ha&quot;, whic&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;h found brief popularity in the 80&#39;s.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Following the dizzying spike of international adoration garnered from the gr&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;ammatically curious, &quot;&lt;a href=&quot;http://www.youtube.com/watch?v=CUod3jGQt0U&quot;&gt;Take On Me&lt;/a&gt;&quot;, Lars-Erik left the band to pursue a career in software engineering. Astute readers will note that Lars-Erik remains physically unchanged from his pop music days, which he attributes to a superior genetic makeup, far-infrared saunas, rock-filtered Norwegian spring water and volcanic &lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVXH7ilt2rTfra3MUGhmnCnEsQuuPp5hOzkoXpNB5Z0aRNs5fIVFHH84karChHtQQSjVEkZfyM6J1ZagdC8237YFMKyL417p21894SBIQFq0fuTF84ymaKRAMccvcLEWWTGFZ3uQ/s1600-h/lars-erik2.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 151px; height: 116px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVXH7ilt2rTfra3MUGhmnCnEsQuuPp5hOzkoXpNB5Z0aRNs5fIVFHH84karChHtQQSjVEkZfyM6J1ZagdC8237YFMKyL417p21894SBIQFq0fuTF84ymaKRAMccvcLEWWTGFZ3uQ/s400/lars-erik2.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5250837054146696322&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;mineral baths.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Since joining Falcon in May, Lars-Erik has been working on a variety of bugs. Most recently, (in fact, so recent that he doesn&#39;t know it yet) he&#39;s working on a couple of chill/thaw bugs and another with the Falcon interface to the Information Schema. (Lars-Erik, if you&#39;re reading this, talk t&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;o Kevin.)&lt;/span&gt;  &lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_09_01_archive.html#6131737816071648035</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTnnudLNACrwlfOmjSG8gDfPocxbgIZnV7GXZPPSns6fxRzX1h5UlHhpCPMS3JN1AnFd5n6JvvclAgwfaM47vd9GCS5mWg3lG4RZSg8_GolMyUed8MIXQ7x5RXrkQp2KRMXPjd_g/s72-c/olav2.JPG" height="72" width="72"/><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-7908421410548198854</guid><pubDate>Sat, 27 Sep 2008 21:02:00 +0000</pubDate><atom:updated>2008-09-27T18:00:52.995-05:00</atom:updated><title>Stalled Thread</title><description>&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Strong start. Zero follow-up. Let&#39;s get this going again, shall we?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;It&#39;s been a busy five months since the last post, so here&#39;s an overview of what we&#39;ve been up to:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;May: &lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;New Falcon Engineers&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Synergy happens. Details in the next post.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;May: Falcon Meeting in London&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Big news from Jim. Training for the new folks. Details to follow.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;June: Falcon 6.0.5 Alpha&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Team is busy with bug fixes trying to keep the release train rolling.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;July: Falcon Meeting in Boston&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Got the band back together, this time on our turf.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;August: Falcon 6.0.6 Alpha&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Another busy month of bug fixing. Feature complete, finally. Some performance stuff, too.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:verdana;&quot; &gt;September: MySQL/Sun Meeting in Riga&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;All-hands engineering meeting, very productive for Falcon. Details to follow.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_09_01_archive.html#7908421410548198854</link><author>noreply@blogger.com (Christopher Powers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-7141283083883186182</guid><pubDate>Mon, 28 Apr 2008 05:13:00 +0000</pubDate><atom:updated>2008-09-27T17:59:57.967-05:00</atom:updated><title>The Falcon Team</title><description>&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;Ok, one more human interest post before diving into the technical stuff. Let&#39;s have a look at the Falcon team as it stands today.&lt;/span&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;b&gt;Kevin Lewis&lt;/b&gt;, Falcon Team Lead&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaOQ_TaB39zVKWvlLNUDMtkwOv8kauy8RqbpbWEv3S8x20CYxq6fQ1BYFi9cK4QslTDyMlpCSHmXgtd2jtRka5rTz_kRLUpSnGUonKZJmvgA8WkATa0dMFCsuPimLBLrcVkebMGA/s1600-h/kevin.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaOQ_TaB39zVKWvlLNUDMtkwOv8kauy8RqbpbWEv3S8x20CYxq6fQ1BYFi9cK4QslTDyMlpCSHmXgtd2jtRka5rTz_kRLUpSnGUonKZJmvgA8WkATa0dMFCsuPimLBLrcVkebMGA/s320/kevin.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5194173418803613698&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Kevin joined MySQL two years ago, following a ten-year run as an engineer on the MicroKernel Database Engine team at &lt;a href=&quot;http://www.pervasive.com/&quot;&gt;Pervasive Software&lt;/a&gt;, (Btrieve, Pervasive.SQL) in Austin, Texas. He ascended to  team leadership when Calvin, our project manager, left MySQL in January.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;I worked with Kevin for five years at Pervasive, where he started six months before me, just as he did at MySQL. Kevin&#39;s a good friend and has at various times served as something of a father confessor to me, patiently indulging some of the more, shall we say, &lt;i&gt;unsettled&lt;/i&gt; phases of my life.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Kevin walks his talk and is supremely ethical. He&#39;s a year older than me but looks ten years younger, and twice introduced me to the humbling rigor of backpacking in the Colorado Rockies. (T-shirt idea: &quot;I got b****-slapped by a fourteener.&quot;)&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Kevin&#39;s risen nicely to the challenge of running the Falcon team, and has managed to navigate the turbulent waters of leading a high-visibility team within an open source company. I wouldn&#39;t say that leading Falcon is like herding cats--we&#39;re not finicky anarchists--but it might be compared to producing the Juilliard senior class play for a performance before the U.N. General Assembly. Or something like that.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Anyway, Kevin&#39;s the kind of guy you &lt;i&gt;want&lt;/i&gt; to lead a team because he has steady nerves, an assured demeanor, and is physically larger than any of us.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;&lt;/span&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBovv45YtHJGfIMnOGLDEcIx9PSU3bRWfEK6W1COuA3ijWY_AZhSpuYSXiNQJHQSYIetdfaBZOq31Dmmy5JtYQeqfXHBaxWZd98wnDDNa-XrVVyg4O-iLlhqqG0bYXDF-owRHyWw/s1600-h/jim.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 231px; height: 223px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBovv45YtHJGfIMnOGLDEcIx9PSU3bRWfEK6W1COuA3ijWY_AZhSpuYSXiNQJHQSYIetdfaBZOq31Dmmy5JtYQeqfXHBaxWZd98wnDDNa-XrVVyg4O-iLlhqqG0bYXDF-owRHyWw/s320/jim.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5194174191897726994&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;b&gt;Jim Starkey&lt;/b&gt;, Principal Software Engineer, Server Architect&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Falcon is Jim&#39;s baby, and he is, by all rights, alpha dog on the project. He wrote most of Falcon before MySQL acquired his company, Netfrastructure, in 2006.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;I won&#39;t provide much of Jim&#39;s &lt;a href=&quot;http://en.wikipedia.org/wiki/Jim_Starkey&quot;&gt;history&lt;/a&gt; here, suffice to say that he&#39;s been in the database industry longer than most MySQLers have been alive (seriously), and that he has a proven track record of developing and &lt;i&gt;shipping&lt;/i&gt; databases that people pay for and use. &lt;/span&gt; &lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;(This is not a minor point. I know many bright, confident and very skilled developers, in and out of the open source world, who lack the practical experience of shipping and supporting a product. If you&#39;ll forgive the war metaphor, it&#39;s like training for combat but never experiencing it.)&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;To his credit, and to the occasional dismay of his more reticent counterparts, Jim kicks up a lot of dust inside MySQL, frequently challenging the &quot;It Has Always Been Thus&quot; mindset that tends to accrete in any organization. And, in &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;keeping with the war metaphors, Jim will not hesitate to toss a conversational hand grenade into a quiescent forum or otherwise unremarkable exchange, but only because that&#39;s what&#39;s on his mind at the time.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;All of this is a good thing, in my opinion, because Jim&#39;s unsubtle energy is usually countered and productively engaged with corresponding intensity--there is no lack of intensity at MySQL--and some pretty good ideas get tossed about as a result.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Ann Harrison&lt;/span&gt;, Lead Software Engineer, Server Architect&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvG80quhgV8gtmqenWTY3gLDwgLeo7_cC7RMWa2PMoVs7uNkqjyXn10HAvoMWpGmK2m3zVMd7qa12vPHhJJeTQ5fhxLn0lWH34Zw6OSp_-t3NyZ0rvTFAklU8sRYh9ATpCJihpBw/s1600-h/ann.png&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvG80quhgV8gtmqenWTY3gLDwgLeo7_cC7RMWa2PMoVs7uNkqjyXn10HAvoMWpGmK2m3zVMd7qa12vPHhJJeTQ5fhxLn0lWH34Zw6OSp_-t3NyZ0rvTFAklU8sRYh9ATpCJihpBw/s320/ann.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5194174458185699362&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Ann inhabits several roles on the Falcon team: architect, developer, documentarian. She is the go-to person for certain elements of the current or future Falcon architecture, Foreign Keys being a good example.&lt;/span&gt; &lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Actually, Foreign Keys is a &lt;i&gt;really&lt;/i&gt;&lt;span style=&quot;font-style: normal;&quot;&gt; good example, because Ann must not only hammer out agreements with the other architectural heavy-hitters at MySQL, she must also comprehend (or convincingly pretend to comprehend) the limitless tracts of arcane Foreign Keys documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Ann is also Cher to Jim&#39;s Sonny. If you are unfamiliar with this American cultural reference, let me paint the picture this way. Imagine Jim holding forth on a topic about which he feels strongly, whether on the phone, during a presentation or at the hotel bar. At some point, a clear,  authoritative yet uncontentious voice will arise in challenge:&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;i&gt; &quot;Uh, no, Jim. Actually, that&#39;s not the case at all.&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;NMI triggered. Handler routine executes.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;i&gt; &quot;Excuse me? &lt;/i&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;What&#39;s&lt;/span&gt;&lt;i&gt; not the case?&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;i&gt; &quot;You said ABC. It&#39;s actually XYZ.&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;i&gt; &quot;No. It&#39;s ABC. And how on Earth can you possibly know that? I wrote the code myself.&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;i&gt; &quot;Yes. And I pointed out to you that it was wrong, and then you fixed it.&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;i&gt; &quot;Oh. You&#39;re right. Sorry. Ann&#39;s right. It&#39;s XYZ, not ABC. Anyway, as I was saying...&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Error corrected. Runtime processing resumes.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Trivia: Jim and Ann sail boats. Both are both private pilots. Ann has an instrument rating.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;&lt;/span&gt; &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a name=&quot;line1&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Hakan Küçükyılmaz&lt;/span&gt;&lt;span style=&quot;&quot;&gt;, Senior Software Engineer, Falcon QA Lead&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSgrKpgIOqDe5FPu0npz4Shz5rg1EcZ__VxsWpy9Cx7NMiD7QwpFunSjawLq63Z5tVHyeG0_6PgwG2w4k2oCrBlRXT67qLQ8Kv1L9clnE_bZCbg2iOOXcoC8vd0Y5PbI_z2XAeHw/s1600-h/hakan_laptop_battle-287.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 260px; height: 173px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSgrKpgIOqDe5FPu0npz4Shz5rg1EcZ__VxsWpy9Cx7NMiD7QwpFunSjawLq63Z5tVHyeG0_6PgwG2w4k2oCrBlRXT67qLQ8Kv1L9clnE_bZCbg2iOOXcoC8vd0Y5PbI_z2XAeHw/s320/hakan_laptop_battle-287.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5194174745948508210&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Hakan has Turkish citizenship, is of Georgian ethnicity and lives in Germany. Like all Europeans, Hakan speaks twenty-two foreign languages. Hakan developed some of his database chops working with (if not for) SAP.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Hakan is responsible for Falcon QA--an enormous challenge--and has been at MySQL longer than any of the Falcon team, since 1948, I think.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Apart from adapting the existing InnoDB test cases, the real challenge for Hakan has been to develop test cases that exercise elements of the Falcon engine that are uniquely Falcon--high concurrency and a heavy reliance on abundant RAM, for instance.&lt;/span&gt;&lt;/p&gt;   &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Hakan&#39;s efforts have been supremely valuable in helping us pin down exactly what this Falcon thing is relative to other storage engines and relative to what we expect it to be. Last summer, for example, Hakan started a weekly DBT2 run which, after no small amount of haggling over the test configuration, eventually became the primary &lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span&gt;engineering&lt;/span&gt; measure&lt;/span&gt; of Falcon performance.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;[N.B. I must emphasize here that we use DBT2 as an internal metric with which to measure Falcon performance relative to InnoDB. It is by no means regarded as the best representation of Falcon performance, and, in fact, was chosen precisely because it tends to favor InnoDB, especially at low concurrencies. However, DBT2 is a measure of &lt;i&gt;something&lt;/i&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;, and judging by the number and quality of bugs resolved as a consequence of its use, DBT2 has proven to be an outstanding tool for evaluating Falcon performance.]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;With the recent Sun acquisition, we now have the kind attention of the Sun Performance and Availability team, whose sole charter is to measure and improve performance on Sun hardware, which brings to mind a quote from Terminator: &lt;/span&gt;&lt;i&gt;&quot;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;That&#39;s what he does. &lt;span style=&quot;&quot;&gt;That&#39;s all he does!&lt;/span&gt; You can&#39;t stop him!&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Anyway, I like Hakan. He is outspoken. He keeps us real. He&#39;s probably the hardest working member of the team. Hakan brings to the Falcon team a kind of weary, fatalistic edge that serves as a fitting balance to my own eternal optimism.&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Imagine Friedrich Nietzsche. Now imagine Eeyore. There you have it.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;The picture is of Hakan doing something really cool, I&#39;m just not sure what.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;&lt;/span&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;b&gt;Vladislav Vaintroub&lt;/b&gt;, Senior Software Engineer&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgloWmbMvX5tFIwQMaBPBoz3J9vn8-n4oxJ2v6tCTHDGKz0hSMTIFEfAOVe8XdoRRSocVqfdQkkMtWNU8fCBvzr6bj1wM2JjaPyHJ5m0IVizrBnEFf1Q0nBRUm0Bdj7tOFL_8Ugtw/s1600-h/vlada.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgloWmbMvX5tFIwQMaBPBoz3J9vn8-n4oxJ2v6tCTHDGKz0hSMTIFEfAOVe8XdoRRSocVqfdQkkMtWNU8fCBvzr6bj1wM2JjaPyHJ5m0IVizrBnEFf1Q0nBRUm0Bdj7tOFL_8Ugtw/s400/vlada.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5194342292622725298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Vlad joined Falcon in January. He&#39;s Russian, lives in Germany, has a math degree. Like most Europeans, Vlad speaks twenty-two foreign languages, many of them English.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Vlad got much of his database experience at &lt;a href=&quot;http://www.softwareag.com/&quot;&gt;Software AG&lt;/a&gt;. At MySQL, he hit the ground running and was fixing Falcon bugs before he got&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt; his first paycheck.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Vlad bravely or naively took over the Supernodes feature, a kind of meta-index (Kevin doesn&#39;t like that d&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;escription, but I&#39;m sticking to it.) He reworked the Supernodes code a bit, fixed the bugs, checked it in, demonstrated it to our beloved VP of Engineering and finally measured a significant performance improvement (more on performance later.) Not bad for his first three months on the job.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Vlad&#39;s soft-spoken and unobtrusive nature has a somewhat calming influence on the team, I think. He also possesses a rare talent (rare in the context of MySQL) that is shared by all Falcon developers, which is the ability to develop on Windows.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;At right is Vlad affecting ironic detachment. The photo was taken shortly after the other Beatles had crossed the road.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;b&gt;Kelly Long&lt;/b&gt;, Senior Software Engineer, Performance Architect&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2BAI8xuEjWs60F_XEH9pZUn7vZrDIYTzDpswGOfkOkExmBWwhDkLgE-7C3xM--9jOG1Dp9a-eSIZID3FykjytX4nkoF-hiDs4belMhoOP_LPy5F6Fz2bDyJ0eyPZTPVrDs8XdvA/s1600-h/kelly_IMG_0311a.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 166px; height: 142px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2BAI8xuEjWs60F_XEH9pZUn7vZrDIYTzDpswGOfkOkExmBWwhDkLgE-7C3xM--9jOG1Dp9a-eSIZID3FykjytX4nkoF-hiDs4belMhoOP_LPy5F6Fz2bDyJ0eyPZTPVrDs8XdvA/s320/kelly_IMG_0311a.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5194341751456845986&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;I said this to Kevin at the MySQL Users Conference:&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;i&gt;&quot;I had a great discussion about Falcon performance with Kelly last night at the bar. This guy&#39;s a sleeper, man, I&#39;m telling you.&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;First, just let me say that &lt;i&gt;all&lt;/i&gt; of my great conversations at the Users Conference took place at the bar. Not so much because of the drinking (no, &lt;i&gt;really)&lt;/i&gt;, but because that&#39;s where everyone lands at the end of the day.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a name=&quot;line831&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Kelly Long works for Mikael Ronström&#39;s architecture group and is not, strictly speaking, &lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;a m&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;ember of the Falcon team. However, since late last year, Kelly&#39;s primary focus has been to measure and analyze Falcon performance. To give you a sense of how seriously he takes this job, at right is a snapshot of the gear this cat has &lt;i&gt;at his home&lt;/i&gt;.&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGVrHffUr-EzuK3t4USvc5H1UxuXtRqy1VH7yP8beStIF0M65peHiaWnUuCFxDqy3iPwjum8hwxG43N9uUoYuEGPQMO_UkWlFSjlUtuMuX-sachEaMwgppAGepvoaobfkWeE-o-Q/s1600-h/kelly_hardware_112607_0001.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 125px; height: 167px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGVrHffUr-EzuK3t4USvc5H1UxuXtRqy1VH7yP8beStIF0M65peHiaWnUuCFxDqy3iPwjum8hwxG43N9uUoYuEGPQMO_UkWlFSjlUtuMuX-sachEaMwgppAGepvoaobfkWeE-o-Q/s320/kelly_hardware_112607_0001.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5194341012722471058&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;My remarks to Kevin that evening were, in part, inspired by some outstanding analysis Kelly did on the Falcon&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt; SyncObject implementation, and the subsequent fix. I&#39;ll save the details for a near-future post, but the fix closed a timing window whereby sleeping threads were not awakened when the object for which they were waiting became available.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;The problem typically manifested at higher concurrencies (64 to 256 clients) on an 8-way system. The symptom was a perplexing and, frankly, frightening standard deviation. For example, at 64 clients, InnoDB might exhibit an STD of 1.8% whereas Falcon would sometimes have an 80% STD, rendering the results effectively worthless.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Ap&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;art from his recent SyncObject discovery, Kelly had  also performed in-depth analysis on other sacrosanct components of the Falcon core, including some of the page cache algorithms, and was in the process of trying out code changes to verify his conclusions.&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;Now, in the context of our small and busy little team, I regarded this news as an absolute gift, because it was precisely the type of analysis we&#39;ve needed but had neither the time nor the resources to perform.&lt;/span&gt;&lt;/p&gt;    &lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;I should also note that, as a seasoned senior engineer, Kelly had the good sense to establish some empirical evidence before announcing his findings, because changes to the Falcon core are not considered lightly, and we just don&#39;t have time to chase every &quot;what-if&quot; without probable cause unless it exhibits &lt;span style=&quot;font-style: italic;&quot;&gt;prima facie&lt;/span&gt; evidence of potential awesomeness.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;b&gt;Manyi Lu&lt;/b&gt;, Engineering Manager, MySQL Server 6.0&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCbU3vrt6qJDz4b0RyHpt5fHox2ihg8hyqHx-VjJRH5yMcxgxxJMkEyVczZIAlyZ9NAbO57C5xp4S0plVOST7fQWp__2VMrDReKIr6GegcbqBcN7ftS-DCQIutn1EKfeTtIw6-EQ/s1600-h/manyi.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCbU3vrt6qJDz4b0RyHpt5fHox2ihg8hyqHx-VjJRH5yMcxgxxJMkEyVczZIAlyZ9NAbO57C5xp4S0plVOST7fQWp__2VMrDReKIr6GegcbqBcN7ftS-DCQIutn1EKfeTtIw6-EQ/s320/manyi.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5194178379490840674&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Manyi Lu is an engineering manager from the Sun Database Technology Group. She &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;is from Beijing, lives in Norway and speaks at least two more languages than me. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Manyi very recently became project manager of the MySQL Server 6.0 and related groups, including Falcon, Maria, Backup and the Subquery optimization teams. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Manyi introduced herself to Kevin and me at Marten&#39;s party during the UC. At the time, I was blathering on to Kevin and Kelly about some damn thing or another, when Manyi and Rune &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Humborstad&lt;span style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;, a Sun software architect, drifted over to us and started asking questions about Falcon&#39;s stability and performance.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;I did not know Manyi or Rune, but was intrigued by their interest in Falcon&#39;s stability, which was a bit rocky at the time. Kevin and I were quite happy to oblige, and spoke  candidly about the project, neither of us realizing that Manyi would soon become the MySQL Server 6.0 project manager. &lt;/span&gt; &lt;/p&gt;  &lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;We were sort of awkardly positioned around a pesky little five-foot tree in Marten&#39;s back yard&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;,  &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;but it was a very interesting and positive conversation, and Manyi offered to have some of the DBTG group help with Falcon QA and possibly bug fixing. To me, this was the first tangible evidence of how the Sun acquistion can make a real difference in the outcome and success of the Falcon project.&lt;/span&gt;&lt;/p&gt;&lt;p  style=&quot;margin-bottom: 0in; text-decoration: none;font-family:verdana;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;I left Marten&#39;s party really psyched.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;&lt;/span&gt;&lt;hr  style=&quot;height: 2px;font-family:verdana;&quot;&gt;&lt;div  style=&quot;text-align: center;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7S2rzMqCc-RlfZaUoar5pQ05X69Ym6D3zmPlp6JmrkTdsY-neQLZIkBLL7f-L8XaEBDHn5Ij1Iym0lUVA9lO-vkijMBpNUhHVSuT9IgVeidryirPhqHM22bAx2JqtA4cGDdXQhg/s1600-h/heidelberg_castle_falcon_02.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7S2rzMqCc-RlfZaUoar5pQ05X69Ym6D3zmPlp6JmrkTdsY-neQLZIkBLL7f-L8XaEBDHn5Ij1Iym0lUVA9lO-vkijMBpNUhHVSuT9IgVeidryirPhqHM22bAx2JqtA4cGDdXQhg/s400/heidelberg_castle_falcon_02.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5194210643285168258&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;The MySQL Falcon team at Heidelberg Castle, September 2007 .&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style=&quot;text-align: center;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;L-R: Hakan, Kevin, Calvin, Ann, Jim, Christoffer Hall (now on the Cluster team), Chris Powers.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://carotid.blogspot.com/2008_04_01_archive.html#7141283083883186182</link><author>noreply@blogger.com (Christopher Powers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaOQ_TaB39zVKWvlLNUDMtkwOv8kauy8RqbpbWEv3S8x20CYxq6fQ1BYFi9cK4QslTDyMlpCSHmXgtd2jtRka5rTz_kRLUpSnGUonKZJmvgA8WkATa0dMFCsuPimLBLrcVkebMGA/s72-c/kevin.jpg" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-5218833447575677557</guid><pubDate>Mon, 28 Apr 2008 04:36:00 +0000</pubDate><atom:updated>2008-09-27T18:01:29.083-05:00</atom:updated><title>&quot;Just when I thought I was out...&quot;</title><description>&lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;I joined MySQL and the Falcon project a year ago January, after five years writing and testing firmware for implantable heart devices (pacemakers, defibrillators.)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;In the summer of 2006, Calvin, a former colleague from Pervasive Software, asked if I&#39;d consider joining him at an open source company, MySQL. I declined at first because I&#39;d spent the last five years learning a new domain, had just been promoted to Principal Engineer, and really enjoyed working in research.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;I also really liked the idea of my code running inside someone&#39;s chest (&lt;i&gt;&quot;Step aside folks. I can debug that man.&quot;&lt;/i&gt;), plus I&#39;d already done the database thing at Pervasive and didn&#39;t feel it would be all that challenging.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0in; text-decoration: none; font-style: italic;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;Huh.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;But after another chat with Calvin, I was sold on MySQL. Not only was I sold, but I realized (and I&#39;m lucky this way--sometimes realizations are just handed to me), that it was clearly time for a change. I did the New Job Assessment that we&#39;ve all done at one time or another:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;1. Work from home. CHECK&lt;/span&gt;&lt;/span&gt;&lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;2. No cubicles. CHECK&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;3. Gene therapy will not disrupt the domain. CHECK&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;4. Same salary. CHECK&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;5. &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;Imminent IPO. CHECK&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;6. &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;MySQL database is popular, apparently. CHECK&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in; font-style: normal; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;7. &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;You can take naps. CHECK&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt; &lt;i&gt;&lt;blockquote&gt;I proposed a &quot;hammock room&quot; at my last job. Never heard back.&lt;br /&gt;&lt;/blockquote&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;8.  &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;Company is Swedish. Uhh...CHECK?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt; &lt;/p&gt; &lt;blockquote&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;&lt;i&gt; Not American? How can &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;&lt;i&gt; anyone work for a company unless it&#39;s American? Good Lord.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;9. Five weeks vacation. CHECK&lt;/span&gt;&lt;/span&gt; &lt;p style=&quot;margin-bottom: 0in; text-decoration: none;&quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;&lt;i&gt;&lt;blockquote&gt; Wait. What? Five weeks? Must be a European thing. Okay. I like European companies now.&lt;/blockquote&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in; font-style: normal; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;10. &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;No khakis, button-down shirts or, ahem, undergarments required. CHECK&lt;br /&gt;11. No one to raise an eyebrow if ol&#39; Powers waltzes in at 9:30am. CHECK&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;text-decoration: none;font-size:85%;&quot; &gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-family:Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;So, here I am, back in Database Land and loving it. Oh, and that little concern about &quot;challenging&quot;? Turns out it wasn&#39;t a problem. Nope. Not a bit. Oh dear God, no. Not at all.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;;font-family:Verdana,sans-serif;font-size:85%;&quot;  &gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://carotid.blogspot.com/2008_04_01_archive.html#5218833447575677557</link><author>noreply@blogger.com (Christopher Powers)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-11714554.post-122306188719539120</guid><pubDate>Fri, 18 Apr 2008 05:09:00 +0000</pubDate><atom:updated>2008-09-27T18:02:08.651-05:00</atom:updated><title>Just. Start. Writing.</title><description>&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &gt;So, exactly how does one breathe life into a technical blog? My instinctive approach to such tasks—and this is a personal failing to which I freely confess—is to overthink every element of the thing: tone, style, content, title, domain name, what have you.&lt;br /&gt;&lt;br /&gt;After a month of dithering, I was struck by the simple fact that a blog is not an astronavigation exam, so all I really need to do is to stop thinking and just...start...writing.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;But about what?&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;Whatever. You&#39;ll figure it out. Just start typing. Now.&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;But what if someone thinks it sucks?&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;Someone already does. Now get to it.&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;But what about my voice? I need a voice. A writer needs a voice.&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[cold stare]&lt;br /&gt;&lt;br /&gt;Anyway, after a quick survey of the more active MySQL blogs, I developed a sense of what to avoid, what to emulate and perhaps what I might add to the scene.&lt;br /&gt;&lt;br /&gt;So, here&#39;s the deal: I will write about the MySQL Falcon storage engine from the perspective of a developer on the Falcon team. No agenda. No snarky tone. No bullshit. Just the straight stuff.&lt;br /&gt;&lt;br /&gt;There is a pre-colonial abundance of material to cover, so I will occasionally post contributions from my Falcon teammates and colleagues at MySQL-Sun.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</description><link>http://carotid.blogspot.com/2008_04_01_archive.html#122306188719539120</link><author>noreply@blogger.com (Christopher Powers)</author><thr:total>0</thr:total></item></channel></rss>