Death of the databasePBS pundit Robert X. Cringely says he realized at last week's MIT Technology Review conference that cloud computing means, in short, "No database." Cringely sees it as the end of Oracle's dominance of information technology. I expect Oracle Cloud any day now. Here's a summary of Cringely's long article, plus the joke about Ellison's sex life, minus Cringely's references to himself:
Thanks in part to Larry Ellison's hard work and rapacious libido, databases are to be found everywhere. They lie at the bottom of most web applications and in nearly every bit of business software. We're all using databases all the time. But that's about to change. Chips with two and four processor cores are common and Intel hints that we'll eventually see hundreds of cores per chip, which brings us right back into the 1970s and '80s and the world of parallel computing. That's where databases start to screw up. More than just slow reads and writes, relational databases also create false dependencies between pieces of data. If one chunk of data (A) is dependent on another chunk of data (B), then no work can be done on A until all work on B is complete. While the database guys are busy figuring out how to add more and more concurrency internally, in reality when you take a few steps back and think of a large set of commodity boxes all executing a single data munching app, then no matter how sophisticated we get, the relational database will still effectively be a single thread to that app. To scale the Google search service, Google first had to free itself of the false dependencies. So they created MapReduce — a set of operations and a way to store the data for those operations while preserving the natural independence that is inherent in each problem, building the whole mess atop the Google File System. Google led the way but many other companies have followed suit, opening doors to a wide range of new ways of thinking about large-scale data manipulation. Suddenly there are different ways to store the data, new ways to write applications, and new places (thousands of cheap boxes) to run such applications.