You Ought To Know
I'm the lead author of High Performance MySQL, Second Edition.
You can hire me! I work as a consultant for Percona with some of my co-authors and other performance experts. You can contact me like this:
SELECT REVERSE('moc.anocrep@norab');
If you're looking for free, fast, friendly MySQL help instead of expert consulting, please send your questions to the MySQL mailing list, or hop on #mysql at FreeNode on IRC. Thanks!
Hot Hot Headlines
You Were Saying?
- Selena Deckelmann on Announcing OpenSQL Camp 2008
- Praveen on How to write a SQL exclusion join
- Devananda van der Veen on How much memory does MySQL Enterprise Monitor's agent use?
- Greg's Postgres stuff on Announcing OpenSQL Camp 2008
- Jan Kneschke on How much memory does MySQL Enterprise Monitor's agent use?
Respected Sites
Stuff To Do
Think Inside The Box
- August 2008 (16)
- July 2008 (7)
- June 2008 (11)
- May 2008 (15)
- April 2008 (18)
- March 2008 (9)
- February 2008 (4)
- January 2008 (9)
- December 2007 (11)
- November 2007 (19)
- October 2007 (18)
- September 2007 (11)
- August 2007 (12)
- July 2007 (9)
- June 2007 (12)
- May 2007 (13)
- April 2007 (12)
- March 2007 (17)
- February 2007 (6)
- January 2007 (10)
- December 2006 (8)
- November 2006 (8)
- October 2006 (12)
- September 2006 (9)
- August 2006 (19)
- July 2006 (14)
- June 2006 (15)
- May 2006 (15)
- April 2006 (12)
- March 2006 (10)
- February 2006 (5)
- January 2006 (12)
- December 2005 (18)
- November 2005 (14)
- October 2005 (9)
- September 2005 (16)

Using BASE instead of ACID for scalability
My editor Andy Oram recently sent me an ACM article on BASE, a technique for improving scalability by being willing to give up some other properties of traditional transactional systems.
It’s a really good read. In many ways it is the same religion everyone who’s successfully scaled a system Really Really Big has advocated. But this is different: it’s a very clear article, with a great writing style that really cuts out the fat and teaches the principles without being specific to any environment or sounding egotistical.
He mentions a lot of current thinking in the field, including the CAP principle, which Robert Hodges of Continuent first turned me onto a couple months ago. It has been proven formally, though I have not read the proof myself.
One of the most important concepts he advances is giving up the illusion of control. As programmers and DBAs, I think we may tend to like control too much. Foreign keys are a perfect example. I think the point here is that these things make you feel safe, but they don’t really make you safe. Just as with so many things in life, recognizing our inability to really control the systems we build is key to working with their strengths — instead of trying to bind them with iron bands.
Another great point is idempotency. This is a great way to help avoid problems with MySQL replication, by the way. I’ll leave the “why” as an exercise for the reader, but let me just point out that the file MySQL uses to remember its current position in replication is not synced to disk, so it will almost certainly get out of whack if MySQL dies ungracefully. (Google has solved this problem.)
A highly recommended read — worth more than most case studies about how specific companies have scaled their specific systems.
Technorati Tags:ACID, ACM, Andy Oram, BASE, CAP, Continuent, foreign keys, mysql, replication, Robert Hodges, scaling, transactionsYou might also like: