<?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>Free MySQL - It&#039;s Your Data</title>
	<atom:link href="http://www.freemysql.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.freemysql.net</link>
	<description>Database Hosting Made Free</description>
	<lastBuildDate>Wed, 22 Feb 2012 13:48:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=263</generator>
		<item>
		<title>MySQL monitoring: storing, not caching</title>
		<link>http://www.freemysql.net/2012/02/22/mysql-monitoring-storing-not-caching/</link>
		<comments>http://www.freemysql.net/2012/02/22/mysql-monitoring-storing-not-caching/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 13:48:27 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[FreeMySQL]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.freemysql.net/2012/02/22/mysql-monitoring-storing-not-caching/</guid>
		<description><![CDATA[I&#8217;ve followed with interest on Baron&#8217;s Why don’t our new Nagios plugins use caching? and Sheeri&#8217;s Caching for Monitoring: Timing is Everything. I wish to present my take on this, from mycheckpoint&#8216;s point of view. So mycheckpoint works in a completely different way. On one hand, it doesn&#8217;t bother with caching. On the other hand, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve followed with interest on Baron&#8217;s <a href="http://www.mysqlperformanceblog.com/2012/02/19/why-dont-our-new-nagios-plugins-use-caching/">Why don’t our new Nagios plugins use caching?</a> and Sheeri&#8217;s <a href="http://www.sheeri.com/content/caching-monitoring-timing-everything">Caching for Monitoring: Timing is Everything</a>. I wish to present my take on this, from <a href="http://code.openark.org/forge/mycheckpoint">mycheckpoint</a>&#8216;s point of view.</p>
<p>So <em>mycheckpoint</em> works in a completely different way. On one hand, it doesn&#8217;t bother with caching. On the other hand, it doesn&#8217;t bother with re-reads of data.</p>
<p>There are no staleness issues, the data is consistent as it can get (you can <em>never</em> get a completely atomic read of everything in MySQL), and you can issue as many calculations as you want at the price of one take of monitoring. As in Sheere&#8217;s example, you can run <strong>Threads_connected/max_connections*100</strong>, mix status variables, system variables, meta-variables (e.g. Seconds_behind_master), user-created variables (e.g. number of purchases in your online shop) etc.</p>
<p><em>mycheckpoint</em>&#8216;s concept is to <strong>store</strong> data. And store it in relational format. That is, <strong>INSERT</strong> it to a table.</p>
<p>A sample-run generates a row, which lists all status, server, OS, user, meta variables. It&#8217;s a huge row, with hundreds of columns. Columns like <strong>threads_connected</strong>, <strong>max_connections</strong>, <strong>innodb_buffer_pool_size</strong>, <strong>seconds_behind_master</strong>, etc.</p>
<p><em>mycheckpoint</em> hardly cares about these columns. It identifies them dynamically. Have you just upgraded to MySQL <strong>5.5</strong>? Oh, there&#8217;s a new bunch of server and status variables? No problem, <em>mycheckpoint</em> will notice it doesn&#8217;t have the matching columns and will add them via ALTER TABLE. There you go, now we have a place to store them.</p>
<p>Running a formula like <strong>Threads_connected/max_connections*100</strong> is as easy as issuing the following query:</p>
<blockquote>
<pre>SELECT Threads_connected/max_connections*100 FROM status_variables WHERE id = ...</pre>
</blockquote>
<p>Hmmm. This means I can run this formula on the most recent row I&#8217;ve just added. But wait, this also means I can run this formula on <em>any</em> row I&#8217;ve ever gathered.<span></span></p>
<p>With <em>mycheckpoint</em> you can generate graphs <strong>retroactively</strong> using new formulas. The data is there, vanilla style. Any formula which can be calculated via SQL is good to go with. Plus, you get the benefit of cross referencing in fun ways: cross reference to the timestamp at which the sample was taken (so, for example, ignore the spikes generated at this and that timeframe due to maintenance. Don&#8217;t alert me on these), to system issues like load average or CPU usage (show me the average <strong>Seconds_behind_master</strong> when load average is over <strong>8</strong>, or the average load average when slow query rate is over some threshold. You don&#8217;t do that all the time, but when you need it, well, you can get all the insight you ever wanted.</p>
<p>Actually storing the monitored data in an easy to access format allows one to query, re-query, re-formulate. No worries about caching, you only sample once.</p>
<p>For completeness, all the above is relevant when the data is of numeric types. Other types are far more complicated to manage (the list of running queries is a common example).</p>
<p>Article source: <a href="http://code.openark.org/blog/mysql/mysql-monitoring-storing-not-caching">http://code.openark.org/blog/mysql/mysql-monitoring-storing-not-caching</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.freemysql.net/2012/02/22/mysql-monitoring-storing-not-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Caching for Monitoring: Timing is Everything</title>
		<link>http://www.freemysql.net/2012/02/21/caching-for-monitoring-timing-is-everything/</link>
		<comments>http://www.freemysql.net/2012/02/21/caching-for-monitoring-timing-is-everything/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 01:47:11 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[FreeMySQL]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.freemysql.net/2012/02/21/caching-for-monitoring-timing-is-everything/</guid>
		<description><![CDATA[I found Baron’s reasoning on why the Percona Nagios plugins do not use caching interesting. On the surface, the logic is sound – you do not want to cache when you want real-time monitoring. I have not yet had time to look at the Percona plugins for Nagios, though I do want to, because back [...]]]></description>
			<content:encoded><![CDATA[<p>I found Baron’s <a href="http://www.mysqlperformanceblog.com/2012/02/19/why-dont-our-new-nagios-plugins-use-caching/">reasoning on why the Percona Nagios plugins do not use caching</a> interesting. On the surface, the logic is sound – you do not want to cache when you want real-time monitoring.<br />
I have not yet had time to look at the Percona plugins for Nagios, though I do want to, because back at <a href="http://www.palominodb.com">PalominoDB</a> I helped write a <a href="http://palominodb.com/about-us/projects">Nagios plugin for MySQL</a> that allows you to do arbitrary calculations. By “arbitrary calculations” I mean you can have a calculation like “Threads_connected/max_connections*100″ and set a threshold of “80″. You can mix and match MySQL status variables and system variables, and use any perl functions as well, including basic arithmetic.<br />
We put a caching function in there, complete with examples. Why would we do that if caching is bad, as Baron says? Well, long-term caching is bad, but it is certainly acceptable to have caching with a threshold lower than the check interval. With the PalominoDB Nagios plugin for MySQL, you can have 10 different calculations, and set the cache threshold on a per-check basis – the examples use 60 seconds.<br />
If I have 10 calculations, I can set it so the checks do not re-connect to MySQL if there is a file that’s less than 60 seconds old. With checks that run every 5 minutes by default, it makes complete sense to cache the first run of SHOW STATUS/SHOW VARIABLES/SHOW PROCESSLIST, and the other 9 checks use the cache file – but only if it fresh within the past minute.<br />
It is quite likely that the Percona Nagios plugins for MySQL do not lend themselves to this type of caching. Because the PalominoDB Nagios plugin is so powerful, it makes sense to have this type of micro-caching. Otherwise, each additional monitoring check adds more strain on the database.</p>
<p><strong>Edited to add</strong>: I just took a look at the <a href="http://www.percona.com/doc/percona-monitoring-plugins/">Percona monitoring plugins for Nagios</a> and they check very, very different things. The level of customization is not as flexible as it is with the PalominoDB Nagios plugin, because it is checking very different things. The Percona monitoring plugins are a set of 12 different checks, as opposed to the 1 check that the PalominoDB plugin has. Still, I could see a value in caching the output of SHOW ENGINE INNODB STATUS (or whatever it uses) for the <a href="http://www.percona.com/doc/percona-monitoring-plugins/nagios/pmp-check-mysql-innodb.html">pmp-check-mysql-innodb</a> plugin, so you can run it three times &#8211; once with the idle_blocker_duration option, once with the waiter_count option, and once with the max_duration option, and it only runs the command needed once.</p>
<p>Basically it comes down to this: Baron is correct when he says &#8220;Running SHOW STATUS infrequently doesn’t add load to the server.&#8221; and I am correct when I say &#8220;Running SHOW STATUS frequently adds a lot of load to the server.&#8221; The Percona plugin and the PalominoDB plugin are completely different, and there seems to be very little overlap.</p>
<p>Article source: <a href="http://www.sheeri.com/content/caching-monitoring-timing-everything">http://www.sheeri.com/content/caching-monitoring-timing-everything</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.freemysql.net/2012/02/21/caching-for-monitoring-timing-is-everything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One billion</title>
		<link>http://www.freemysql.net/2012/02/21/one-billion/</link>
		<comments>http://www.freemysql.net/2012/02/21/one-billion/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 13:46:56 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[FreeMySQL]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.freemysql.net/2012/02/21/one-billion/</guid>
		<description><![CDATA[As always, I am a little late, but I want to jump on the bandwagon and mention the recent MySQL Cluster milestone of passing 1 billion queries per minute. Apart from echoing the arbitrarily large ransom demand of Dr Evil, what does this mean? Obviously 1 billion is only of interest to us humans as [...]]]></description>
			<content:encoded><![CDATA[<p>As always, I am a little late, but I want to jump on the bandwagon and mention the recent MySQL Cluster milestone of passing 1 <a href="http://mikaelronstrom.blogspot.com/2012/02/105bn-qpm-using-mysql-cluster-72.html">billion</a> queries per minute.  Apart from echoing the arbitrarily large ransom demand of Dr Evil, what does this mean?
<p>Obviously 1 billion is only of interest to us humans as we generally happen to have 10 fingers, and seem to name multiples in steps of 10^3 for some <a href="http://en.wikipedia.org/wiki/Short_scale">reason</a>. Each processor involved in this benchmark is clocked at several billion cycles per second, so a single billion is not so vast or fast.</p>
<p>Measuring over a minute also feels unnatural for a computer performance benchmark &#8211; we are used to lots of things happening every second!  A minute is a long time in silicon.</p>
<p>What&#8217;s more, these reads are served from tables stored entirely in memory &#8211; and everyone knows that main memory is infinitely fast and scalable and always getting cheaper, right?</p>
<p>If we convert to seconds we are left with only 17 million reads per second!  Hardly worth getting out of bed for?</p>
<p>On the contrary, I think that achieving 17 million independent random reads per second, each read returning 100 bytes across a network, from a database that also supports arbitrary SQL, row locking, transactions, high availability and all sorts of other stuff, is pretty cool.  I doubt that (m)any other similar databases can match this raw performance, though I look forward to being proved wrong.</p>
<p>(Also, don&#8217;t forget to meet + beat 1.9 million random updates/s, synchronously replicated)</p>
<p>Raw performance is good, but not everyone just needs horsepower.  The parallel, independent work on improving join performance (also known as SPJ/AQL) and query optimisation helps more applications harness this power, by improving the efficiency of joins. </p>
<p>I wrote a <a href="http://messagepassing.blogspot.com/2011/01/low-latency-distributed-parallel-joins.html">post</a> about SPJ/AQL at the start of last year, when it was still in the early stages.  Since then much has improved, to the extent that the performance improvement factors have become embarrassingly high on real user queries.  A further post on the technical details of SPJ/AQL is long overdue&#8230;  Perhaps the most interesting details are on the integration between the parallel, streaming linked operations and the essentially serialised MySQL <a href="http://en.wikipedia.org/wiki/Nested_loop_join">Nested Loops</a> join executor.  A linked scan and lookup operation can be considered to be a form of parallel <a href="http://en.wikipedia.org/wiki/Hash_join">hash join</a>, which the normal MySQL NLJ executor can invoke as part of executing a query.  Who says Nested Loop joins can&#8217;t scale?</p>
<p>Article source: <a href="http://messagepassing.blogspot.com/2012/02/one-billion.html">http://messagepassing.blogspot.com/2012/02/one-billion.html</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.freemysql.net/2012/02/21/one-billion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLyog Query Profiler re-invented.</title>
		<link>http://www.freemysql.net/2012/02/20/sqlyog-query-profiler-re-invented/</link>
		<comments>http://www.freemysql.net/2012/02/20/sqlyog-query-profiler-re-invented/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 01:45:39 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[FreeMySQL]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.freemysql.net/2012/02/20/sqlyog-query-profiler-re-invented/</guid>
		<description><![CDATA[Baron Schwartz from Percona has  just re-invented the SQLyog Query Profiler. Refer: http://www.mysqlperformanceblog.com/2012/02/20/how-to-convert-show-profiles-into-a-real-profile/ The SQLyog Query Profiler was introduced in SQLyog 8.o in February 2009 – exactly 3 years ago. The funny thing is actually that Baron Schwartz reviewed it before release (at friendly commercial terms) at the time. The SUM-aggregation and the ORDERING that [...]]]></description>
			<content:encoded><![CDATA[
<p>Baron Schwartz from Percona has  just re-invented the SQLyog Query Profiler.<br />
Refer: <a href="http://www.mysqlperformanceblog.com/2012/02/20/how-to-convert-show-profiles-into-a-real-profile/">http://www.mysqlperformanceblog.com/2012/02/20/how-to-convert-show-profiles-into-a-real-profile/</a></p>
<p>The SQLyog Query Profiler was introduced in SQLyog 8.o in February 2009 – exactly 3 years ago. The funny thing is actually that Baron Schwartz reviewed it before release (at friendly commercial terms) at the time. The SUM-aggregation and the ORDERING that we did (and it was solely our decision – not Baron’s advice) in SQLyog 8.0 to the result from SELECT FROM I_S.PROFILES is the same as Baron now announces as “something I developed”.</p>
<p>Well ..</p>
<p>1) First let me make it clear that I am not complaing.  I believe Baron when he tells that he does not remember details of the SQLyog Query Profiler today. When I use the term <strong><em>funny</em></strong> above I mean it. Baron is welcome to re-use it even if he forgot and had to re-invent it (and also we re-use his ‘Change Of STATUS VARIABLES Due To Execution Of Query’ profiling concept from the original Maatkit release as well).</p>
<p>2) But <strong><em>*developed*</em></strong> is a pretty strong term to use for a rather trivial query (just a SELECT .. SUM() ..  GROUP BY .. ORDER BY .. basically), I think.  Just like there are only 12 notes in (western) music and it is difficult to write music that does not resemble previous music somehow, it is also difficult to write queries that do not resemble previous queries (I know chess-players would disagree – with 64 squares and 32 pieces  possibilities seem infinite – but maybe the rules of chess allow for more creative combinations than the rules of SQL? I belive so.  It probably also applies to music – but not to SQL IMHO   ).</p>
<p>Happy PROFILING (with any tool you choose)! And Chess-playing as well!</p>
<p><!-- Facebook Like Button v1.9.6 BEGIN [http://blog.bottomlessinc.com] --></p>
<p><!-- Facebook Like Button END --></p>
<p>&lt;!&#8211;<br />
		digg_url = &#8216;http://www.webyog.com/blog/2012/02/20/sqlyog-query-profiler-re-invented/&#8217;;<br />
		digg_bgcolor = &#8216;#ff9900&#8242;;<br />
		digg_skin = &#8216;compact&#8217;;<br />
		digg_window = &#8216;new&#8217;;</p>
<p>	&#8211;&gt;</p>
<p class="comments_link">
      <a href="http://www.webyog.com/blog/2012/02/20/sqlyog-query-profiler-re-invented/#respond" title="Comment on SQLyog Query Profiler re-invented."> Comments(0)</a>
    </p>
<p>Article source: <a href="http://www.webyog.com/blog/2012/02/20/sqlyog-query-profiler-re-invented/">http://www.webyog.com/blog/2012/02/20/sqlyog-query-profiler-re-invented/</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.freemysql.net/2012/02/20/sqlyog-query-profiler-re-invented/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Releases MySQL Cluster 7.2</title>
		<link>http://www.freemysql.net/2012/02/20/oracle-releases-mysql-cluster-7-2/</link>
		<comments>http://www.freemysql.net/2012/02/20/oracle-releases-mysql-cluster-7-2/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 13:45:20 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[FreeMySQL]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.freemysql.net/2012/02/20/oracle-releases-mysql-cluster-7-2/</guid>
		<description><![CDATA[Customers seeking flexibility get that and more with MySQL Cluster 7.2, as its new Memcached API offers both SQL and NoSQL access.  This gives customers the “best of both worlds,” so to speak, allowing them to conveniently execute key value operations and complex queries all from the same database.  Scalability has been enhanced in various [...]]]></description>
			<content:encoded><![CDATA[<p>Customers seeking flexibility get that and more with MySQL Cluster 7.2, as its new Memcached API offers both SQL and NoSQL access.  This gives customers the “best of both worlds,” so to speak, allowing them to conveniently execute key value operations and complex queries all from the same database.  </p>
<p>Scalability has been enhanced in various ways, beginning with enhanced active/active replication that makes it easier for developers to detect and resolve conflicts across multiple clusters and eliminates the need for timestamp columns in applications.  MySQL Cluster 7.2’s multi-site clusters allow for the existence of individual data notes in different data centers with the automatic sharding of databases between them.  Additionally, data consistency and integrity among sites is maintained with quick automated failover and recovery via synchronous replication.</p>
<p>MySQL Cluster’s performance has become even better in version 7.2.  The product promises up to 70x higher performance when executing complex queries thanks to adaptive query localization.  This breakthrough allows more applications to leverage the power of real-time analytics across live data sets as well as other features offered under MySQL Cluster’s umbrella. </p>
<p>While previous versions of MySQL Cluster have been deemed user-friendly, version 7.2 takes things one step further by implemented shared user privilege tables.  These tables consolidated previously distributed tables into the data nodes to allow access from all MySQL servers, making life easier for administrators.  No longer do they need to define and maintain privileges on separate SQL nodes accessing the cluster.</p>
<p>The final improvement featured in MySQL Cluster 7.2 that’s worth mentioning is Oracle VM certification, which makes it an appealing choice for customers seeking a cloud deployment solution for communications and web applications.  The inclusion of Oracle VM certification adds to pre-existing MySQL Cluster certifications with Oracle Linux and Oracle Solaris.</p>
<p>Beyond the release of MySQL Cluster 7.2, Oracle also announced the availability of MySQL Cluster Manager 1.1.4.  Just as with MySQL Cluster 7.2, the latest release of Cluster Manager has been enhanced to make using and administering MySQL Cluster easier.  </p>
<p>Tomas Ulin, Oracle’s VP of MySQL engineering, commented on the latest release: “MySQL Cluster 7.2 demonstrates Oracle&#8217;s investment in further strengthening MySQL&#8217;s position as the leading Web database.  The performance and flexibility enhancements in MySQL Cluster 7.2 provide users with a solid foundation for their mission-critical Web workloads, blending the best of SQL and NoSQL technologies to reduce risk, cost and complexity.”</p>
<p>For more on this topic, visit <a rel="nofollow" href="http://www.marketwatch.com/story/oracle-announces-general-availability-of-mysql-cluster-72-2012-02-15">http://www.marketwatch.com/story/oracle-announces-general-availability-of-mysql-cluster-72-2012-02-15</a></p>
<p />
<p><img src="http://www.freemysql.net/wp-content/plugins/rss-poster/cache/76d69_spacer.gif" /><br />Please enable JavaScript to view the <a rel="external" href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a><a rel="external" href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a><br class="clearfix" /></p>
<p>Article source: <a href="http://www.devshed.com/c/a/MySQL/Oracle-Releases-MySQL-Cluster-72-69648/">http://www.devshed.com/c/a/MySQL/Oracle-Releases-MySQL-Cluster-72-69648/</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.freemysql.net/2012/02/20/oracle-releases-mysql-cluster-7-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Meetups in North Carolina this week</title>
		<link>http://www.freemysql.net/2012/02/20/mysql-meetups-in-north-carolina-this-week/</link>
		<comments>http://www.freemysql.net/2012/02/20/mysql-meetups-in-north-carolina-this-week/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 13:45:18 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[FreeMySQL]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.freemysql.net/2012/02/20/mysql-meetups-in-north-carolina-this-week/</guid>
		<description><![CDATA[Percona is the oldest and largest independent MySQL support and consulting company, with a global 24×7 staff of over 50 people serving more than 1000 customers in 50+ countries since 2006. We offer consulting, training, support, and custom development services. We also create Percona Server, XtraDB and XtraBackup. Article source: http://www.mysqlperformanceblog.com/2012/02/20/mysql-meetups-in-north-carolina-this-week/]]></description>
			<content:encoded><![CDATA[<p>Percona is the oldest and largest independent MySQL support and consulting company, with a global 24×7 staff of over 50 people serving more than 1000 customers in 50+ countries since 2006.</p>
<p>We offer <a href="http://www.percona.com/mysql-consulting/" title="Percona Consulting for MySQL">consulting</a>, <a href="http://www.percona.com/training/" title="MySQL Training from Percona">training</a>, <a href="http://www.percona.com/mysql-support/" title="Percona offers enterprise-grade MySQL support">support</a>, and <a href="http://www.percona.com/development/mysql/" title="Percona's developers can create custom MySQL development">custom development</a> services.</p>
<p>We also create <a href="http://www.percona.com/software/percona-server/" title="An enhaced version of MySQL">Percona Server</a>, <a href="http://www.percona.com/software/percona-xtradb/" title="Percona's fork of InnoDB">XtraDB</a> and <a href="http://www.percona.com/software/percona-xtrabackup/" title="Hot InnoDB Backups">XtraBackup</a>.</p>
<p>Article source: <a href="http://www.mysqlperformanceblog.com/2012/02/20/mysql-meetups-in-north-carolina-this-week/">http://www.mysqlperformanceblog.com/2012/02/20/mysql-meetups-in-north-carolina-this-week/</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.freemysql.net/2012/02/20/mysql-meetups-in-north-carolina-this-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why don’t our new Nagios plugins use caching?</title>
		<link>http://www.freemysql.net/2012/02/19/why-dont-our-new-nagios-plugins-use-caching/</link>
		<comments>http://www.freemysql.net/2012/02/19/why-dont-our-new-nagios-plugins-use-caching/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 01:43:44 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[FreeMySQL]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.freemysql.net/2012/02/19/why-dont-our-new-nagios-plugins-use-caching/</guid>
		<description><![CDATA[In response to the release of our new MySQL monitoring plugins on Friday, one commenter asked why the new Nagios plugins don’t use caching. It’s worth answering in a post rather than a comment, because there is an important principle that needs to be understood to monitor servers correctly. But first, some history. When I [...]]]></description>
			<content:encoded><![CDATA[<p>In response to the release of our new <a href="http://www.mysqlperformanceblog.com/2012/02/17/announcing-mysql-monitoring-plugins-from-percona/">MySQL monitoring plugins</a> on Friday, one commenter asked why the new Nagios plugins don’t use caching. It’s worth answering in a post rather than a comment, because there is an important principle that needs to be understood to monitor servers correctly. But first, some history.</p>
<p>When I wrote a set of high-quality Cacti templates for MySQL a few years ago (which are now replaced by the new project), making the Cacti templates use caching was important for two reasons:</p>
<ol>
<li><strong>Performance</strong>. Cacti runs some of its polling processes serially, so if each graph has to reach out to the MySQL server and retrieve a bunch of data, the polling can take too long. I’ve seen cases where a Cacti server that’s graphing too many MySQL servers doesn’t finish the current iteration before the next one starts.  Making sure the data isn’t retrieved from MySQL repeatedly cuts a lot of latency out of the process.  In fact, I went further than that; I didn’t cache the data retrieved from MySQL, I cached the resulting metrics. This avoids having to do InnoDB parsing repeatedly, too. With this approach, Cacti is capable of monitoring many more servers.</li>
<li><strong>Consistency</strong>. Graphs are supposed to be generated at a single instant in time, but as I just said, they actually aren’t.  Graphs that show slightly different data, or greatly different data in some cases I observed, are frustrating at best and wrong or misleading at worst. When you’re using these graphs for forensic or diagnostic purposes, this is very bad. Caching the results from the first call and reusing it for all subsequent polls avoids this problem. All of the graphs are generated from one and only one set of data retrieved from MySQL.</li>
</ol>
<p>It’s worth noting that Cacti doesn’t do this itself, which I consider to be a Cacti design shortcoming. I did not like writing my own cache management code. Handling cached data correctly is one of the two hard things in programming (choosing proper variable names is the other one, of course).</p>
<p>Now, somewhere along the line “you should cache when you are monitoring a system for failures” became a tacit best practice. I don’t know why, but I can speculate that there might have been a misunderstanding — perhaps caching was understood to reduce load on MySQL, rather than reducing load on the Cacti server and speeding up the poller.</p>
<p><strong>This is a very bad idea! I do NOT advocate caching for Nagios checks.</strong> Why?  Exactly the inverse of the two reasons that graphing should be cached!</p>
<ol>
<li><strong>Performance doesn’t matter.</strong> First, most Nagios checks are run once every five minutes, or once a minute at most.  Running SHOW STATUS infrequently doesn’t add load to the server. Most real production installations I see actually have multiple people running innotop or what have you, once a second!  Second, if your monitoring is to be at all useful, you should not monitor too many things inside of MySQL. If you take the typical mass-market monitoring program’s silly “alert on 99 different kinds of cache hit ratio thresholds” approach, you’ll soon have sysadmins with /dev/null email filters, which will make your monitoring system utterly useless. However, even if you have multiple checks running once a minute, it’s still a trivial amount of load.</li>
<li><strong>Consistency is just another word for staleness.</strong> Great, your monitoring system thinks that the server is fine, based on a three-minute-old file — what good is that? You should be monitoring the <em>server</em>, as of NOW, rather than monitoring the <em>contents of some file</em> as of several minutes ago.</li>
</ol>
<p>In conclusion, you should cache for historical metrics monitoring, but not for fault detection monitoring. That’s why the new Nagios plugins don’t have any caching functionality.</p>
<p>Article source: <a href="http://www.mysqlperformanceblog.com/2012/02/19/why-dont-our-new-nagios-plugins-use-caching/">http://www.mysqlperformanceblog.com/2012/02/19/why-dont-our-new-nagios-plugins-use-caching/</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.freemysql.net/2012/02/19/why-dont-our-new-nagios-plugins-use-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FromDual.en: Codership partners with FromDual to offer consulting and support services for Galera Cluster for MySQL</title>
		<link>http://www.freemysql.net/2012/02/19/fromdual-en-codership-partners-with-fromdual-to-offer-consulting-and-support-services-for-galera-cluster-for-mysql/</link>
		<comments>http://www.freemysql.net/2012/02/19/fromdual-en-codership-partners-with-fromdual-to-offer-consulting-and-support-services-for-galera-cluster-for-mysql/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 13:42:55 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[FreeMySQL]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.freemysql.net/2012/02/19/fromdual-en-codership-partners-with-fromdual-to-offer-consulting-and-support-services-for-galera-cluster-for-mysql/</guid>
		<description><![CDATA[Helsinki, Finland, Uster, Switzerland – February 18, 2012 – Codership, the provider of Galera Cluster for MySQL, and FromDual, a MySQL consulting company, today announced collaboration to offer Galera Cluster technology and related support and consulting services for Galera users all over the world, especially in German speaking countries Germany, Austria and Switzerland (DACH). Galera [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Helsinki, Finland, Uster, Switzerland – February 18, 2012</strong> – Codership, the provider of Galera Cluster for MySQL, and FromDual, a MySQL consulting company, today announced collaboration to offer Galera Cluster technology and related support and consulting services for Galera users all over the world, especially in German speaking countries Germany, Austria and Switzerland (DACH). Galera Cluster is a synchronous, true multi-master replication cluster for MySQL using the well known InnoDB storage engine. Customers can deploy Galera Cluster locally in LAN environments, as geo-clusters over the WAN or as virtual cluster in the cloud.</p>
<p>Galera Cluster for MySQL is offered as open source software. It can be downloaded freely from <a href="http://www.codership.com" target="_blank">www.codership.com</a>. Many of Codership customers are using Galera Cluster for business critical applications. FromDual  will be  offering consulting and support services for Galera users, especially in German speaking countries. ”FromDual has years of competence in MySQL consulting and support. They have a deep understanding of clustering and replication technologies and how to implement them into production. FromDual is the perfect partner for Codership” said Seppo Jaakola, CEO of Codership.</p>
<p>&#8220;With Galera we get a great high availability (HA) product for MySQL which removes all the pain we had with the existing MySQL HA solutions. Our customers are always looking for better ways to solve MySQL replication, scalability and management issues to secure 24/7 business availability and growth for the future business. Galera Cluster does exactly that. We are happy to add Galera Cluster to our consulting  and support portfolio with the top level support from Codership&#8221; says Oli Sennhauser, Senior MySQL consultant and CEO of FromDual.</p>
<p>Galera Cluster is used by users who need highly available MySQL database back-ends with very fast fail-over time for business critical applications like Social networks, Gaming platforms, Telecom/VoiP solutions, Media and entertainment sites, Business Software as a Service (SaaS), Platform as a Service (PaaS), ERP systems, web-shops, e-commerce solutions or similar critical applications.</p>
<h2>About FromDual GmbH</h2>
<p>FromDual is a global acting, neutral and vendor independent consulting, support and training company for MySQL, Percona Server, MariaDB and Galera Cluster with numerous customers all over the world in the Telecom, Media, Public Service, Internet and Industry sector. FromDual is Oracle Silver Partner and Open Database Alliance (ODBA) Silver Partner. In addition to its MySQL services FromDual distributes its Performance Monitor for MySQL for local installations or as Software as a Service solution. For more information about FromDual, their products, consulting and support services, please visit www.fromdual.com.</p>
<p><strong>Press contact:</strong></p>
<p>FromDual GmbH<br />
Oli Sennhauser, CEO<br />
E-Mail: oli.sennhauser@fromdual.com<br />
Cell: +41 79 830 09 33</p>
<h2>About Codership Oy</h2>
<p>Codership develops fundamentally new replication and clustering solutions for open source databases, adopting novel ideas from latest DBMS and distributed computing research. The founders of Codership have long experience in developing several widely used MySQL clustering solutions before starting Galera development in 2007. Already thousands of users have chosen Galera Cluster solution – the Codership&#8217;s flagship open source product and Codership is working actively for and with this growing user community. For more information about Codership, products, consulting and support services, please visit <a href="http://www.codership.com/" target="_blank">www.codership.com</a>.</p>
<p><strong>Press contact:</strong></p>
<p>Codership OY<br />
Seppo Jaakola, CEO<br />
E-Mail: seppo.jaakola@codership.com<br />
Cell: +358 405 105 938</p>
<p>Article source: <a href="http://www.fromdual.com/codership-partners-with-fromdual">http://www.fromdual.com/codership-partners-with-fromdual</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.freemysql.net/2012/02/19/fromdual-en-codership-partners-with-fromdual-to-offer-consulting-and-support-services-for-galera-cluster-for-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NoSQL performance numbers</title>
		<link>http://www.freemysql.net/2012/02/18/nosql-performance-numbers/</link>
		<comments>http://www.freemysql.net/2012/02/18/nosql-performance-numbers/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 01:42:44 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[FreeMySQL]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.freemysql.net/2012/02/18/nosql-performance-numbers/</guid>
		<description><![CDATA[Links to performance numbers posted wrt various NoSQL solutions: A top 20 global website announced they have migrated from MySQL to Redis. There will be a keynote and everything. It doesn&#8217;t say how big the Redis Cluster is, but they serve 100M pages / day, and clock 300k Redis queries / second.https://groups.google.com/forum/?fromgroups#!topic/redis-db/d4QcWV0p-YM Btw, they mention [...]]]></description>
			<content:encoded><![CDATA[<p>Links to performance numbers posted wrt various NoSQL solutions:</p>
<p>A top 20 global website announced they have migrated from MySQL to Redis. There will be a keynote and everything. It doesn&#8217;t say how big the Redis Cluster is, but they serve 100M pages / day, and clock 300k Redis queries / second.<br /><a href="https://groups.google.com/forum/?fromgroups#!topic/redis-db/d4QcWV0p-YM">https://groups.google.com/forum/?fromgroups#!topic/redis-db/d4QcWV0p-YM</a></p>
<p>Btw, they mention that MySQL remains as the master data store from which the Redis indexes are generated.<br />
(The reason I don&#8217;t mention the name of this Redis user is simply I feat my mom is sometimes reading my blog&#8230;)</p>
<p>This is an oldie, but already 2 years ago DeNA posted a benchmark doing 750k MySQL queries / second on only a single server. This was with HandlerSocket, the first widely used NoSQL API for InnoDB based MySQL databases.<br /><a href="http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-story-for.html" title="http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-story-for.html">http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-stor&#8230;</a></p>
<p>Last week MySQL Cluster team announced a new version. (congratulations, fellows!) The hardware in this benchmark is quite beefy: 8 modern servers with Infiniband as the interconnect. Even so the results, again using the NDB NoSQL API, are impressive: 1 billion queries per minute, or 17 million per second.<br /><a href="http://mikaelronstrom.blogspot.com/2012/02/105bn-qpm-using-mysql-cluster-72.html" title="http://mikaelronstrom.blogspot.com/2012/02/105bn-qpm-using-mysql-cluster-72.html">http://mikaelronstrom.blogspot.com/2012/02/105bn-qpm-using-mysql-cluster&#8230;</a></p>
<p>It should be mentioned the above is not an apples to oranges comparison. The Redis numbers are from a production installation and not a benchmark. Obviously you wouldn&#8217;t want to max out your performance in production. Quite the contrary: for HA purposes you want to make sure to run at most at 50% your capacity. So if we take this 50% limit into account, then MySQL Cluster can only do a measly 8 million queries per second <img src='http://www.freemysql.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>PS: I&#8217;ve seen the Austin Powers movies, twice, yet I can&#8217;t understand the joke in <a href="http://jonasoreland.blogspot.com/2012/02/austin-powers.html">Jonas</a> blog. This can only mean one thing: I have to watch them again now!</p>
<p>Article source: <a href="http://openlife.cc/blogs/2012/february/nosql-performance-numbers-mysql-and-redis">http://openlife.cc/blogs/2012/february/nosql-performance-numbers-mysql-and-redis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.freemysql.net/2012/02/18/nosql-performance-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A year with Drizzle</title>
		<link>http://www.freemysql.net/2012/02/18/a-year-with-drizzle/</link>
		<comments>http://www.freemysql.net/2012/02/18/a-year-with-drizzle/#comments</comments>
		<pubDate>Sat, 18 Feb 2012 13:40:21 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[FreeMySQL]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.freemysql.net/2012/02/18/a-year-with-drizzle/</guid>
		<description><![CDATA[Today I&#8217;m coming out of the closet. Since I&#8217;m a professional database expert I try to be like the mainstream and use the commercial MySQL forks (including MySQL itself). But I think those close to me have already known for some time that I like community based open source projects. I cannot deny it any [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;m coming out of the closet. Since I&#8217;m a professional database expert I try to be like the mainstream and use the commercial MySQL forks (including MySQL itself). But I think those close to me have already known for some time that I like community based open source projects. I cannot deny it any longer, so let me just say it: I&#8217;m a Drizzle contributor and I&#8217;m very much engaged!</p>
<p>I&#8217;ve been eyeing the Drizzle project since it started in 2008. Already then there were dozens of MySQL hackers for which this project was a refuge they instantly flocked to. Finally a real open source project based on MySQL code that they could contribute to, and they did. It was like a breath of fresh air in a culture that previously had only accepted one kind of relationships: that between an employer and an employee. Drizzle was more liberal. It accepted also forms of engagement already common in most other open source projects that are based on relationships between 2 or more consenting contributors.</p>
<p>But in 2008 I wasn&#8217;t yet ready to engage with Drizzle. Like I said, I worked in a role where I would go to database users and help them use MySQL in demanding production settings. So as much as I admired Drizzle already back then, I needed something that could give me good releases, and support me when needed.</p>
<p>So I stuck with my MySQL relationship &#8211; I was employed with MySQL. But eventually our paths separated, as they say, and I then became employed with another MySQL fork, MariaDB instead. I tried to give it my best, but also MariaDB couldn&#8217;t satisfy what I really needed. Eventually I left also MariaDB.</p>
<p>With two failed relationships behind me, I tried to be single and free for a while. Solo hacking. Based on what I learned from the MariaDB team I even published my own MySQL builds. You might remember exactly a year ago I blogged a lot about what I called <a href="http://mepsql.org/">MepSQL</a>. It was quite interesting and I became quite good at building MySQL packages &#8211; you could use the MepSQL build tools to easily package any of the forks: MySQL vanilla, Percona, MariaDB and the Facebook branch. You could perhaps call it a meta-fork: I tried to provide technology to unite the fractured forks in the MySQL community.</p>
<p>My plan was to use this as a platform to showcase more of the community action out there in the MySQL ecosystem: patches and enhancements not yet available to users in any of the commercial forks (MySQL itself, Percona, MariaDB). There are lots of them, but just to mention 2 that go mostly unnoticed but are really great: The <a href="http://karlssonondatabases.blogspot.com/2010/11/monitoring-mysql-sql-statement-way-it.html">sqlstats plugin by Anders Karlsson</a> (this is like pt-query-digest but inside MySQL, without logging overhead) and <a href="http://code.google.com/p/row-cache-for-innodb/">InnoDB row cache by Wen Tong of Taobao</a>.</p>
<p>I suppose in hindsight it is clear that even if it was a solo project, I was showing clear signs of being at least community-curious, if not more. Indeed, it is my firm belief that the community as a whole will always produce more great code than any single commercial vendor can handle.</p>
<p>And then it happened. Drizzle announced their first stable version. I decided I should have a look at it to see what it&#8217;s like. I didn&#8217;t official abandon MepSQL or any of the other forks, but I lay low with MepSQL and stopped blogging about it. It seemed best to give Drizzle a chance, even if I didn&#8217;t commit to it in any way.</p>
<p>I went to last year&#8217;s Drizzle Day that took place after the MySQL user conference. (<a href="http://www.drizzle.org/content/drizzle-day-fri-13-apr-2012-santa-clara">There is one again this year</a>.) There were many other like minded people, everyone was very friendly and welcoming. They even wanted me <a href="http://openlife.cc/system/files/How%20to%20make%20MySQL%20or%20Drizzle%20cool%20again.pdf">to do a talk</a> about trends in the MySQL world. When talking about JSON I decided to tease Stewart a little and said that &#8220;Stewart could probably do this in a day&#8221; and you know what, <a href="http://www.flamingspork.com/blog/2011/04/21/http-json-alsosql-interface-to-drizzle/">that&#8217;s exactly what he did</a> a week later.</p>
<p>I also pointed out that many community projects choose to make their status legally recognized by joining some non-profit foundation that provides accounting and legal services to them. The Drizzle boys said they hadn&#8217;t done that because they just wanted to keep a low profile and enjoy hacking together. But once they realized that these umbrella organizations like <a href="http://spi-inc.org/projects/drizzle/">Software in the Public Interest</a> are really easy to join and not a lot of paperwork, they thought it was a good idea. They asked me if I wanted to make it happen. It felt good &#8211; it was my first thing I would do for the Drizzle project. </p>
<p>By making the project&#8217;s non-profit status official Drizzle immediately got a lot of goodwill from other open source community projects. In fact, the ceremony of applying for SPI membership was officiated by Josh Berkus, well known for his contributions in another open source database community called PostgreSQL, but also a Drizzle contributor.</p>
<p>After we had joined the SPI I thought I could probably contribute best in non-technical ways, such as PR. A year ago the Drizzle website was&#8230; I suppose &#8220;simple&#8221; is a polite way of putting it. Actually, it didn&#8217;t look that bad, but it was really just one page. There was some talk about the need for something fancier. Brian decreed that the website needs to be either static html files or use a SaaS solution &#8211; we were not going to use a lot of effort maintaining our own web server stack. I offered to help in creating the new website. We fooled around with Google Apps for a few days and got nowhere. There was no support for CSS and a weird scripting language that wasn&#8217;t JavaScript &#8211; we just didn&#8217;t get it. Being a long time Drupal user and contributor, I knew I could make a kickass website in no time using that. To obey Brian&#8217;s orders I signed up for the free account at <a href="http://www.drupalgardens.com/">Drupal Gardens</a> which is an amazing Drupal service. The wizards and templates that you use to get started literally save you at least 2-4 days of work compared to setting up your own Drupal. But it is also flexible, allowing you to add your own CSS either by point and click or hand coding.</p>
<p>Being a non-profit community project again payed off. When the site was done, it turned out we couldn&#8217;t actually point our domain &#8220;drizzle.org&#8221; to it. This was a feature of the paid tiers. At OSCON I talked to Angela Byron, known as webchick in Drupal circles, and she arranged us to get an upgrade for free. It again felt good to get this kind of help from another open source community. And I should say, big thanks to Acquia, the company behind Drupal Gardens for sponsoring Drizzle in this way.</p>
<p>I have to say I&#8217;m pretty satisfied with <a href="http://www.drizzle.org/">the new website</a>. I&#8217;m not a graphics designer, but have some basic training from a few university courses. Using the Drupal Gardens templates really helped though, I couldn&#8217;t have done it without them.</p>
<p>For reasons I will mention below, I felt there was nothing to do PR-wise and I was mainly blocked by waiting for others. I decided to become a Drizzle hacker, you know, just as a way to have fun while waiting. I asked Roland Bouman what would be to JSON what XPath is to XML. He suggested to just embed a JavaScript engine into Drizzle so that people could parse and do whatever they wanted with JSON documents. <a href="http://docs.drizzle.org/plugins/js/index.html">So I created a Drizzle plugin that does that.</a> It is in the 7.1 RC if you want to play with it.</p>
<p>It should be emphasized that I never really did anything of even this complexity in C++ before. I mean Symbian code yes, but you wouldn&#8217;t recognize it as C++ before someone tells you that&#8217;s what it is. Even then I didn&#8217;t actually code much Symbian either. My point is, it is true what they say: Drizzle code has really been refactored into a clean and modular code base. Writing a plugin is dead simple. It&#8217;s great that even a novice like me can approach a complex project like a relational database server and produce a useful, non-trivial feature just in a couple of weeks! This was great validation for me that it is true what they say about Drizzle &#8211; the years of refactoring work has really paid of and it is a pleasant project to start hacking on: both socially and from a code perspective.</p>
<p>After success with my first plugin, I went on to extend the JSON HTTP API that Stewart had created. Stewart&#8217;s version 0.1 uses JSON over HTTP, but the payload is still a good old SQL query. I&#8217;ve worked on <a href="https://code.launchpad.net/~hingo/drizzle/drizzle-json_server-keyvalue">a drizzle branch</a> that provides a second api that is true JSON key value queries, similar to Couchbase or MQL. The evhttp library we used didn&#8217;t support HTTP DELETE, so I had to stop until I upgraded my Kubuntu version to one that comes with evhttp2. I now have done that, and after DELETE and a way to create a table is implemented, I will blog about this interesting project too. With the rise of both client side and server side JavaScript I really think this could be an interesting API for Drizzle.</p>
<p>If you read Stewarts blog post carefully &#8211; or just read the comments where I point this out &#8211; you&#8217;ll notice there is a bug: Every result set has an empty row at the end. This is not a bug in Stewart&#8217;s json_server, rather in the Drizzle Execute API. I traced the function calls made when you use this API and fixed the off by one error. I had become a committer to Drizzle core code.</p>
<p>The Drizzle 7 release of last year has, imho, proven quite stable. I mean, of course it had bugs, but compared to some historical MySQL releases I&#8217;d say it is good quality software. Unfortunately it was not a very polished piece of software. You know, it was something a Steve Wozniak would create, but not something Steve Jobs would approve of. In particular, while there was a manual, and it had parts that were quite good (SQL and core functions are actually documented), it wasn&#8217;t really useful to get Drizzle up and running. Most plugins weren&#8217;t even mentioned in the documentation. </p>
<p>Another problem was that the people that used to build RPM and DEB packages became busy with new day jobs and the 7.1 series deteriorated into just source releases.</p>
<p>This was the reason I stopped doing PR tasks in the Autumn. It seemed pointless to evangelize a website when people would not find any packages to download on said website if they actually went there. Altough it must be said Drizzle is much easier to compile from source than my experience with MySQL was. Especially after I updated the README file to reflect reality. Anyway, I swore I will not post a single blog about Drizzle until there are binary packages available again. I shouldn&#8217;t have done that&#8230;</p>
<p>The first problem <a href="http://hackdrizzle.com/encore-what-drizzle-needs/">has been vigorously attacked by Daniel Nichter</a> with myself and a few others helping. I&#8217;d say the current manual is something we don&#8217;t have to be ashamed of anymore. Btw, I have really enjoyed working with you Daniel. Your focus on the end user experience is exactly what Drizzle needs just now, and without you being there I might have lost hope along the way. You are the Steve Jobs of Drizzle, except you are a much nicer person than he was <img src='http://www.freemysql.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>While there has been some personnel turnover for sure, another thing that has continued to work great is the build and continuous integration process. Mark Atwood is there almost every night (well, it&#8217;s night in Europe) and tirelessly merging patches, and giving feedback on those that don&#8217;t pass the test suite. Even if some of the core devs have either completely gone or are very passive, it is Mark&#8217;s work that really keeps the pulse going. And for all the talk of Rackspace pulling out as a sponsor, there&#8217;s still someone submitting patches because there&#8217;s a queue building every week. So Drizzle is doing fine, but it is much thanks to Mark who keeps the engine running.</p>
<p>The third thing I think is really great is the Google Summer of Code students. Drizzle has attended and been really successful with this Google program each year, with a high percentage of successfully completed projects. Last Summer 3 students completed their projects successfully, and they are all still active in various ways with the project. VJ Samuel has even become the release manager for the release candidates! I already look forward to next Summer so I can be part of GSoC too.</p>
<p>The thing that wasn&#8217;t so great was&#8230; have you paid attention what is still missing? The packages. Nobody was doing them. I should&#8217;ve realized this earlier. In an open source project, if there is something that needs to be done, you look around and nobody is doing it, it means you have to do it. Even if somebody promises to do something, you look around and don&#8217;t see any code actually appearing on launchpad, it means you have to do it.</p>
<p>A thing in the same category was the version number. Drizzle had initially wanted to adopt the Ubuntu release system. But somewhere along the line it just became a datestamp that was really difficult to understand. You needed secret knowledge to know that 2011.03.13 and 2011.11.29 are not the same major version while 2011.11.29 and 2012.01.30 are the same version. Not something Steve Jobs would approve of.</p>
<p>So I submitted a patch that changed the whole build system to produce versions that look like 7.1.31-rc instead. I was a bit nervous of this one. It felt great when my plugins where swiftly approved and merged, and that&#8217;s exactly the point with making open source projects modular so you can be very inclusive of new contributors. But here I was touching the very heart of everything. Much to my delight, this code was approved of and after fixing some test failures we finally managed to merge the code and release the first RC with a human readable version number. It even says &#8220;-rc&#8221; now so you know what it is!</p>
<p>Acceptance of my proposal again grew my faith in the relationship I have with Drizzle. I feel like sometimes we don&#8217;t talk enough in the Drizzle project, because the other guys often are busy at work and don&#8217;t have time for my emails. It felt good to know they understand what is important to me and approved of it.</p>
<p>Unfortunately the change in version numbers along with some other last minute changes meant that my work on DEB and RPM packaging was obsolete and couldn&#8217;t be merged into the RC as I had hoped. I have now pushed a branch that does the DEBs correctly again, but need to also update the RPMs. </p>
<p>Then Drizzle will have binary packages for the 7.1 series and I can break my silence and blog about it again. Oops, guess I already did <img src='http://www.freemysql.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Yeah, it&#8217;s been a pretty great year!</p>
<p>If you are one of those brave souls that are not afraid to compile Drizzle from source, <a href="https://launchpad.net/drizzle/+download">the brand new release candidate can be downloaded here.</a></p>
<p>Article source: <a href="http://openlife.cc/blogs/2012/february/year-drizzle">http://openlife.cc/blogs/2012/february/year-drizzle</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.freemysql.net/2012/02/18/a-year-with-drizzle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

