On No SQL
On No SQL
Content
1. Patrick Linskey on "cloud store". 2. Kaj Arn on "NoSQL databases. 3. Michael Stonebraker on "NoSQL databases". 4. David Chappell on "Introducing Windows Azure". 5. Robert Charles Greene: Are object databases "NoSQL" technologies?. 6. Giuseppe Maxia: On the evolution of non-relational databases.
the gaps where most RDB alternatives fall flat. The way they do it, of course, is by getting rid of problematic features. I think that some of the hype has mis-identified these problematic features, though. Declarative queries (and full metamodel introspection) and secondary key support are really cool and critical features of all the popular relational databases. The cloud store users out there are doing a lot of extra work because of the absence of these features -- essentially re-implementing them in their application code. Imagine how horrible it'd be if you told a modern DB team that they needed to change their app to tune their database! So: what are cloud stores omitting that enable them to scale so well? There are two answers: - cloud stores are intentionally designed to scale. No* single points of failure, built-in support for consensus-based decisions, partitioning / replication as basic primitives, etc. Taking a codebase designed for a single server and evolving it to a multi-server solution is difficult, since single-machine assumptions often calcify into the implementation. - more importantly, cloud stores aren't fully ACID, in the traditional sense of the term. By re-casting the data storage problem in more amenable terms (eventual consistency, atomic operations (but not atomic sequences of operations), etc.), the different products can make acceptable trade-offs that traditional single-server ACID stores are simply designed to forbid. I'd love to see a comparison of established products like TeraData and Coherence to the various new cloud store projects. TeraData, in particular, does an interesting job of re-using the familiar SQL/JDBC model while making a lot of the same compromises and architectural decisions as the new set of cloud stores. (I'm less interested in -- and educated about -- the single-server nosql projects. These days, I believe that all single-server databases are basically equivalent, since if you are using a single server, your application is sufficiently simple that you should be able to be successful with any of a number of data storage models.) -Patrick Patrick Linskey has been involved in object/relational mapping and databases for the last decade. As the founder and CTO of SolarMetric, Patrick drove the technical direction of the company and oversaw the development of Kodo, through its acquisition by BEA. At BEA, Patrick led the EJB team in designing and implementing the WebLogic Server EJB 3.0 solution, and represented BEA on the JDO and EJB3 expert groups. He is a contributor to the Apache OpenJPA project. Since leaving Oracle, Patrick has worked on a number of projects, ranging from traditional three-tier web and mobile applications to C# peer - to - peer client applications with custom-designed distributed storage solutions. Labels: cloud stores, document stores, nosql databases, Patrick Linskey.
2
Michael Stonebreaker decided it was important to comment on this "movement" and gave an interesting NoSQL perspective here (courtesy of ACM). I largely agree with the technical elements of his perspective, though I would suggest as in the above, the slightly different perspective that the core message is, "one size does not fit all". I encourage the reader to then keep this in mind as they engage in a broader understanding of what these exciting new technologies provide. Also, it is worth pointing out, while many of the technologies involved in the NoSQL movement do sacrifice ACID as a means to achieve their end in both performance and scalability, most object databases are ACID compliant and one might argue are the original NoSQL movement. But lets not digress, as even Michal asserts, the NoSQL movement is not about SQL. So, while object databases are by and large "NoSQL" technologies, they are not a kind of Query-less technology. Indeed, while today`s modern object databases embrace the requirement for distributed parallel query processing, they also hold true to the core tenants of large scale distribution, object clustering and parallel processing all in the context of an ACID compliant transaction. These features surround a robust environment for dealing with arbitrarily complex object models, an area in which many of the NoSQL movement participants fall short. In summary, the "one size does not fit all" change in attitude is healthy and beneficial for all. To that end, the object database, a continuing NoSQL movement participant, is one more tool in the developers tool chest, enabling successful implementation of complex software systems of scale. Cheers, -Robert Robert Charles Greene, is V.P. Open Source Operations, at Versant Corporation. Labels: nosql databases, Robert Charles Greene.
organizations that can afford to employ a large number of developers to cope with the increased complexity of the applications. For the rest of us, relational databases are still the best way of storing data. Cheers Giuseppe
Giuseppe Maxia is a QA developer in MySQL community team. A system analyst with 20 years of IT experience, he has worked as a database consultant and designer for several years. He is a frequent speaker at open source events and he's the author of many articles. He lives in Sardinia (Italy).