<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Xaprb &#187; Maatkit</title>
	<atom:link href="http://www.xaprb.com/blog/tag/maatkit/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xaprb.com/blog</link>
	<description>Stay curious!</description>
	<lastBuildDate>Thu, 09 Feb 2012 03:58:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>A script snippet for aggregating GDB backtraces</title>
		<link>http://www.xaprb.com/blog/2009/08/30/a-script-snippet-for-aggregating-gdb-backtraces/</link>
		<comments>http://www.xaprb.com/blog/2009/08/30/a-script-snippet-for-aggregating-gdb-backtraces/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 18:49:25 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Domas Mituzas]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[lock contention]]></category>
		<category><![CDATA[Mark Callaghan]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1258</guid>
		<description><![CDATA[Note: the bt-aggregate tool has been deprecated and replaced by the pmp tool, which can do all that and more. A short time ago in a galaxy nearby, Domas Mituzas wrote about contention profiling with GDB stack traces. Mark Callaghan found the technique useful, and contributed an awk script (in the comments) to aggregate stack [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2009/09/01/a-script-snippet-to-relative-ize-numbers-embedded-in-text/' rel='bookmark' title='Permanent Link: A script snippet to relative-ize numbers embedded in text'>A script snippet to relative-ize numbers embedded in text</a></li>
<li><a href='http://www.xaprb.com/blog/2009/06/05/a-tweak-to-column-alignment-for-the-mext-script/' rel='bookmark' title='Permanent Link: A tweak to column alignment for the mext script'>A tweak to column alignment for the mext script</a></li>
<li><a href='http://www.xaprb.com/blog/2006/03/12/gnucash-to-mysql-export-script/' rel='bookmark' title='Permanent Link: GnuCash to MySQL export script'>GnuCash to MySQL export script</a></li>
<li><a href='http://www.xaprb.com/blog/2010/05/07/using-aspersa-to-capture-diagnostic-data/' rel='bookmark' title='Permanent Link: Using Aspersa to capture diagnostic data'>Using Aspersa to capture diagnostic data</a></li>
<li><a href='http://www.xaprb.com/blog/2008/10/16/the-unexpected-consequences-of-selinux/' rel='bookmark' title='Permanent Link: The unexpected consequences of SELinux'>The unexpected consequences of SELinux</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p><strong>Note: the bt-aggregate tool has been deprecated and replaced by the <a href="http://aspersa.googlecode.com/svn/html/pmp.html">pmp</a> tool, which can do all that and more.</strong></p>

<p>A short time ago in a galaxy nearby, <a href="http://mituzas.lt/2009/02/15/poor-mans-contention-profiling/">Domas Mituzas wrote about contention profiling with GDB stack traces</a>.  Mark Callaghan found the technique useful, and contributed an awk script (in the comments) to aggregate stack traces and identify which things are blocking most threads.  I&#8217;ve used it myself a time or five.  But I&#8217;ve found myself wanting it to be fancier, for various reasons.  So I wrote <a href="http://aspersa.googlecode.com/svn/trunk/pmp">a little utility that can aggregate and pretty-print backtraces</a>.  It can handle unresolved symbols, and aggregate by only the first N lines of the stack trace.  Here&#8217;s an example of a mysqld instance that&#8217;s really, really frozen up:</p>

<code><pre>bt-aggregate -4 samples/backtrace.txt | head -n12
2396 threads with the following stack trace:
        #0  0x00000035e7c0a4b6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
        #1  0x00000000005f2bd8 in open_table ()
        #2  0x00000000005f3fb4 in open_tables ()
        #3  0x00000000005f4247 in open_and_lock_tables_derived ()

4 threads with the following stack trace:
        #0  0x00000035e7c0a4b6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
        #1  0x0000000000780099 in os_event_wait_low ()
        #2  0x000000000077de42 in os_aio_simulated_handle ()
        #3  0x000000000074a261 in fil_aio_wait ()
</pre></code>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2009/09/01/a-script-snippet-to-relative-ize-numbers-embedded-in-text/' rel='bookmark' title='Permanent Link: A script snippet to relative-ize numbers embedded in text'>A script snippet to relative-ize numbers embedded in text</a></li>
<li><a href='http://www.xaprb.com/blog/2009/06/05/a-tweak-to-column-alignment-for-the-mext-script/' rel='bookmark' title='Permanent Link: A tweak to column alignment for the mext script'>A tweak to column alignment for the mext script</a></li>
<li><a href='http://www.xaprb.com/blog/2006/03/12/gnucash-to-mysql-export-script/' rel='bookmark' title='Permanent Link: GnuCash to MySQL export script'>GnuCash to MySQL export script</a></li>
<li><a href='http://www.xaprb.com/blog/2010/05/07/using-aspersa-to-capture-diagnostic-data/' rel='bookmark' title='Permanent Link: Using Aspersa to capture diagnostic data'>Using Aspersa to capture diagnostic data</a></li>
<li><a href='http://www.xaprb.com/blog/2008/10/16/the-unexpected-consequences-of-selinux/' rel='bookmark' title='Permanent Link: The unexpected consequences of SELinux'>The unexpected consequences of SELinux</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2009/08/30/a-script-snippet-for-aggregating-gdb-backtraces/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>How to add a wiki homepage, sidebar, and TOC in Google Code</title>
		<link>http://www.xaprb.com/blog/2009/07/01/how-to-add-a-wiki-homepage-sidebar-and-toc-in-google-code/</link>
		<comments>http://www.xaprb.com/blog/2009/07/01/how-to-add-a-wiki-homepage-sidebar-and-toc-in-google-code/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 14:29:02 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[World Wide Web]]></category>
		<category><![CDATA[Google Code]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1166</guid>
		<description><![CDATA[I just adore Google Code. But the default wiki view (a list of pages, sorted by last-modified) is lacking something. Fortunately, it&#8217;s fixable. Here&#8217;s the before: And here&#8217;s the after: Here&#8217;s how: Create a wiki page called TableOfContents, or something like that. Using normal wiki syntax, enter links and text for your table of contents. [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/11/23/google-code-rocks-my-world/' rel='bookmark' title='Permanent Link: Google Code rocks my world'>Google Code rocks my world</a></li>
<li><a href='http://www.xaprb.com/blog/2008/10/04/javascript-formatting-and-parsing-functions-now-on-google-code/' rel='bookmark' title='Permanent Link: Javascript formatting and parsing functions now on Google Code'>Javascript formatting and parsing functions now on Google Code</a></li>
<li><a href='http://www.xaprb.com/blog/2009/03/31/my-favorite-wiki-is-dokuwiki/' rel='bookmark' title='Permanent Link: My favorite wiki is Dokuwiki'>My favorite wiki is Dokuwiki</a></li>
<li><a href='http://www.xaprb.com/blog/2005/12/15/more-ways-to-use-udfs-instead-of-openxml/' rel='bookmark' title='Permanent Link: More alternatives to <code>openxml</code>'>More alternatives to <code>openxml</code></a></li>
<li><a href='http://www.xaprb.com/blog/2009/06/21/how-to-add-paragraph-spacing-in-google-docs/' rel='bookmark' title='Permanent Link: How to add paragraph spacing in Google Docs'>How to add paragraph spacing in Google Docs</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I just adore Google Code.  But the default wiki view (a list of pages, sorted by last-modified) is lacking something.  Fortunately, it&#8217;s fixable.  Here&#8217;s the before:</p>

<div id="attachment_1167" class="wp-caption alignnone" style="width: 642px"><img src="http://www.xaprb.com/blog/wp-content/uploads/2009/07/Screenshot-Wiki-Pages-maatkit-Google-Code-Mozilla-Firefox.png" alt="Default wiki list" title="Default wiki list" width="632" height="342" class="size-full wp-image-1167" /><p class="wp-caption-text">Default wiki list</p></div>

<p>And here&#8217;s the after:</p>

<div id="attachment_1168" class="wp-caption alignnone" style="width: 642px"><img src="http://www.xaprb.com/blog/wp-content/uploads/2009/07/Screenshot-Wiki-Pages-maatkit-Google-Code-Mozilla-Firefox1.png" alt="Wiki with sidebar and default page" title="Wiki with sidebar and default page" width="632" height="342" class="size-full wp-image-1168" /><p class="wp-caption-text">Wiki with sidebar and default page</p></div>

<p>Here&#8217;s how:</p>

<ol>
<li>Create a wiki page called TableOfContents, or something like that.  Using normal wiki syntax, enter links and text for your table of contents.  The best way to do this is to use bulleted lists to organize and outline the pages.  Keep in mind that we&#8217;ll use this same text for the sidebar, so keep it brief.</li>
<li>Go to Administer/Wiki and enter that wiki page&#8217;s name in the &#8220;Wiki Sidebar&#8221; box.  Save the changes.</li>
<li>Go to Administer/Tabs and enter the same page in the Wiki box.  Save the changes.</li>
</ol>

<p>Now both the wiki &#8220;homepage&#8221; and the sidebar will contain the page you created.  No more ugly list-of-pages.  And as you navigate through the wiki pages, the sidebar automatically expands and closes the outline to show where you are.</p>

<p>If you want, you can use a different homepage and sidebar, but I&#8217;ve found that it works well for me to use the same page for both.  It&#8217;s a preference, that&#8217;s all.</p>

<p>There&#8217;s one more trick I&#8217;d like to share: you can add the text <code>&lt;wiki:toc /&gt;</code> at the top of any page to create a small table of contents for that page.  There are ways to customize it &#8212; check the documentation for more options.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/11/23/google-code-rocks-my-world/' rel='bookmark' title='Permanent Link: Google Code rocks my world'>Google Code rocks my world</a></li>
<li><a href='http://www.xaprb.com/blog/2008/10/04/javascript-formatting-and-parsing-functions-now-on-google-code/' rel='bookmark' title='Permanent Link: Javascript formatting and parsing functions now on Google Code'>Javascript formatting and parsing functions now on Google Code</a></li>
<li><a href='http://www.xaprb.com/blog/2009/03/31/my-favorite-wiki-is-dokuwiki/' rel='bookmark' title='Permanent Link: My favorite wiki is Dokuwiki'>My favorite wiki is Dokuwiki</a></li>
<li><a href='http://www.xaprb.com/blog/2005/12/15/more-ways-to-use-udfs-instead-of-openxml/' rel='bookmark' title='Permanent Link: More alternatives to <code>openxml</code>'>More alternatives to <code>openxml</code></a></li>
<li><a href='http://www.xaprb.com/blog/2009/06/21/how-to-add-paragraph-spacing-in-google-docs/' rel='bookmark' title='Permanent Link: How to add paragraph spacing in Google Docs'>How to add paragraph spacing in Google Docs</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2009/07/01/how-to-add-a-wiki-homepage-sidebar-and-toc-in-google-code/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Making Maatkit more Open Source one step at a time</title>
		<link>http://www.xaprb.com/blog/2009/03/08/making-maatkit-more-open-source-one-step-at-a-time/</link>
		<comments>http://www.xaprb.com/blog/2009/03/08/making-maatkit-more-open-source-one-step-at-a-time/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 02:35:15 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Innotop]]></category>
		<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=497</guid>
		<description><![CDATA[If you&#8217;ve been holding out for that golden opportunity, now&#8217;s a great time to get involved in Maatkit. Until now I haven&#8217;t really made a conscious effort to open-source the decision process and get people involved; Maatkit has been largely driven by so-called &#8220;real-world needs,&#8221; as perceived through my little lens on the world (and [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2009/03/19/open-source-database-developer-mailing-lists/' rel='bookmark' title='Permanent Link: Open-source database developer mailing lists'>Open-source database developer mailing lists</a></li>
<li><a href='http://www.xaprb.com/blog/2008/12/23/does-mysql-really-have-an-open-source-business-model/' rel='bookmark' title='Permanent Link: Does MySQL really have an open-source business model?'>Does MySQL really have an open-source business model?</a></li>
<li><a href='http://www.xaprb.com/blog/2009/04/29/what-does-an-open-source-sales-model-look-like/' rel='bookmark' title='Permanent Link: What does an open source sales model look like?'>What does an open source sales model look like?</a></li>
<li><a href='http://www.xaprb.com/blog/2008/05/14/mysql-free-software-but-not-open-source/' rel='bookmark' title='Permanent Link: MySQL: Free Software but not Open Source'>MySQL: Free Software but not Open Source</a></li>
<li><a href='http://www.xaprb.com/blog/2011/07/04/measuring-open-source-success-by-jobs/' rel='bookmark' title='Permanent Link: Measuring open-source success by jobs'>Measuring open-source success by jobs</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been holding out for that golden opportunity, now&#8217;s a great time to get involved in <a href="http://www.maatkit.org/">Maatkit</a>.</p>

<p>Until now I haven&#8217;t really made a conscious effort to open-source the decision process and get people involved; Maatkit has been largely driven by so-called &#8220;real-world needs,&#8221; as perceived through my little lens on the world (and emails from the whole Percona team telling me when something&#8217;s wrong).  I guess I am <em>likely</em> to remain some kind of benevolent dictator, because I created Maatkit and historically I&#8217;m the main hacker.  <strong>But it doesn&#8217;t have to stay that way, and the project and users will be better off if it doesn&#8217;t</strong>.</p>

<p>So I&#8217;ve been trying to break out of the rut of just having some little email exchange with people using the tools, and bring things onto <a href="http://groups.google.com/group/maatkit-discuss">the Maatkit mailing list</a> for discussion and voting.  Two mailing lists I&#8217;m lurking on (Drizzle and PostgreSQL hackers) have inspired me to do this.  And the person who jumped into <a href="http://code.google.com/p/innotop/">innotop</a> maintenance set up a whole slew of mailing lists right away, which was also educational for me &#8212; it really is beneficial.</p>

<p>Right now if you jump on the mailing list, you can vote on topics such as breaking backwards compatibility with command-line options for the purpose of consistent and easy-to-learn options for the future.</p>

<p>And I have honestly gotten intolerant about the volume of email I deal with, so when someone emails me personally I usually tell them bluntly to take it to the list, so others can learn and contribute, instead of making me the single point of contention in the knowledge-sharing system,  and denying others the opportunity to learn.</p>

<p>So &#8212; my point is, go participate, and <a href="http://www.xaprb.com/blog/2008/05/14/mysql-free-software-but-not-open-source/">let&#8217;s make Maatkit more Open Source, not just Free Software</a>.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2009/03/19/open-source-database-developer-mailing-lists/' rel='bookmark' title='Permanent Link: Open-source database developer mailing lists'>Open-source database developer mailing lists</a></li>
<li><a href='http://www.xaprb.com/blog/2008/12/23/does-mysql-really-have-an-open-source-business-model/' rel='bookmark' title='Permanent Link: Does MySQL really have an open-source business model?'>Does MySQL really have an open-source business model?</a></li>
<li><a href='http://www.xaprb.com/blog/2009/04/29/what-does-an-open-source-sales-model-look-like/' rel='bookmark' title='Permanent Link: What does an open source sales model look like?'>What does an open source sales model look like?</a></li>
<li><a href='http://www.xaprb.com/blog/2008/05/14/mysql-free-software-but-not-open-source/' rel='bookmark' title='Permanent Link: MySQL: Free Software but not Open Source'>MySQL: Free Software but not Open Source</a></li>
<li><a href='http://www.xaprb.com/blog/2011/07/04/measuring-open-source-success-by-jobs/' rel='bookmark' title='Permanent Link: Measuring open-source success by jobs'>Measuring open-source success by jobs</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2009/03/08/making-maatkit-more-open-source-one-step-at-a-time/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Baron Schwartz on a podcast at MySQL Conference and Expo 2008</title>
		<link>http://www.xaprb.com/blog/2008/04/25/baron-schwartz-on-a-podcast-at-mysql-conference-and-expo-2008/</link>
		<comments>http://www.xaprb.com/blog/2008/04/25/baron-schwartz-on-a-podcast-at-mysql-conference-and-expo-2008/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 13:35:15 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Baron Schwartz]]></category>
		<category><![CDATA[Barton George]]></category>
		<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[mysqluc08]]></category>
		<category><![CDATA[mysqluc2008]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/2008/04/25/baron-schwartz-on-a-podcast-at-mysql-conference-and-expo-2008/</guid>
		<description><![CDATA[I did an interview with Barton George from Sun while I was at the conference last week. Barton has now posted the interview. If you&#8217;re quick, you can listen to it before I do. Topics: everything and anything, including Maatkit and PostgreSQL. Further Reading:MySQL Conference and Expo 2008, Day One MySQL Conference and Expo 2008, [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/04/16/mysql-conference-and-expo-2008-day-one/' rel='bookmark' title='Permanent Link: MySQL Conference and Expo 2008, Day One'>MySQL Conference and Expo 2008, Day One</a></li>
<li><a href='http://www.xaprb.com/blog/2008/04/17/mysql-conference-and-expo-2008-day-two/' rel='bookmark' title='Permanent Link: MySQL Conference and Expo 2008, Day Two'>MySQL Conference and Expo 2008, Day Two</a></li>
<li><a href='http://www.xaprb.com/blog/2008/04/19/mysql-conference-and-expo-2008-day-three/' rel='bookmark' title='Permanent Link: MySQL Conference and Expo 2008, Day Three'>MySQL Conference and Expo 2008, Day Three</a></li>
<li><a href='http://www.xaprb.com/blog/2008/01/25/my-presentations-at-the-2008-mysql-conference-and-expo/' rel='bookmark' title='Permanent Link: My presentations at the 2008 MySQL Conference and Expo'>My presentations at the 2008 MySQL Conference and Expo</a></li>
<li><a href='http://www.xaprb.com/blog/2008/04/23/like-it-or-not-it-is-the-mysql-conference-and-expo/' rel='bookmark' title='Permanent Link: Like it or not, it is the MySQL Conference and Expo'>Like it or not, it is the MySQL Conference and Expo</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I did an interview with <a href="http://blogs.sun.com/barton808/">Barton George from Sun</a> while I was at the conference last week.  <a href="http://blogs.sun.com/barton808/entry/mysql_conf08_talkin_to_baron">Barton has now posted the interview</a>.  If you&#8217;re quick, you can listen to it before I do.</p>

<p>Topics: everything and anything, including Maatkit and PostgreSQL.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/04/16/mysql-conference-and-expo-2008-day-one/' rel='bookmark' title='Permanent Link: MySQL Conference and Expo 2008, Day One'>MySQL Conference and Expo 2008, Day One</a></li>
<li><a href='http://www.xaprb.com/blog/2008/04/17/mysql-conference-and-expo-2008-day-two/' rel='bookmark' title='Permanent Link: MySQL Conference and Expo 2008, Day Two'>MySQL Conference and Expo 2008, Day Two</a></li>
<li><a href='http://www.xaprb.com/blog/2008/04/19/mysql-conference-and-expo-2008-day-three/' rel='bookmark' title='Permanent Link: MySQL Conference and Expo 2008, Day Three'>MySQL Conference and Expo 2008, Day Three</a></li>
<li><a href='http://www.xaprb.com/blog/2008/01/25/my-presentations-at-the-2008-mysql-conference-and-expo/' rel='bookmark' title='Permanent Link: My presentations at the 2008 MySQL Conference and Expo'>My presentations at the 2008 MySQL Conference and Expo</a></li>
<li><a href='http://www.xaprb.com/blog/2008/04/23/like-it-or-not-it-is-the-mysql-conference-and-expo/' rel='bookmark' title='Permanent Link: Like it or not, it is the MySQL Conference and Expo'>Like it or not, it is the MySQL Conference and Expo</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2008/04/25/baron-schwartz-on-a-podcast-at-mysql-conference-and-expo-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Conference and Expo 2008, Day Three</title>
		<link>http://www.xaprb.com/blog/2008/04/19/mysql-conference-and-expo-2008-day-three/</link>
		<comments>http://www.xaprb.com/blog/2008/04/19/mysql-conference-and-expo-2008-day-three/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 05:22:31 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[Dathan Pattishall]]></category>
		<category><![CDATA[Farhan Mashraqi]]></category>
		<category><![CDATA[GET_LOCK]]></category>
		<category><![CDATA[InnoDB]]></category>
		<category><![CDATA[Lucene]]></category>
		<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[Mark Callaghan]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[myisam]]></category>
		<category><![CDATA[mysqluc2008]]></category>
		<category><![CDATA[Paul McCullagh]]></category>
		<category><![CDATA[pbxt]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/2008/04/19/mysql-conference-and-expo-2008-day-three/</guid>
		<description><![CDATA[Here&#8217;s a rundown of Thursday (day 3) of the MySQL Conference and Expo. This day&#8217;s sessions were much more interesting to me than Wednesday&#8217;s, and in fact I wanted to go to several of them in a single time slot a couple of times. Inside the PBXT Storage Engine This session was, as it sounds, [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/04/17/mysql-conference-and-expo-2008-day-two/' rel='bookmark' title='Permanent Link: MySQL Conference and Expo 2008, Day Two'>MySQL Conference and Expo 2008, Day Two</a></li>
<li><a href='http://www.xaprb.com/blog/2008/04/16/mysql-conference-and-expo-2008-day-one/' rel='bookmark' title='Permanent Link: MySQL Conference and Expo 2008, Day One'>MySQL Conference and Expo 2008, Day One</a></li>
<li><a href='http://www.xaprb.com/blog/2008/01/25/my-presentations-at-the-2008-mysql-conference-and-expo/' rel='bookmark' title='Permanent Link: My presentations at the 2008 MySQL Conference and Expo'>My presentations at the 2008 MySQL Conference and Expo</a></li>
<li><a href='http://www.xaprb.com/blog/2008/04/25/baron-schwartz-on-a-podcast-at-mysql-conference-and-expo-2008/' rel='bookmark' title='Permanent Link: Baron Schwartz on a podcast at MySQL Conference and Expo 2008'>Baron Schwartz on a podcast at MySQL Conference and Expo 2008</a></li>
<li><a href='http://www.xaprb.com/blog/2009/04/11/sessions-of-interest-at-mysql-conference-and-expo-2009/' rel='bookmark' title='Permanent Link: Sessions of interest at MySQL Conference and Expo 2009'>Sessions of interest at MySQL Conference and Expo 2009</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a rundown of Thursday (day 3) of the MySQL Conference and Expo.  This day&#8217;s sessions were much more interesting to me than Wednesday&#8217;s, and in fact I wanted to go to several of them in a single time slot a couple of times.</p>

<h3>Inside the PBXT Storage Engine</h3>

<p>This session was, as it sounds, a look at the internals of <a href="http://www.primebase.org/">PBXT</a>, a transactional storage engine for MySQL that has some interesting design techniques.  I had been looking forward to this session for a while, and Paul McCullagh&#8217;s nice explanations with clear diagrams were a welcome aid to understanding how PBXT works.  Unlike some of the other storage engines, PBXT is being developed in full daylight, with an emphasis on community involvement and input.  (Indeed, I may be contributing to it myself, in order to make its monitoring and tuning capabilities second to none).</p>

<p>PBXT has not only a unique design, but a clear vision for differentiating itself from other transactional storage engines.  It&#8217;s not trying to clone any particular engine; Paul and friends are planning to add some capabilities that will really set it apart from other engines, including high-availability features and blob streaming.</p>

<p>I left this session with a much better understanding of how PBXT balances various demands to satisfy all sorts of different workload characteristics, how it writes data, how it achieves transactional durability, and so on.  I think these capabilities, and its performance, can really be assessed only in the real world (of course), but in principle it sounds good.  I love knowing how things work!</p>

<p>There were about 30 people in the talk.  I wish there had been more, because I think PBXT is going to be an important part of the open ecosystem going forward.  However, I feel pretty confident people will take more notice if it starts to get used in the real world.  Someone had a video camera there, so you might check out the video when it&#8217;s available.  Paul&#8217;s explanations are really good.</p>

<h3>Helping InnoDB Scale on Servers with Many CPU Cores and Disks</h3>

<p>This session was <a href="http://mysqlha.blogspot.com/2008/04/innodb-scales-on-big-smp-servers.html">Mark Callaghan&#8217;s chance to unveil the work he and others have been doing on InnoDB&#8217;s scalability issues</a>, which mostly revolve around mutex contention.  Mark&#8217;s team has completely solved the problems on their workload and benchmarks.  In fact, after the changes, InnoDB exhibited significantly better performance even than <a href="http://www.mysqlperformanceblog.com/2007/10/12/myisam-scalability-and-innodb-falcon-benchmarks/">MyISAM, which began to be limited by the single mutex that synchronizes access to its key cache</a>.  (Yes, in fact MyISAM has scalability problems too).</p>

<p>Google&#8217;s workload for MySQL, in case you&#8217;re wondering, is pretty traditional (i.e. not web-like; more like an &#8220;enterprise&#8221; application).  Heavily I/O-bound, 24/7 critical systems, and so on.</p>

<p>Mark also wore several community t-shirts at various points in the talk, including one of my <a href="http://www.maatkit.org/">Maatkit</a> t-shirts.  Mark said Maatkit would be perfect if only it were written in Python (Google&#8217;s preferred scripting language).  Alas, Mark, it&#8217;ll stay in Perl.  But thanks for the nice compliment anyway.</p>

<p>The room was packed full.</p>

<h3>Scaling Heavy Concurrent Writes In Real Time</h3>

<p><a href="http://mysqldba.blogspot.com/">Dathan Pattishall</a>, formerly the lead architect at Flickr, explained his techniques for scaling Flickr&#8217;s write capacity.  He talked about how he&#8217;d worked to reduce primary key sizes, queued writes for batching, separated different types of data into different types of tables, and more.  Dathan has never been afraid to do what he thinks is a good idea, even if it flies in the face of &#8220;best practices,&#8221; so I was happy to finally hear him talk.</p>

<p>By the way, Dathan pointed out that distributed locking with <a href="http://www.danga.com/memcached/">memcached</a> and <code>add()</code> isn&#8217;t a silver bullet.  It works ok until memcached evicts your lock due to the LRU policy.  He uses MySQL&#8217;s built-in <code>GET_LOCK()</code> function for locking.</p>

<p>Dathan&#8217;s blog is a good source of information about his sometimes unorthodox approaches to database design.</p>

<h3>The Power of Lucene</h3>

<p>This was the only one of <a href="http://mysqldatabaseadministration.blogspot.com/">Frank (Farhan) Mashraqi&#8217;s</a> talks I got to attend.  This was pretty technical: how <a href="http://lucene.apache.org/">Lucene</a> works, how to configure and install it, how to index documents, how to execute searches.  If you were wondering how much work and complexity it would be to install and use Lucene, this talk would have been good for you to attend; I&#8217;ve never used it myself, but I&#8217;m pretty sure Frank covered everything you need to know.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/04/17/mysql-conference-and-expo-2008-day-two/' rel='bookmark' title='Permanent Link: MySQL Conference and Expo 2008, Day Two'>MySQL Conference and Expo 2008, Day Two</a></li>
<li><a href='http://www.xaprb.com/blog/2008/04/16/mysql-conference-and-expo-2008-day-one/' rel='bookmark' title='Permanent Link: MySQL Conference and Expo 2008, Day One'>MySQL Conference and Expo 2008, Day One</a></li>
<li><a href='http://www.xaprb.com/blog/2008/01/25/my-presentations-at-the-2008-mysql-conference-and-expo/' rel='bookmark' title='Permanent Link: My presentations at the 2008 MySQL Conference and Expo'>My presentations at the 2008 MySQL Conference and Expo</a></li>
<li><a href='http://www.xaprb.com/blog/2008/04/25/baron-schwartz-on-a-podcast-at-mysql-conference-and-expo-2008/' rel='bookmark' title='Permanent Link: Baron Schwartz on a podcast at MySQL Conference and Expo 2008'>Baron Schwartz on a podcast at MySQL Conference and Expo 2008</a></li>
<li><a href='http://www.xaprb.com/blog/2009/04/11/sessions-of-interest-at-mysql-conference-and-expo-2009/' rel='bookmark' title='Permanent Link: Sessions of interest at MySQL Conference and Expo 2009'>Sessions of interest at MySQL Conference and Expo 2009</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2008/04/19/mysql-conference-and-expo-2008-day-three/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

