<?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; Domas Mituzas</title>
	<atom:link href="http://www.xaprb.com/blog/tag/domas-mituzas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xaprb.com/blog</link>
	<description>Stay curious!</description>
	<lastBuildDate>Wed, 08 Feb 2012 03:13:07 +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>The new hotness in open-core: InnoDB</title>
		<link>http://www.xaprb.com/blog/2010/07/02/the-new-hotness-in-open-core-innodb/</link>
		<comments>http://www.xaprb.com/blog/2010/07/02/the-new-hotness-in-open-core-innodb/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 17:58:35 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Domas Mituzas]]></category>
		<category><![CDATA[InnoDB]]></category>
		<category><![CDATA[Open Core]]></category>
		<category><![CDATA[Xtrabackup]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1914</guid>
		<description><![CDATA[There&#8217;s lots of buzz lately about the so-called &#8220;open-core&#8221; business model of Marten Mickos&#8217;s new employer. But this is nothing new. Depending on how you define it, InnoDB is &#8220;open-core,&#8221; and has been for a long time. The InnoDB Hot Backup (ibbackup) tool was always closed-source. Did anyone ever cry foul and claim that this [...]


<strong>Further Reading:</strong><ul><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/06/08/xtrabackup-is-for-innodb-tables-too-not-just-xtradb/' rel='bookmark' title='Permanent Link: Xtrabackup is for InnoDB tables too, not just XtraDB'>Xtrabackup is for InnoDB tables too, not just XtraDB</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>
<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/2009/03/08/making-maatkit-more-open-source-one-step-at-a-time/' rel='bookmark' title='Permanent Link: Making Maatkit more Open Source one step at a time'>Making Maatkit more Open Source one step at a time</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s lots of buzz lately about the so-called <a href="http://www.computerworlduk.com/community/blogs/index.cfm?entryid=3048&#038;blogid=41">&#8220;open-core&#8221; business model of Marten Mickos&#8217;s new employer</a>. But this is nothing new.  Depending on how you define it, InnoDB is &#8220;open-core,&#8221; and has been for a long time.  The InnoDB Hot Backup (ibbackup) tool was always closed-source.  Did anyone ever cry foul and claim that this made InnoDB itself not open-source, or accuse Innobase / Oracle of masquerading as open-source?  I don&#8217;t recall that happening, although sometimes people got suspicious about <a href="http://mituzas.lt/2010/05/08/on-hot-backups/">the interplay between the backup tool and the storage engine</a>.  Generally, though, the people I know who use InnoDB Hot Backup have no gripes about paying for it.</p>

<p>What is the difference between open-source with closed-source accessories, and crippleware?  I think it depends on how people define the core functionality of software.  Some might say that backup is core functionality for a database; and others would point to mysqldump and say that InnoDB isn&#8217;t crippleware as long as there is <em>some</em> alternative.</p>

<p>I think InnoDB is an interesting case that illustrates what can happen when commercial and GPL play together.  Part of that story is <a href="http://www.mysqlperformanceblog.com/2009/02/24/xtrabackup-open-source-alternative-for-innodb-hot-backup-call-for-ideas/">the appearance of XtraBackup</a>, an open-source competitor to InnoDB Hot Backup.  Everyone&#8217;s subject to the rules of the game, unless they restrict the &#8220;core,&#8221; which would make it non-open-source to begin with.</p>

<p><strong>Further Reading:</strong><ul><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/06/08/xtrabackup-is-for-innodb-tables-too-not-just-xtradb/' rel='bookmark' title='Permanent Link: Xtrabackup is for InnoDB tables too, not just XtraDB'>Xtrabackup is for InnoDB tables too, not just XtraDB</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>
<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/2009/03/08/making-maatkit-more-open-source-one-step-at-a-time/' rel='bookmark' title='Permanent Link: Making Maatkit more Open Source one step at a time'>Making Maatkit more Open Source one step at a time</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2010/07/02/the-new-hotness-in-open-core-innodb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>An easy way to run many tasks in parallel</title>
		<link>http://www.xaprb.com/blog/2009/05/01/an-easy-way-to-run-many-tasks-in-parallel/</link>
		<comments>http://www.xaprb.com/blog/2009/05/01/an-easy-way-to-run-many-tasks-in-parallel/#comments</comments>
		<pubDate>Fri, 01 May 2009 15:17:23 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Sys Admin]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Domas Mituzas]]></category>
		<category><![CDATA[parallelization]]></category>
		<category><![CDATA[xargs]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1056</guid>
		<description><![CDATA[Domas Mituzas mentioned this recently. It&#8217;s so cool I just have to write about it. Here&#8217;s an easy command to fork off a bunch of jobs in parallel: xargs. seq 10 20 &#124; xargs -n 1 -P 5 sleep This will send a sequence of numbers to xargs, which will divide it into chunks of [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2007/09/30/introducing-mysql-parallel-dump/' rel='bookmark' title='Permanent Link: Introducing MySQL Parallel Dump'>Introducing MySQL Parallel Dump</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/03/how-to-check-and-optimize-mysql-tables-in-parallel/' rel='bookmark' title='Permanent Link: How to check and optimize MySQL tables in parallel'>How to check and optimize MySQL tables in parallel</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/15/introducing-mysql-parallel-restore/' rel='bookmark' title='Permanent Link: Introducing MySQL Parallel Restore'>Introducing MySQL Parallel Restore</a></li>
<li><a href='http://www.xaprb.com/blog/2010/06/30/how-i-keep-track-of-tasks/' rel='bookmark' title='Permanent Link: How I keep track of tasks'>How I keep track of tasks</a></li>
<li><a href='http://www.xaprb.com/blog/2010/05/14/how-to-read-linuxs-procdiskstats-easily/' rel='bookmark' title='Permanent Link: How to read Linux&#8217;s /proc/diskstats easily'>How to read Linux&#8217;s /proc/diskstats easily</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p><a href="http://dammit.lt/">Domas Mituzas</a> mentioned this recently.  It&#8217;s so cool I just have to write about it.  Here&#8217;s an easy command to fork off a bunch of jobs in parallel: xargs.</p>

<pre>seq 10 20 | xargs -n 1 -P 5 sleep</pre>

<p>This will send a sequence of numbers to xargs, which will divide it into chunks of one argument at a time and fork off 5 parallel processes to execute each.  You can see it in action:</p>

<pre>$ ps -eaf | grep sleep
baron     5830  5482  0 11:12 pts/2    00:00:00 xargs -n 1 -P 5 sleep
baron     5831  5830  0 11:12 pts/2    00:00:00 sleep 10
baron     5832  5830  0 11:12 pts/2    00:00:00 sleep 11
baron     5833  5830  0 11:12 pts/2    00:00:00 sleep 12
baron     5834  5830  0 11:12 pts/2    00:00:00 sleep 13
baron     5835  5830  0 11:12 pts/2    00:00:00 sleep 14
</pre>

<p>There are basically unlimited uses for this!</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2007/09/30/introducing-mysql-parallel-dump/' rel='bookmark' title='Permanent Link: Introducing MySQL Parallel Dump'>Introducing MySQL Parallel Dump</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/03/how-to-check-and-optimize-mysql-tables-in-parallel/' rel='bookmark' title='Permanent Link: How to check and optimize MySQL tables in parallel'>How to check and optimize MySQL tables in parallel</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/15/introducing-mysql-parallel-restore/' rel='bookmark' title='Permanent Link: Introducing MySQL Parallel Restore'>Introducing MySQL Parallel Restore</a></li>
<li><a href='http://www.xaprb.com/blog/2010/06/30/how-i-keep-track-of-tasks/' rel='bookmark' title='Permanent Link: How I keep track of tasks'>How I keep track of tasks</a></li>
<li><a href='http://www.xaprb.com/blog/2010/05/14/how-to-read-linuxs-procdiskstats-easily/' rel='bookmark' title='Permanent Link: How to read Linux&#8217;s /proc/diskstats easily'>How to read Linux&#8217;s /proc/diskstats easily</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2009/05/01/an-easy-way-to-run-many-tasks-in-parallel/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

