I follow only a few comics in my feed reader: Get Fuzzy, Dilbert, XKCD, and now The Adventures of Ace, DBA. It’s kind of XKCD-ish, only it’s about Oracle and it doesn’t have the extra punch line when you hover your mouse over the picture. And it’s proof that a DBMS (even one I don’t use) can be pretty damn funny.
This post is SEO bait for people trying to scale MySQL’s write capacity by writing to both servers in master-master replication. The short answer: you can’t do it. It’s impossible.
I keep hearing this line of reasoning: “if I make a MySQL replication ‘cluster’ and move half the writes to machine A and half of them to machine B, I can increase my overall write capacity.” It’s a fallacy. All writes are repeated on both machines: the writes you do on machine A are repeated via replication on machine B, and vice versa. You don’t shield either machine from any of the load.
In addition, doing this introduces a very dangerous side effect: in case of a problem, neither machine has the authoritative data. Neither machine’s data can be trusted, but neither machine’s data can be discarded either. This is a very difficult situation to recover from. Save yourself grief, work, and money. Never write to both …
[Read more]Let me begin by saying “I am so not a gadget guy.” I don’t have an iPhone. Heck, I didn’t have a cellphone at all until April when I joined Percona as a consultant. I don’t ooh and aah over other people’s gadgets most of the time. I don’t have, you know, that kind of envy. I’m sure you see where this is going: I got a gadget and I think it’s really cool.
Anyway, my wife and I have a bunch of computers (desktops and laptops) and we had been feeling the pain for a long time: the files were only on one computer, and we wanted them available. I built a file server and then realized that it was going to be really expensive in terms of power alone, so I went back to USB drives for backups, and kept thinking about it.
After a long time I …
[Read more]Just thought I’d update you. We got quite a few good errata from readers, and I took a couple weekends and went through the book with a fine-toothed comb, catching typos and subtle errors that crept in at some point (TPC benchmarks were labeled as TCP benchmarks — did you catch that one?). I marked up my book and mailed it to O’Reilly, who went well above and beyond what they normally do for errata. Normally, once a book is in print they will fix only serious technical errors. They fixed everything, even going as far as rearranging page breaks and moving figures to improve readability.
The second printing is on Monday August 4th. Already! I think the book has been selling a lot better than anticipated. I know I am psyched to see it remain in the top couple thousand on Amazon. And they thought it was a big deal when it broke five thousand!
In other news, it’s going to be translated into Spanish, Polish, and Portuguese. So now …
[Read more]
Some time ago, with the help of Patrick Crews, I built a sample
database for testing.
Now this database is published as a stand-alone project on
Launchpad.
What's special about it?
Unlike the previous databases used in MySQL documentation and
tutorials, this database has some weight. The total data is over
160 MB, distributed across 6 table, for a total of about 4
million records. It is not huge, but it is large enough to be
non-trivial.
The second important feature is that this database comes with a
test suite. This will allow you to make sure that you have loaded
the right data.
Getting startedUsing the sample database is trivial.
Open the test db downloads page and get the current
…
Someone who should know told me that LinkedIn runs its main application on Oracle. So when I saw the press release about MySQL being their database, I read carefully, and they are not very specific about exactly what MySQL is used for. Depending on how you read it, you could argue that they left open the possibility that the main application database is not MySQL, and the MySQL deal is for something peripheral.
Now, this is nothing but a rotten rumor and I will probably burn in hell for spreading it, but I’d like it to be debunked if it’s false. What is LinkedIn’s main database server? Anyone have the provably correct answer?
PS: I see that LinkedIn is “seeing daily downloads of approximately 200 million.” I didn’t know it was downloadable. I’ve been missing out! Where can I download it?
…
[Read more]Hooray! The MySQL reference manual has a new search system. It now uses a Google Appliance and the results should be a lot better. The old system was not very helpful. It used to break config variables into multiple words and search on them individually and give a billion results I didn’t care about. I’ve just tried to search for some things like key_buffer_size and got results I think are very useful.
I love the MySQL manual. It is a great example of quality software documentation. As someone recently mentioned, it is not released under a Free license though — that would be a great improvement, too!
When did this change happen, by the way? Maybe it’s been there for a while and I just missed it because I grew accustomed to using Google search instead.
Edit: I actually would suggest a …
[Read more]
In my 14 years in development I learned that outside of poor
schema design, nothing drains the performance of an application
more than poorly performing SQL code. Even code that ran well on
day one of production would sometimes come back to bite at the
worst possible times. Even worse, as a DBA I was consistently
asked to bail out a development team that was either tuning their
code before the rush to production or that was trying to finger
code that had fallen victim to a dropped or changed index. Never
fun.
As a Product Manager with MySQL I have learned from meeting with
friends/customers that this experience hasn't really changed much
since I left the field. I hear things like:
- MySQL is not well instrumented for tracking code level
performance metrics
- Logs are OK, but not centralized and too low-level for easy
navigation
- We need help identifying "good code gone bad" and "bad code
gone worse" …
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. …
[Read more]I just finished reading Building Powerful and Robust Websites with Drupal 6 (this title on Packt’s site). I’ve been working on a website powered by Drupal, and though it was obvious that Drupal is very flexible and capable, I was getting pretty lost in the website. So I wanted to read a book that would explain it to me.
Unfortunately, this book didn’t help …
[Read more]