Saturday, May 14, 2011

Is Git a NoSQL Database?

Database scaling and performance consultant Markus Winand wrote a blog post criticizing NoSQL adoption for performance reasons. "Most SQL performance problems result out of improper indexing," he wrote. "But indexing is not only a SQL topic, it applies to NoSQL as well."

He goes on to say, however, that there are some cases in which you might want to use NoSQL; and he suggests that Git may actually be a NoSQL database.

Sponsor

Winand gives the following reasons:

Git doesn't have an SQL front end

Git doesn't use an SQL back-end

Git is distributed

Conflicts happen anyway

"I'm not aware of a minimum feature set for NoSQL datastores--it's therefore hard to tell if Git fulfils them or not," Winand writes. We're still working on the second and third parts of our ReadWriteWeb Guide to Data Terminology, but the definition of NoSQL seems pretty loose - pretty much any non-relational data store is a "NoSQL" data store, especially those that are distributed.

And it's not unheard of to use Git as the backend for an application. For example, the Node.js driven blog engine Wheat uses Git as its data store.