<?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>Grep My Mind &#187; mysql</title>
	<atom:link href="http://www.grepmymind.com/tags/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.grepmymind.com</link>
	<description>Wonder what’s on my mind? Now you know.</description>
	<lastBuildDate>Thu, 11 Jun 2009 20:00:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>How FriendFeed uses MySQL to store schema-less data &#8211; SF MySQL Meetup April 6th, 2009</title>
		<link>http://www.grepmymind.com/2009/03/28/how-friendfeed-uses-mysql-to-store-schema-less-data-sf-mysql-meetup-april-6th-2009/</link>
		<comments>http://www.grepmymind.com/2009/03/28/how-friendfeed-uses-mysql-to-store-schema-less-data-sf-mysql-meetup-april-6th-2009/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 20:40:29 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Bret Taylor]]></category>
		<category><![CDATA[FriendFeed]]></category>
		<category><![CDATA[SF MySQL Meetup]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/?p=326</guid>
		<description><![CDATA[When: 6:30pm Monday April 6th, 2009 Where: CBS Interactive &#8211; 235 2nd Street San Francisco, CA RSVP: How FriendFeed uses MySQL to store schema-less data Join the SF MySQL Meetup for our April meetup where Bret Taylor from FriendFeed talks about how they store their data in a &#34;schema-less&#34; system on top of MySQL. FriendFeed [...]]]></description>
			<content:encoded><![CDATA[<p>When: 6:30pm Monday April 6th, 2009<br />
Where: CBS Interactive &#8211; 235 2nd Street San Francisco, CA<br />
RSVP: <a href="http://mysql.meetup.com/30/calendar/9862949/">How FriendFeed uses MySQL to store schema-less data</a></p>
<hr />
<p>Join the <a href="http://mysql.meetup.com/30/">SF MySQL Meetup</a> for our April meetup where <a href="http://bret.appspot.com/" target="_blank">Bret Taylor</a> from <a href="http://friendfeed.com" target="_blank">FriendFeed</a> <a href="http://bret.appspot.com/entry/how-friendfeed-uses-mysql" target="_blank">talks about how they store their data in a &quot;schema-less&quot; system on top of MySQL</a>.  FriendFeed stores over 250 million entries and a bunch of other data, from comments and &quot;likes&quot; to friend lists.</p>
<p>As the database has grown, they have tried to iteratively deal with the scaling issues that come with rapid growth. They did the typical things, like using read slaves and <a href="http://en.wikipedia.org/wiki/Memcached" target="_blank">memcache</a> to increase read throughput and <a href="http://en.wikipedia.org/wiki/Sharding" target="_blank">sharding</a> our database to improve write throughput. However, as FriendFeed grew, scaling their existing features to accommodate more traffic turned out to be much less of an issue than adding new features.</p>
<p>In particular, making schema changes or adding indexes to a database with more than 10 &#8211; 20 million rows completely locks the database for hours at a time.  After some deliberation, FriendFeed decided to implement a &quot;schema-less&quot; storage system on top of MySQL rather than use a completely new storage system. This talk attempts to describe the high-level details of the system.</p>
<p><span id="more-326"></span></p>
<hr />
<p>Bret Tayler is one of the founders of FriendFeed.com.  Before starting FriendFeed, he was a Group Product Manager at Google, responsible for Google&#8217;s developer products. Before that, he launched Google Maps and Google Local, and before that he worked on Google&#8217;s crawling and indexing infrastructure.</p>
<hr />
Agenda:<br />
6:30 &#8211; 7:15 &#8212; Doors open/general socializing &amp; food provided by Sun Startup Essentials<br />
7:15 &#8211; 8:30 &#8212; Main presentation by Bret Taylor from FriendFeed<br />
8:30 &#8211; 9:00 &#8212; Main presentation Q&amp;A<br />
9:00 &#8211; 10:00 &#8212; General discussion/Q&amp;A/networking/etc.<br />
10:00ish &#8212; end of group</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2009/03/28/how-friendfeed-uses-mysql-to-store-schema-less-data-sf-mysql-meetup-april-6th-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing the Tungsten Replicator for MySQL &#8211; SF MySQL Meetup Feb 2nd, 2009</title>
		<link>http://www.grepmymind.com/2009/01/24/introducing-the-tungsten-replicator-for-mysql-sf-mysql-meetup-feb-2nd-2009/</link>
		<comments>http://www.grepmymind.com/2009/01/24/introducing-the-tungsten-replicator-for-mysql-sf-mysql-meetup-feb-2nd-2009/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 18:04:15 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[meetup]]></category>
		<category><![CDATA[mysql meetup]]></category>
		<category><![CDATA[Robert Hodges]]></category>
		<category><![CDATA[Tungsten Replicator]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/?p=285</guid>
		<description><![CDATA[Almost everyone I&#8217;ve ever talked to about MySQL has some complaint or another about its replication.  So when Robert Hodges, CTO of Continuent, offered to speak about the  Tungsten Replicator open source project at the February 2nd SF MySQL meetup I was all for it!  Now I know what you are thinking&#8230; &#8220;Not another sales [...]]]></description>
			<content:encoded><![CDATA[<p>Almost everyone I&#8217;ve ever talked to about <a href="http://mysql.com">MySQL</a> has some complaint or another about its <a href="http://en.wikipedia.org/wiki/Database_replication">replication</a>.  So when <a href="http://scale-out-blog.blogspot.com/">Robert Hodges</a>, CTO of <a href="http://continuent.com">Continuent</a>, <a href="http://scale-out-blog.blogspot.com/2009/01/tungsten-replicator-presentation-on-2.html">offered to speak</a> about the  <a href="http://www.continuent.com/community/tungsten-replicator">Tungsten Replicator</a> open source project at the <a href="http://mysql.meetup.com/30/calendar/9455586/">February 2nd SF MySQL meetup</a> I was all for it!  Now I know what you are thinking&#8230; &#8220;Not another sales pitch!&#8221;  But have no fear, Robert is one hell of a smart guy and is much more of a techie than a CTO (in a good way).  I remember one sales call where Robert came to CNET to talk about Continuent&#8217;s clustering software and we ended up spending more time talking databases in general than about the product.  <img src='http://www.grepmymind.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So if you&#8217;re in the SF area on Monday Feb 2nd, 2009, stop by the <a href="http://cbsinteractive.com">CBSi</a> building and listen in.</p>
<hr />When: 6:30pm Monday Feb 2nd, 2009<br />
Where: CBSi &#8211; <a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=235+2nd+Street,+San+Francisco,+CA&amp;sll=37.0625,-95.677068&amp;sspn=46.946584,114.257812&amp;ie=UTF8&amp;z=16">235 2nd Street San Francisco, CA</a><br />
RSVP: <a href="http://mysql.meetup.com/30/calendar/9455586/">http://mysql.meetup.com/30/calendar/9455586/</a></p>
<hr />Description from the <a href="http://mysql.meetup.com/30/">SF MySQL Meetup</a> <a href="http://mysql.meetup.com/30/calendar/9455586/">calendar</a>:</p>
<p>Tungsten Replicator is a new open source project for database replication. It offers MySQL to Oracle replication, robust handling of master failures, extremely flexible topologies, and an extensible architecture that allows you to add your own replication features if you don’t find them there already. I’ll describe why MySQL needs more replication, show the product architecture, describe some of the problems it solves, and demonstrate the replicator in action. Finally, we’ll play “stump the chump” where you can present your replication problem and I’ll describe how our replicator handles it. Whether you have a tricky replication problem or are just curious about the subject, please join us. This is a very technical presentation that should be of interest to all true MySQL fans.</p>
<p>More information on Tungsten Replicator: <a href="http://www.continuent.com/community/tungsten-replicator">http://www.continuent.com/community/tungsten-replicator</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2009/01/24/introducing-the-tungsten-replicator-for-mysql-sf-mysql-meetup-feb-2nd-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scaling MySQL powered Web Sites by Sharding and Replication &#8211; SF MySQL Meetup Nov 2008</title>
		<link>http://www.grepmymind.com/2008/10/23/scaling-mysql-powered-web-sites-by-sharding-and-replication-sf-mysql-meetup-nov-2008/</link>
		<comments>http://www.grepmymind.com/2008/10/23/scaling-mysql-powered-web-sites-by-sharding-and-replication-sf-mysql-meetup-nov-2008/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 23:28:45 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql meetup]]></category>
		<category><![CDATA[peter zaitsev]]></category>
		<category><![CDATA[replication.]]></category>
		<category><![CDATA[sharding]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/?p=87</guid>
		<description><![CDATA[Peter Zaitsev will be giving his excellent presentation &#8220;Scaling MySQL powered Web Sites by Sharding and Replication&#8221; to the upcoming SF MySQL 6:00pm on November 3rd @ the CBS Interactive (formerly CNET Networks) building in SOMA San Francisco (235 2nd St). RSVP here: http://mysql.meetup.com/30/calendar/8912109/ Description from the 2008 Velocity conference: When your application grows beyond [...]]]></description>
			<content:encoded><![CDATA[<div class="D_boxsection">
<p><a href="http://www.mysqlperformanceblog.com/about/" target="_blank">Peter Zaitsev</a> will be giving his excellent presentation &#8220;Scaling MySQL powered Web Sites by Sharding and Replication&#8221; to the upcoming SF MySQL 6:00pm on November 3rd @ the <a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;time=&amp;date=&amp;ttype=&amp;q=235+2nd+St,+San+Francisco,+CA+94105&amp;sll=37.0625,-95.677068&amp;sspn=28.444641,57.65625&amp;ie=UTF8&amp;ll=37.786038,-122.397265&amp;spn=0.003455,0.007038&amp;z=18&amp;om=1" target="_blank">CBS Interactive</a> (formerly CNET Networks) building in SOMA San Francisco (<a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;time=&amp;date=&amp;ttype=&amp;q=235+2nd+St,+San+Francisco,+CA+94105&amp;sll=37.0625,-95.677068&amp;sspn=28.444641,57.65625&amp;ie=UTF8&amp;ll=37.786038,-122.397265&amp;spn=0.003455,0.007038&amp;z=18&amp;om=1" target="_blank">235 2nd St</a>).</p>
<p>RSVP here: <a href="http://mysql.meetup.com/30/calendar/8912109/">http://mysql.meetup.com/30/calendar/8912109/</a></p>
<p>Description from the <a href="http://en.oreilly.com/velocity2008/public/schedule/detail/3163" target="_blank">2008 Velocity</a> conference:<br />
When your application grows beyond capacity of a single MySQL server there are few ways to scale, with most typical being Replication and Sharding.</p>
<p>In this presentation you will learn how, depending on your application performance scalability and high availability goals, you can choose what proper scaling strategy will be good for you.</p>
<p>We also will speak about scalability limitations of replication of Replication and Sharding, implementation complexities, and aspects of operation.</p>
<p>Peter Zaitsev&#8217;s bio:<br />
<a href="http://www.mysqlperformanceblog.com/" target="_blank">MySQL Performance Blog</a></p>
<p>Peter helped many companies ranging from one man startups to Fortune 500 companies with their Performance and Scaling problems on various stages starting from architecture design and down to queries and schema optimization.</p>
<p>Over cause of the years Peter has spoken on many International conferences focused on MySQL, Open Source, Databases or High Performance Web applications.</p>
<p>Before co-founding <a href="http://www.percona.com/" target="_blank">Percona</a> Peter worked for MySQL AB as head of High Performance Group being involved in Support, Consulting, Development and working with vendors helping to optimize their software or hardware to perform well with MySQL.</p>
<p>Peter also was involved in number of Web Startups in the roles ranging from CTO to Consultant and has a lot of experience in MySQL and Web Applications Operations, Deployment, Quality Assurance and Development.<br />
Please join us!</p>
<p><a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;time=&amp;date=&amp;ttype=&amp;q=235+2nd+St,+San+Francisco,+CA+94105&amp;sll=37.0625,-95.677068&amp;sspn=28.444641,57.65625&amp;ie=UTF8&amp;ll=37.786038,-122.397265&amp;spn=0.003455,0.007038&amp;z=18&amp;om=1" target="_blank">Map to CNET Networks, Inc. </a><br />
When you arrive, please look for the PHP/MySQL Meetup sign pointing you to the conference room.</p>
<p>Look forward to seeing you there!</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2008/10/23/scaling-mysql-powered-web-sites-by-sharding-and-replication-sf-mysql-meetup-nov-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Conf 2008 &#8211; MySQL Proxy (Day 4)</title>
		<link>http://www.grepmymind.com/2008/04/21/mysql-conf-2008-mysql-proxy-day-4/</link>
		<comments>http://www.grepmymind.com/2008/04/21/mysql-conf-2008-mysql-proxy-day-4/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 22:40:10 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql proxy]]></category>
		<category><![CDATA[mysql08]]></category>
		<category><![CDATA[mysqlconf08]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/?p=58</guid>
		<description><![CDATA[MySQL Proxy is one of the new products that MySQL released this year that has some real promise. In the MySQL Proxy, the Friendly Man in the Middle session Jan Kneschke went over the existing and planned features of the proxy. MySQL Proxy has a c-based event driven core that has command line support, event [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://forge.mysql.com/wiki/MySQL_Proxy">MySQL Proxy</a> is one of the new products that MySQL released this year that has some real promise.   In the <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/495">MySQL Proxy, the Friendly Man in the Middle</a> session <a href="http://jan.kneschke.de/">Jan Kneschke</a> went over the existing and planned features of the proxy.</p>
<p>MySQL Proxy has a c-based event driven core that has command line support, event handling and a <a href="http://www.lua.org/">Lua</a>-based scripting layer.  The proxy is loading into MySQL via the plugin interface.  With the community edition, you are responsible for writing your own scripts.  But with <a href="http://www.mysql.com/products/enterprise/">MySQL Enterprise</a>, it will come with several pre-built scripts that add some enhanced functionality.</p>
<p>The most basic use of MySQL Proxy is to rewrite or alter your queries.  If you have a costly query that is killing your db, but you&#8217;re not sure where it is coming from, you can write a Lua script to either reject the query or to alter it and make it more manageable.  It stops the dba from having to wait for a developer to update code and/or deploy the fix.</p>
<p>Another trick you can do with MySQL Proxy is to create new SQL commands.  While this is probably not going to be a great idea, you can see a few interesting examples at <a href="http://thenoyes.com/littlenoise/?p=63">http://thenoyes.com/littlenoise/?p=63</a>.  It is a good way to expand on functionality at the lowest level.  Or to lose/forget where you put it when you switch to another db.  <img src='http://www.grepmymind.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-27"></span></p>
<p>One of the features MySQL was thinking of when they built MySQL Proxy is the ability to manage your queries at the database level.  Imagine tracking query quotas, by ip, user, db, etc., then rejecting queries automatically if over quota.  Or perhaps to simulate a db outage or transaction failure when testing code to ensure properly fail-over or error handling.</p>
<p>One of the default Lua scripts that comes with MySQL Proxy is a basic <a href="http://en.wikipedia.org/wiki/Load_balancing_(computing)">load balancer</a> for the db.  It rotates the connections round-robin betweeen the MySQL servers.  Since it is in the database layer, it can be aware of slag lag and adjust the rotation accordingly.  Since it is a Lua script, you can customize it to work how you want it to.</p>
<p>In MySQL Enterprise, this script is on steroids and does so much more.  The load balancer automatically checks the slave state, including lag, # of connections, last error, etc., and kicks the server from rotation if it finds something &#8220;wrong&#8221; with the slave.  This functionality will be integrated with MySQL Enterprise Monitor so that you will have an easy view into how the load balancer is working.</p>
<p>Also for Enterprise, the MySQL team is working on an automated sharding algorithm to go with <a href="http://dev.mysql.com/doc/refman/5.1/en/partitioning.html">MySQL 5.1&#8242;s table partitioning</a>.  I&#8217;m not sure how easy that will be to implement, but if they are able to pull it off, I&#8217;ll be mighty happy.  At least for basic partitioning or sharding, like with a user table, you could do it through MySQL Proxy without having to worry about missing an update someplace in your code.  If you combine this with logging, you can update your code at your leisure and easily find the queries you missed without having to worry about breaking the site.</p>
<p>Other planned improvements include being able to run parallel queries, two-phased commits and syncronyous replication.  Since the proxy is not the database engine, it can use multiple cores on a server and assign out queries and other processes in ways that the db engine you are using cannot.</p>
<p>This is still very new technology/product for MySQL, but I&#8217;m looking forward to what comes out of it.  There is a lot of possibility in it, as well as the potential for bloat.  Personally, I think it will end up back as MySQL core so that the engines can take advantage of some of the Proxy abilities.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2008/04/21/mysql-conf-2008-mysql-proxy-day-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Conf 2008 &#8211; Maria Engine (Day 3)</title>
		<link>http://www.grepmymind.com/2008/04/17/mysql-conf-2008-maria-engine-day-3/</link>
		<comments>http://www.grepmymind.com/2008/04/17/mysql-conf-2008-maria-engine-day-3/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 18:53:07 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Maria]]></category>
		<category><![CDATA[myisam]]></category>
		<category><![CDATA[mysql08]]></category>
		<category><![CDATA[mysqlconf08]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/?p=57</guid>
		<description><![CDATA[Wednesday afternoon Monty went through the Architecture of Maria, what the new features are and what its roadmap will be. For those of you who are not aware of Maria, it is a new db engine that Monty announced back in January. Maria was designed to be a crash-safe replacement for MyISAM. Maria supports the [...]]]></description>
			<content:encoded><![CDATA[<p>Wednesday afternoon <a href="http://monty-says.blogspot.com/">Monty</a> went through the <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/521">Architecture of Maria</a>, what the new features are and what its roadmap will be.  For those of you who are not aware of <a href="http://dev.mysql.com/doc/refman/5.1-maria/en/se-maria.html">Maria</a>, it is a new db engine that <a href="http://monty-says.blogspot.com/2008/01/maria-engine-is-released.html">Monty announced</a> back in January.</p>
<p>Maria was designed to be a crash-safe replacement for <a href="http://dev.mysql.com/doc/refman/5.1/en/myisam-storage-engine.html">MyISAM</a>.  Maria supports the same row formats and features as MyISAM.  This means it can be fully compatible with MyISAM by simply running it in non-transactional control.  It will be ACID compliant and have multi-version concurrency control (MVCC).</p>
<p><span id="more-26"></span></p>
<p>Version 1.0 of Maria was released in January as a <a href="http://dev.mysql.com/downloads/maria/index.html">branch of MySQL</a>.  It will continue to be a branch until version 2.0 where it will hopefully be part of MySQL 6.  Customized documentation is also available on <a href="http://dev.mysql.com/doc/refman/5.1-maria/en/se-maria.html">http://dev.mysql.com/doc/refman/5.1-maria/en/se-maria.html</a>.</p>
<p>Version 1.5 of Maria should be released any week now.  Monty had originally hoped to announce it this week at the conference, but it is not quite done yet.  He says that it should be out sometime between Late April to mid-May.  Starting with version 1.5, Maria will support concurrent INSERT and SELECT operation.  This will give Maria a nice feature merge between InnoDB and MyISAM.</p>
<p>Starting with MySQL 6 in Q4 of 2008, version 2 of Maria will be fully transactional and ACID compliant.  Having the crash recovery will be a great thing to have with the read speed of MyISAM.  Version 3 will be optimized for higher concurrency.</p>
<p>With the expected small footprint and the efficient data storage model, Maria will be a good engine of choice for desktop applications or embedding in applications.</p>
<p>The way in which Maria is crash-safe is kind of interesting.  It stores everything except table definitions into log files.  While these log files can be quite large, starting size is 1GB, it creates a few cool features.  With MyISAM tables, you can apply a lock to the db (or shutdown the server) and then copy the data to a new server.  With Maria, you can simply copy the data and the logs to the new server.  Like with MyISAM, the new server will have corrupted tables.  Unlike MyISAM, Maria will then run through the logs and recover the db to where it should be.  Or, if you don&#8217;t like that method, you can take last night&#8217;s backup to the new server, copy just today&#8217;s logs from the donor server and start up MySQL.  Maria will take the data from the backup and then automatically apply the logs until the new server is up-to-date.</p>
<p>There is quite a list of features that are either already in Maria or will be by the time version 3 comes out.</p>
<ul>
<li>MVCC &amp; ACID</li>
<li>Equal lookup speed for all indexes</li>
<li>Allows easy copying of tables and/or Maria logs</li>
<li>Has instant COUNT(*) queries</li>
<li>Better BLOG handling than MyISAM</li>
<li>Versioned</li>
<li>Crash safe</li>
<li>Data stored in 8k pages for less locking and improved query performance</li>
</ul>
<p>By using 8k pages Maria will be faster on static size indexes than MyISAM, but slower on variable length keys.  Updates that are planned for version 2 or 3 will make variable length indexes just as fast.</p>
<p>There are a few disadvantages of Maria over MyISAm.</p>
<ul>
<li>No INSERT DELAYED (may or may not eventually be added)</li>
<li>Fulltext indexes are not yet crash-safe (planned to be fixed in version 3)</li>
<li>No external locking</li>
<li>Like MyISAM it will not support RAID</li>
<li>When using checksums, the data size will be slightly larger for indexes</li>
<li>Storage of very small rows (&lt;25 bytes) are not efficient with the new page format</li>
</ul>
<p>All in all, I&#8217;m pretty excited about where they are going with Maria.  While some of the databases I use are write heavy the vaste majority are primarily reads; there are only so many news stories a day.  I looks like Maria will give us the stability and locking abilities of InnoDB while keeping the speed of MyISAM reads.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2008/04/17/mysql-conf-2008-maria-engine-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Conf 2008 &#8211; Applied Partitioning (Day 3)</title>
		<link>http://www.grepmymind.com/2008/04/16/mysql-conf-2008-applied-partitioning-day-3/</link>
		<comments>http://www.grepmymind.com/2008/04/16/mysql-conf-2008-applied-partitioning-day-3/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 03:46:42 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql08]]></category>
		<category><![CDATA[mysqlconf08]]></category>
		<category><![CDATA[partitioning]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/?p=56</guid>
		<description><![CDATA[The Applied Partitioning and Scaling Your Database System session by Phil Hildebrand appears to be a very popular session. The line outside the door was more of a crowd than a line. The talk was about the new partitioning abilities of MySQL 5.1. The new table partitioning system has several benefits for your large datasets [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/133">Applied Partitioning and Scaling Your Database System</a> session by <a href="http://theplatform.com/">Phil Hildebrand</a> appears to be a very popular session.  The line outside the door was more of a crowd than a line.  The talk was about the new <a href="http://dev.mysql.com/doc/refman/5.1/en/partitioning.html">partitioning abilities of MySQL 5.1</a>.</p>
<p>The new table partitioning system has several benefits for your large datasets where you are having performance issues due to the volume of data.  It can reduce the seek &amp; scan set sizes and reduce the INSERT/UPDATE transaction durations.  If you are already performing UNION queries or secondary queries to find data in an archive table, this functionality may be for you.</p>
<p>There are four (point 5) partitioning styles available for your use:</p>
<ol>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/partitioning-range.html">Range </a>
<ul>
<li>Very useful for situations where the data is accessed by date</li>
<li>Usually used when a limited number of primary partitions are needed</li>
<li>It supports sub-partitions (the .5 partition type)</li>
</ul>
</li>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/partitioning-list.html">List </a>
<ul>
<li>Good for when you are grouping data in partitions out of order (e.g., SELECT 1,5,7 in partition X)</li>
</ul>
<ul>
<li>As the name implies, you list which data goes into which partition</li>
<li>Higher maintenance costs in many situations</li>
<li>Supports sub-partitions</li>
</ul>
</li>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/partitioning-hash.html">Hash </a>
<ul>
<li>Usually has a lower maintenance cost</li>
<li>Partitions the data based on the hash that you tell it</li>
<li>Good for when you have non-intelligent keys</li>
<li>Works with both a limited and a large number of Partitions</li>
</ul>
</li>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/partitioning-key.html">Key </a>
<ul>
<li>Similar to Hash partitioning, but based on one or more of the fields in the primary key instead of a user-defined hash</li>
<li>If there is no primary key, then the first unique index is used</li>
<li>Does not require the key to be integer based</li>
</ul>
</li>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/partitioning-subpartitions.html">Subpartitions </a>
<ul>
<li>As the name implies, a partition within a partition</li>
<li>You can only create subpartitions for Range &amp; List</li>
<li>If needed, subpartitions can be spread across volumes</li>
</ul>
</li>
</ol>
<p>The alter table statements are fairly simplistic; &#8220;ALTER TABLE my_table PARTITION BY KEY() PARTITIONS 50&#8243; will create 50 partitions for that table.  If you need to add more partitions, you can just run &#8220;ALTER TABLE my_table ADD PARTITION PARTITIONS 25&#8243; and your table will now have 75 partitions.  Of course you can shrink the size of the partitions as well.  One of the nice features of the partition modification is that the data is re-allocated as appropriate.</p>
<p>All in all, this looks like a much better solution than the standard 10/90 tables.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2008/04/16/mysql-conf-2008-applied-partitioning-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Conf 2008 &#8211; MySQL Sandbox (Day 3)</title>
		<link>http://www.grepmymind.com/2008/04/16/mysql-conf-2008-mysql-sandbox-day-3/</link>
		<comments>http://www.grepmymind.com/2008/04/16/mysql-conf-2008-mysql-sandbox-day-3/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 21:42:32 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql sandbox]]></category>
		<category><![CDATA[mysql08]]></category>
		<category><![CDATA[mysqlconf08]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/?p=55</guid>
		<description><![CDATA[This morning&#8217;s first session is hosted by Giuseppe Maxia about MySQL Sandbox. This tool was created so that you can quickly &#38; easily setup sandbox servers for testing MySQL. It installs side servers on a machine that is already running MySQL. Sandbox installs quickly without disturbing the existing MySQL installation. The home for the MySQL [...]]]></description>
			<content:encoded><![CDATA[<p>This morning&#8217;s first session is hosted by <a href="http://datacharmer.org/">Giuseppe Maxia</a> about <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/311">MySQL Sandbox</a>.  This tool was created so that you can quickly &amp; easily setup sandbox servers for testing MySQL.  It installs side servers on a machine that is already running MySQL.  Sandbox installs quickly without disturbing the existing MySQL installation.</p>
<p>The <a href="http://sourceforge.net/projects/mysql-sandbox/">home for the MySQL Sandbox project</a> is hosted on <a href="http://www.sourceforget.net/">SourceForge.net</a>.  It is not an officially supported product which is why Giuseppe keeps it on SourceForge.</p>
<p>The Sandbox was designed so that you don&#8217;t have to go through the hassle, and potentially error prone, steps of setting up multiple sandbox databases.  It&#8217;s very common for these manual installations to accidentally install in the same data directory (can corrupt your data) or install with the same port/socket (MySQL won&#8217;t start).</p>
<p>Details of installing and using after the break&#8230;<span id="more-24"></span></p>
<p>The simple installation steps for MySQL Sandbox automatically creates a new instance of MySQL with a sandboxed data directory, port, and socket.  In order to use Sandbox&#8217;s express_install script you need to download and un-tar a copy of MySQL for each version you wish to install.  The script by default uses $HOME/opt/mysql as its base directory so be sure to extract MySQL there.  You can change the default source directory, but by being in your home directory it helps keep your instance separate from everyone else&#8217;s.</p>
<p>Next download and extract the MySQL Sandbox from SourceForge and run the following:<br />
./express_install.pl {directory in $HOME/opt/mysql}<br />
If you prefer, you can run ./express_install.pl /path/to/mysql/directory</p>
<p>You can setup replication or multiple instances by ./set_replication.pl and ./set_custom_many.pl respectively.  You also have a variety of install options that can be found by adding &#8211;help to the commands.</p>
<p>One of the nice commands you can use once the sandbox is setup and running is &#8220;clear.&#8221;  This command will reset the data and instance back to default so that you can start again from scratch.  Running the &#8220;use&#8221; command will get you into the <a href="http://en.wikipedia.org/wiki/Command_line_interface">CLI</a> of the appropriate instance.  One thing to keep in mind is that the commands to interact with the sandboxes must be run from the installed directory.  You also have access to some of the standard MySQL command line tools by running &#8220;my {sqldump|sqlbinlog|sqladmin}&#8221; (Note the space after my).</p>
<p>It seems like this would be a good system to use in conjunction with <a href="http://www.phpunit.de/wiki/TestDatabase">DBUnit</a>.  As I <a href="http://www.grepmymind.com/2008/04/15/mysql-conf-2008-phpdbunit-day-2/">talked about yesterday</a>, DBUnit can auto-load/populate data.  By putting the two together you should have a very maintainable and separate testing environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2008/04/16/mysql-conf-2008-mysql-sandbox-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Conf 2008 &#8211; Memcached (Day 1)</title>
		<link>http://www.grepmymind.com/2008/04/14/mysql-conf-2008-memcached-day-1/</link>
		<comments>http://www.grepmymind.com/2008/04/14/mysql-conf-2008-memcached-day-1/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 00:24:01 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql08]]></category>
		<category><![CDATA[mysqlconf08]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/2008/04/14/mysql-conf-2008-memcached-day-1/</guid>
		<description><![CDATA[The session I&#8217;m attending this afternoon is Memcached and MySQL: Everything You Need To Know. I&#8217;m really looking forward to this talk. For whatever geeky reason I think Memcached is the coolest. Brian Aker has put the PDF of the slides at http://download.tangent.org/talks/Memcached%20Study.pdf. The slides will be updated as time goes on so this link [...]]]></description>
			<content:encoded><![CDATA[<p>The session I&#8217;m attending this afternoon is <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/1627">Memcached and MySQL: Everything You Need To Know</a>.  I&#8217;m really looking forward to this talk.  For whatever geeky reason I think <a href="http://danga.com/memcached/">Memcached</a> is the coolest.  <img src='http://www.grepmymind.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Brian Aker has put the PDF of the slides at <a href="http://download.tangent.org/talks/Memcached%20Study.pdf">http://download.tangent.org/talks/Memcached%20Study.pdf</a>.  The slides will be updated as time goes on so this link should always have the most up-to-date stuff.  In case at some point he removes them, you can find them <a title="Memcached Slides" href="http://www.grepmymind.com/wp-content/uploads/2008/04/memcached-study.pdf">attached</a>.</p>
<p>2:15pm: Talking about <a href="http://grazr.com/">Grazr</a> and how they have a daemon to do write-through cache.  Now talking about processing data so that the data normally/frequently used is always in cache.</p>
<p>2:25pm: Memcached is supposed to be &#8220;simple&#8221; so that it can be faster.  Has its own memory slab allocator, it originally tried using malloc but that was way too slow.  The way it assigns blocks for memory assignment means that each data store goes into one of those &#8220;blocks.&#8221;  If the # of available room in the block is full, then it drops the oldest record in that block.  Written around libevent for scalable network connections.  That was only connections sending data are &#8220;active&#8221; on the server.</p>
<p>2:27pm: The clients handle the majority of the load.  It takes the cache key and hashes it so that it knows which server to send to the data to.  Server doesn&#8217;t do the serialization either.</p>
<p>2:30pm: Server is not redundant and does not handle failover.  But some clients like with <a href="http://pecl.php.net/memcache">PHP&#8217;s PECL</a>, the client can implement this type of functionality.</p>
<p>2:33pm: Available commands are pretty much only set/get/replace/add, append/prepend, increment/decrement, <a href="http://en.wikipedia.org/wiki/Compare_and_swap">cas</a> and stats.  While they say append/prepend are easy to be abused it is still an easy &amp; quick way to store the keys used for something.  Unless the size of the keys that you are storing reaches close to 1MB, it&#8217;s okay.  It&#8217;s a great way to know what keys you&#8217;ll need to clear when product information has been updated.</p>
<p>2:38pm: <a href="http://tangent.org/586/Memcached_Functions_for_MySQL.html">MySQL UDF</a> usage for Memcached is growing.  <a href="http://code.google.com/soc/2008/">Google Summer of Code</a> is working on making <a href="http://forge.mysql.com/wiki/SummerOfCode2008Ideas">MySQL Query cache use Memcached</a>.   lighthttpd has mod_memcache for caching files from disk.  Apache also has mod_memcached but is still alpha.</p>
<p>2:42pm:  Memcached has a few limits that you should pay attention to:<br />
The max cache key is 250 bytes<br />
Max data size is 1MB<br />
Maxbytes limits the item cache, not everything<br />
Be careful because with 32bit machines, you can set too high of a maxbytes that in combination with other memcache memory elements (e.g., key storage) and it will segfault.</p>
<p>2:46pm:  <a href="http://en.wikipedia.org/wiki/Cache_algorithms">LRU</a> &#8211; Least recently accessed items are up for eviction and can be seen.  One LRU exists per &#8220;slab class.&#8221;  LRU evictions don&#8217;t need to be common.  That&#8217;s pretty nice because you won&#8217;t lose larger data sets because a small data element doesn&#8217;t have room in its slab (and vice versa).</p>
<p>2:50pm:  Threads &#8211; Great for large instances (16G+) and/or large multiget requests.  It scales okay now, but they are working on improving it.  Also means that you may not need to run multiple instances on the same box.  Only 1 thread can talk to the allocator and the hash table at one time.  This is so that you don&#8217;t have race conditions.</p>
<p>2:55pm:  Don&#8217;t run Memcached with swap enabled or at least set it really small.  Can seriously slow down performance and technically is contrary to purpose of memcache.  The smaller swap means that OS can still use if it really has to, but won&#8217;t let the writing to swap happen for Memcached.  The memory for Memcached is permanently allocated from the OS.  Shouldn&#8217;t be an issue with most modern servers.  The slab class are created by chunk size.  Tends to create 36-39 slab classes.  It does not reassign slab classes once the daemon loads.  They are working on a way to allow you to change the assignments on the fly.  e.g., if you find that you are evicting a lot of data from one slab, you can give that slab more pages while taking it from another slab.</p>
<p>3:10pm: There is normal hashing (usually crc or some modulus operation) and consistent hashing.  Each client could implement its own version, but usually use common methods so that multiple clients can use the same pool of memcache servers.</p>
<p>3:20pm:  PECL client (and most others) has option to not &#8220;remove&#8221; the server if it is not available.  It can have a &#8220;back-off&#8221; method where it won&#8217;t try to hit the server for 1 second, 5 seconds, then 15 seconds, etc.  It can also failover to a different server until the original is back online.</p>
<p>3:25pm: You should always try to use multi-get.  Memcached is optimized for handling multiple requests at once.  You&#8217;ll find a big improvement if you do this.  The trick is to write your code in a way that can utilize this to the fullest.</p>
<p>4:04pm: Back from break.  We&#8217;re now going over various coding examples of how to use Memcached.  I&#8217;m hoping this part will be helpful.  Most coding examples of how to use Memcached are generally fairly simple.  But with 90 minutes left, there aught to be some gems.</p>
<p>4:15pm: Going over locks.  Much like my previous post regarding <a href="http://www.grepmymind.com/2008/01/11/memcached-php-semaphore-cache-expiration-handling/">memcached cache locks</a>.</p>
<p>4:25pm: Just re-hashing the same examples in different languages.  <img src='http://www.grepmymind.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>4:35pm: <a href="http://tangent.org/552/libmemcached.html">libmemcached</a> is a C/C++ client.  Has replicated ability.  You can store flags associated with the data in the byte category.  Most clients don&#8217;t allow you direct access to this.</p>
<p>4:48pm: When doing a multi-get it hashes each key to determine the servers where the data would be stored.  Once it knows that, the requests are made in parallel and as single-combined request to each server needed.</p>
<p>4:50pm: MySQL &amp; Memcached.  The MySQL uses the UDF API and libmemcached.  You have to install it by CREATE FUNCTION.  Most common method is to use memc_delete to remove the memcached data when data is written to the db.  An example is &#8220;select id, url, memc_set(concat(&#8216;feeds&#8217;, md5(url), url) from feeds;&#8221;  or &#8220;select memc_get(concat(&#8216;feeds&#8217;, md5(url));&#8221;  This could be helpful for when you store the entire row, and only the row, in memcache.  But for the most part, I don&#8217;t see the benefit of using this.  Of course, I&#8217;ve been known to be wrong before.</p>
<p>5:00pm:  There is memcached-tool which may assist with some basic stats/display commands.  It will eventually be what does the slab re-allocation.  libmmcached has memslap which may be useful for performance testing.  MRTG gives you decent graphs about what is happening on the server.</p>
<p>5:05pm:  1.2.5 release supports multi-interface support, UDP all the time, noreply, &amp; IPV6.  Noreply is kind of neat as it allows you to set keys and not have have a response sent back to the client.  It makes it a fire &amp; forget save to memcache.  My experience is that most people don&#8217;t verify that the data is really set to memcache anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2008/04/14/mysql-conf-2008-memcached-day-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Conf 2008 &#8211; MySQL Replication (Day 1)</title>
		<link>http://www.grepmymind.com/2008/04/14/mysql-conf-2008-mysql-replication-day-1/</link>
		<comments>http://www.grepmymind.com/2008/04/14/mysql-conf-2008-mysql-replication-day-1/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 19:20:11 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql08]]></category>
		<category><![CDATA[mysqlconf08]]></category>
		<category><![CDATA[replication.]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/2008/04/14/mysql-conf-2008-mysql-replication-day-1/</guid>
		<description><![CDATA[I started off the MySQL Conference 2008 with the replication tutorial. I&#8217;m hoping that there will be some good tidbits in the second half of the session. I&#8217;m almost positive the first part will be refresher and standard replication stuff. I really wanted to do the MySQL Proxy session, but that is an all-day thing [...]]]></description>
			<content:encoded><![CDATA[<p>I started off the <a href="http://www.mysqlconf.com/">MySQL Conference 2008</a> with the <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/2145">replication tutorial</a>.  I&#8217;m hoping that there will be some good tidbits in the second half of the session.  I&#8217;m almost positive the first part will be refresher and standard replication stuff.</p>
<p>I really wanted to do the <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/478">MySQL Proxy session</a>, but that is an all-day thing and I&#8217;d miss the <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/1627">Memcached session</a>.  In hindsight, I&#8217;m probably going to regret that decision, but we&#8217;ll see.  I can always do Proxy next year.  <img src='http://www.grepmymind.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>10:00am: So far pretty much all refresher.  Some people have asked some good questions about the relay logs and replication lag.  Unfortunately, none of it is particularly helpful.  I don&#8217;t understand why MySQL doesn&#8217;t enable a way to do master-master replication reliably outside of NDB. In my opinion, NDB, is not an appropriate solution for most websites.  Having to take down the entire cluster to alter a table would not be acceptable.   <img src='http://www.grepmymind.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>10:45am: Not sure if it is my laptop or the wireless network, but my connection/authorization never seems to carry over from when I log in/out of the laptop.  I have to disconnect from the wireless auto-reconnect and connect again manually in order to get on the Internet.  I wonder if anyone else is having this problem?</p>
<p>10:45am: One of the recommend ways for doing <a href="http://en.wikipedia.org/wiki/High_availability">HA</a> <a href="http://en.wikipedia.org/wiki/Multi-master_replication">master/master</a> is to use a shared disk array.  The section would be to put a virtual IP in front of a heartbeat monitor in front of two MySQL servers configured the same.  If they shared the same disk array, then the bin-log will be the same for both servers.  The heartbeat monitor then sends the traffic to mas1 until it finds that it is no longer online.  Then the traffic goes to mas2 automatically.  When mas1 comes back online, the heartbeat monitor sends the traffic back automatically.  Since mas2 is no longer reading/writing to the db tables, there shouldn&#8217;t be any corruption.  Behind the mas1/mas2 is another virtual IP tied to the same heartbeat monitor.  That way the slaves will also stay online.  This sounds like it will handle many of the scenarios where you need HA master/master.  The only thing I still see missing is the ability to alter tables without bringing down the tier like you can with m/cluster.  [ m/cluster is a product by <a href="http://www.continuent.com/">Continuent</a> for HA synchronous replication.  Of course, that product is EOL and their new product doesn't allow this either.  <img src='http://www.grepmymind.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  ]</p>
<p>11:00am: Federated databases are good for joining two sets of data to another db server.  I guess I always misunderstood how that works.  This seems like it&#8217;d be a good way to hook up user information with community (forums) data.  I wonder what the performance costs are?</p>
<p>11:15am: Row-based replication in 5.1 paves the way for future replication enhancements such as conflict detection &amp; conflict resolution.  As well as multi-channel replication and horizontal partioning.  Multi-channel replication would be really cool.  It is such a pain when replication lags and this could go a long way to help fight that. You cannot do master filtering for individual tables with row-based.  I wonder why that is?</p>
<p>12:00pm: I don&#8217;t know why MySQL keeps pushing NDB as the end-all solution to replication problems.  Yes it can deal with a lot of the replication issues, but it has several other issues that make it a bad (or at least not optimal) solution.</p>
<p>12:05pm: eek, running out of battery power.  I have 18 minutes left&#8230;  Should be able to make it until lunch.  Maybe&#8230;</p>
<p>12:20: That&#8217;s about it.  Q&amp;A now, but I&#8217;m headed out to find a lunch table near power.  <img src='http://www.grepmymind.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2008/04/14/mysql-conf-2008-mysql-replication-day-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL AB aquired by Sun</title>
		<link>http://www.grepmymind.com/2008/01/16/mysql-ab-aquired-by-sun/</link>
		<comments>http://www.grepmymind.com/2008/01/16/mysql-ab-aquired-by-sun/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 20:18:35 +0000</pubDate>
		<dc:creator>Michael Tougeron</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql ab]]></category>
		<category><![CDATA[sun]]></category>

		<guid isPermaLink="false">http://www.grepmymind.com/2008/01/16/mysql-ab-aquired-by-sun/</guid>
		<description><![CDATA[Big news in the database world today, MySQL announced that they have been aquired by Sun Microsystems.  Was a bit of surprising move to me as last I heard was the rumors around looking into an IPO.  Of course by no means am I up-to-date or an industry insider.  I&#8217;m not sure yet how I [...]]]></description>
			<content:encoded><![CDATA[<p>Big news in the database world today, <a href="http://www.mysql.com/news-and-events/press-release/release_2008_03.html">MySQL announced that they have been aquired by Sun Microsystems</a>.  Was a bit of surprising move to me as last I heard was the rumors around looking into an IPO.  Of course by no means am I up-to-date or an industry insider.  I&#8217;m not sure yet how I feel about this move.  Its probably a good move for Sun, but how is it going to affect the LAMP world?</p>
<p>According to <a href="http://www.mysql.com/news-and-events/press-release/release_2008_03.html">Kaj Arno</a> it will be a good thing due to Sun&#8217;s already strong presence in the open source world citing references to Java and Open Office.  I agree that Sun&#8217;s open source initiatives are a good thing (it could have been Oracle /shudder).  However, I don&#8217;t like Java and I don&#8217;t like Open Office.  I also think the audience that uses Java and MySQL might be somewhat different from the larger LAMP sites like Facebook and Yahoo!.</p>
<p>I suppose only time will tell.  Its probably just the db geek in me, but I&#8217;ll be watching this closely over the coming months.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grepmymind.com/2008/01/16/mysql-ab-aquired-by-sun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
