An interesting post on the NOSQL Group about what takes a storage to be considered NoSQL:
- SQL-the-language vs. alternate query languages
- A tabular model for data as opposed to one that is not (e.g. key-value, object, graph, â€¦)
- ACID vs. non-ACID
- Centralized vs. distributed/decentralized
In case we agree with the author, Johannes Ernst, then we might be tempted to conclude as he does:
Itâ€™s interesting to observe that any â€œNoSQLâ€ product could be â€œNoSQLâ€ in any number of these dimensions. [â€¦]
Which would also explain why so many â€œNoSQLâ€ products are so dissimilar to each other.
So, what makes it NoSQL?
Applying this to InfoGrid:
- InfoGrid does not use SQL-the-language. Otherwise, how could we do things such as blessing the same object with multiple types at run-time? (Example)
- InfoGrid uses a graph database model, not a tabular model, for the same reason Tim Berners-Lee decided that the entire world-wide-web could not fit into a relational database either.
- InfoGrid relaxes ACID. No truly distributed system that I know of has ever had ACID properties, nor wanted them. Too many things can go wrong.
- InfoGrid uses the “small pieces loosely joined” paradigm, not a top-down paradigm.
So if there are degrees of NoSQL-ness, InfoGrid scores high. (all while being able to run on top of a SQL database, if you wish — and no, that’s not a contradiction)