Sunday, 4th October 2009
I grew up in a college town, and one Halloween our doorbell rang and we opened the door expecting to see trickortreater—but what was in front of our open door—was another door! Like, a full-on wooden door, that had a sign that said “Please knock.” So we did, and the door swung open to reveal a bunch of college dudes dressed as really old grandmothers, curlers in their hair, etc, who proceeded to coo over our “costumes” and tell us we were “such cute trick or treaters!” One even pinched my cheek. Then THEY gave US candy, closed their door, picked it up and walked to the next house.
When I worked at Amazon.com we had a deeply-ingrained hatred for all of the SQL databases in our systems. Now, we knew perfectly well how to scale them through partitioning and other means. But making them highly available was another matter. Replication and failover give you basic reliability, but it’s very limited and inflexible compared to a real distributed datastore with master-master replication, partition tolerance, consensus and/or eventual consistency, or other availability-oriented features.