Marta hates acronyms, and I’m getting there myself. While preparing to present a series of talks in Australia next week, I ran across the term ACID-compliant.
What the hell is ACID-compliant? Turns out, it’s a term for database design, and stands for Atomicity, Consistency, Isolation, and Durability.
But what does it really mean? I will now explain using an accessible metaphor, which I hope to expand into a whole book someday. So listen up, kiddos, you’re about to learn some computer science.
This is when you step into the public hotel restroom on the ground floor outside the conference room, and before you reach for your belt-buckle and sit down, you check for toilet paper and paper towels, and confirm that the toilet will flush and the faucets work. Atomicity requires that you finish what you start, and if you can’t finish, you can’t even start. You also have to lock the door so no one comes in and steals all the paper towels while you’re sitting there.
Consistency requires that you not leave the restroom in an “inconsistent state,” such as having unwashed hands, an open fly, or toilet paper stuck to your shoe.
Isolation demands that, regardless of how good you are at multi-tasking while you are in the restroom, the end result must be exactly the same as if you did everything in sequence in the correct order. For instance, if you do your business, wipe your bum, and wash your hands at the same time to be more efficient, you must nevertheless leave the bathroom with business done, bum wiped, and hands clean. No exceptions. No excuses.
Durability means that once you flush the toilet and unlock the restroom door, the toilet must stay flushed, even if the power goes out and the water stops running. If the power goes out while you are doing your business, you must remain in the restroom until the power is back on. Alternately, if you do leave the restroom, you must steal the key, lock the restroom from the outside, and put a sign on the door that says, “unfinished business,” which you must return to complete as soon as the power comes back on.
Now you know more about database design than I did a week ago.