Oracle’s turn-about announcement of a NoSQL product wasn’t really surprising. When Oracle spends time and effort putting down a technology, you can bet that its secretly impressed, and trying to re-implement it in its back room. So Oracle’s paper “Debunking the NoSQL Hype” should really have been read as a backhanded product announcement. (By the way, don’t click that link; the paper appears to have been taken down. Surprise.)
I have to agree with DataStax and other developers in the NoSQL movement: Oracle’s announcement is a validation, more than anything else. It’s certainly a validation of NoSQL, and it’s worth thinking about exactly what that means. It’s long been clear that NoSQL isn’t about any particular architecture. When databases as fundamentally different as MongoDB, Cassandra, and Neo4J can all be legitimately characterized as “NoSQL,” it’s clear that NoSQL isn’t a “thing.” We’ve become accustomed to talking about the NoSQL “movement,” but what does that mean?
As Justin Sheehy, CTO of Basho Technologies, said, the NoSQL movement isn’t about any particular architecture, but about architectural choice. For as long as I can remember, application developers have debated software architecture choices with gusto. There were many choices for the front end; many choices for middleware; and careers rose and fell based on those choices. Somewhere along the way, “Software Architect” even became a job title. But for the backend, for the past 20 years there has really been only one choice: a relational database that looks a lot like Oracle (or MySQL, if you’d prefer). And choosing between Oracle, MySQL, PostgreSQL, or some other relational database just isn’t that big a choice.
Did we really believe that one size fits all for database problems? If we ever did, the last three years have made it clear that the model was broken. I’ve got nothing against SQL (well, actually, I do, but that’s purely personal), and I’m willing to admit that relational databases solve many, maybe even most, of the database problems out there. But just as it’s clear that the universe is a more complicated place than physicists thought it was in 1990, it’s also clear that there are data problems that don’t fit 20-year-old models. NoSQL doesn’t use any particular model for storing data; it represents the ability to think about and choose your data architecture. It’s important to see Oracle recognize this. The company’s announcement isn’t just a validation of key-value stores, but of the entire discussion of database architecture.
Of course, there’s more to the announcement than NoSQL. Oracle is selling a big data appliance: an integrated package including Hadoop and R. The software is available standalone, though Oracle clearly hopes that the package will be running on its Exadata Database hardware (or equivalent), which is an impressive monster of a database machine (though I agree with Mike Driscoll, that machines like these are on the wrong side of history). There are other bits and pieces to solve ETL and other integration problems. And it’s fair to say that Oracle’s announcement validates more than just NoSQL; it validates the “startup stack” or “data stack” that we’ve seen in many of most exciting new businesses that we watch. Hadoop plus a non-relational database (often MongoDB, HBase, or Cassandra), with R as an analytics platform, is a powerful combination. If nothing else, Oracle has given more conservative (and well-funded) enterprises permission to make the architectural decisions that the startups have been making all along, and to work with data that goes beyond what traditional data warehouses and BI technologies allow. That’s a good move, and it grows the pie for everyone.
I don’t think many young companies will be tempted to invest millions in Oracle products. Some larger enterprises should, and will, question whether investing in Oracle products is wise when there are much less expensive solutions. And I am sure that Oracle will take its share of the well-funded enterprise business. It’s a win all around.