<?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 Sep 2010 00:53:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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 [...]


Related posts:<ol><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/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/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/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/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></ol>]]></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>Related posts:<ol><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/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/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/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/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></ol></p>]]></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[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 traces and identify which things are blocking most threads.  I&#8217;ve used it myself a time or five.  [...]


Related posts:<ol><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/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/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/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><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></ol>]]></description>
			<content:encoded><![CDATA[<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/bt-aggregate">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>Related posts:<ol><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/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/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/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><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></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2009/08/30/a-script-snippet-for-aggregating-gdb-backtraces/feed/</wfw:commentRss>
		<slash:comments>10</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 [...]


Related posts:<ol><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></ol>]]></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>Related posts:<ol><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></ol></p>]]></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>
