{"id":1765,"date":"2009-04-16T20:26:25","date_gmt":"2009-04-17T00:26:25","guid":{"rendered":"http:\/\/blogs.n1zyy.com\/n1zyy\/2009\/04\/16\/dpm-dormandos-proxy-for-mysql\/"},"modified":"2009-04-16T20:26:25","modified_gmt":"2009-04-17T00:26:25","slug":"dpm-dormandos-proxy-for-mysql","status":"publish","type":"post","link":"https:\/\/blogs.n1zyy.com\/n1zyy\/2009\/04\/16\/dpm-dormandos-proxy-for-mysql\/","title":{"rendered":"Cool MySQL Projects"},"content":{"rendered":"<p>I think part of the thing I love about MySQL is the same thing I love about Firefox and Thunderbird. Even though I sometimes wonder if there are databases that would work better than MySQL or have fewer <a href=\"http:\/\/bugs.mysql.com\/bug.php?id=9090\">bugs<\/a>, MySQL has an incredibly rich community that&#8217;s home to myriad fascinating projects.<\/p>\n<p>I&#8217;ve looked into <a href=\"http:\/\/forge.mysql.com\/wiki\/MySQL_Proxy\">MySQL Proxy<\/a> at work a bit, and found it pretty interesting, but it&#8217;s still considered alpha-level code, and we don&#8217;t really need a proxy in front of our database right now.<\/p>\n<p>I&#8217;m not even going to pretend that the links that follow are all things I&#8217;ve just found on my own. They&#8217;re inspired from <a href=\"http:\/\/www.xaprb.com\/blog\/2009\/04\/11\/sessions-of-interest-at-mysql-conference-and-expo-2009\/\">this Xapbr post<\/a>, with Xapbr being a blog run by one of the top guys at Percona, and Percona being a well-known MySQL consulting firm, perhaps best known for the O&#8217;Reilly <em>High Performance MySQL<\/em> book. (A must-read even for people who aren&#8217;t full-time DBAs!)<\/p>\n<p>It turns out that MySQL Proxy has a competitor, Dormando&#8217;s Proxy for MySQL, better known as <a href=\"http:\/\/consoleninja.net\/code\/dpm\/README.html\">dpm<\/a>. It&#8217;s a BSD-licensed proxy created by SixApart&#8217;s DBA. (SixApart used to own LiveJournal, which is well-known for releasing <a href=\"http:\/\/www.danga.com\/memcached\/\">memcached<\/a> to the community.) Given that I&#8217;ve worked with neither dpm nor MySQL Proxy, I&#8217;m not able to comment on the merits of either, but it&#8217;s a handy link to have.<\/p>\n<p>I&#8217;m also interested in the <a href=\"http:\/\/www.continuent.com\/community\/tungsten-replicator\">Tungsten Replicator<\/a>, an Open Source project providing (emphasis mine) &#8220;<em>database-neutral<\/em> master\/slave replication,&#8221; which was interesting enough to keep me reading past the words &#8220;JDK&#8221; and &#8220;Ant,&#8221; which are technical terms meaning &#8220;bloat&#8221; and &#8220;memory leaks.&#8221; (I kid&#8230; Sort of.) It looks like the project is mostly MySQL-centric right now, but capable of replicating MySQL databases into Oracle. (But apparently not the other way, probably since Oracle binlogs aren&#8217;t as publicly-documented as MySQL&#8217;s.)<\/p>\n<p>And then there&#8217;s <a href=\"http:\/\/www.bigdbahead.com\/?p=73\">WaffleGrid<\/a>, a project using memcache as an L2 cache. That is, MySQL will first look in its own caches, but in the event of a cache miss, will check memcache before turning to disk. It looks like it gives stellar results, even though it&#8217;s one of those things that seems kind of wrong. (You&#8217;d think that, if you&#8217;re adding memory to better cache your database, you&#8217;d want to put it in the MySQL machine, and if you needed to scale to a cluster of memcache boxes, you might be better off spreading the load around several MySQL boxes&#8230; But at the same time, clustering isn&#8217;t something MySQL excels at right now.)<\/p>\n<p><a href=\"https:\/\/launchpad.net\/drizzle\">Drizzle<\/a> is &#8220;a lightweight SQL database for [the] cloud and web,&#8221; which is forked from MySQL 6. (And for those of you scratching your heads: yes, I said version 6. Yes, 5.1 is the latest release branch.) There are some big names working on Drizzle, and besides &#8220;the cloud,&#8221; they talk a lot about &#8220;massive concurrency,&#8221; which is something that should be of interest even to people running more traditional databases.<\/p>\n<p>And, of course, there&#8217;s <a href=\"http:\/\/www.percona.com\/docs\/wiki\/Percona-XtraDB:start\">Percona&#8217;s XtraDB<\/a> engine for MySQL, a significant overhaul to InnoDB. It seems a bit of a young technology for production environments, and yet it seems like it&#8217;s production environments where it would have the best impact.<\/p>\n<p>This is only tangentially related to MySQL, but I&#8217;ve seen <a href=\"http:\/\/www.sphinxsearch.com\/\">Sphinx<\/a> mentioned in at least three distinct places today, a SQL-based fulltext search index. I&#8217;d be curious in seeing how it compares with <a href=\"http:\/\/lucene.apache.org\/\">Lucene<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>I think part of the thing I love about MySQL is the same thing I love about Firefox and Thunderbird. Even though I sometimes wonder if there are databases that would work better than MySQL or have fewer bugs, MySQL &hellip; <a href=\"https:\/\/blogs.n1zyy.com\/n1zyy\/2009\/04\/16\/dpm-dormandos-proxy-for-mysql\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5,13,19],"tags":[],"class_list":["post-1765","post","type-post","status-publish","format-standard","hentry","category-computers","category-cool-links","category-linux-tips","category-performance"],"_links":{"self":[{"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/posts\/1765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/comments?post=1765"}],"version-history":[{"count":0,"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/posts\/1765\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/media?parent=1765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/categories?post=1765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/tags?post=1765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}