Neo Launches Open Source NoSQL Graph Database for Spring
Page 1 of 1
NoSQL type databases have become increasingly popular over the last several years as a way to deliver better scalability and performance. There are a number of different types of NoSQL databases, including a graph database structure, which is what open source startup Neo Technology is all about.
Neo Technology is the lead commercial sponsor behind the open source Neo4j NoSQL database. This week the company is launching its Spring Data Neo4j 2.0 release, bringing the database to the popular Spring Java framework. The company has also just completed raising $10.6 million in Series A funding.
"There is so much noise in the NoSQL space now, it's a term that isn't strictly defined," Emil Eifrem, CEO of Neo, told InternetNews.com.
In Eifrem's view, there are only four types of NoSQL databases: key value stores, BigTable types like Apache Cassandra, document databases like CouchDB and MongoDB, and the fourth is Graph databases like Neo4j.
"In the graph data model, there are nodes with type relationships across nodes," Eifrem said.
Eifrem said a graph database can then attach key value pairs to nodes and their relationship. He noted that the way nodes are connected is a first-class citizen in the graph data model.
In contrast with the concept of a traditional join that exists in traditional relational SQL type databases, Eifrem said there are some key underlying differences.
"What the relational guys did is work with a data model that is all tables that is optimized for access and that goes along with a table," Eifrem said.
For example, in the relational model, if you're looking for all the people in a table with an age greater than 20, that's an optimized query. Eifrem said that if you want to hop from one entity to another, that requires a join, which is a CPU-bound operation where you merge the entities that match your criteria from the first table with the second table.
"In contrast, with a graph database the only thing you do when you hop from one node to another is just have a direct pointer for access," Eifrem said. "You don't have to traverse an index or do a merge which leads to some amazing performance improvements.