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.

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.

What do you think? Is Git a NoSQL database?