Database Reference
In-Depth Information
Additional features : FlockDB allows you to quickly page through result sets that contain
millions of entries and to archive and later restore previously archived graph edges. It uses
Kestrel as a loosely coupled, reliable message queue that picks a server at random to write
to, so there is no cross-server communication (no clustering, no multicast, etc.).
Neo4J
Neo4J is an ACID-compliant graph database optimized for very fast graph traversals. It's trans-
actional, supporting JTA/JTS, two-phase commit, deadlock detection, and MVCC. It has been in
production use since 2003, making it one of the older data stores presented here, and is capable
of scaling to billions of entities (nodes, edges, properties) in a single JVM.
Neo4J can be embedded as a small JAR file, so it's easy to get up and running and use in a flex-
ible way in your applications.
Website : http://neo4j.org
Orientation : Graph
Created : Created and used in production since 2003 by Neo Technologies. Version 1.0 was
released in February 2010.
Implementation language : Java
License : Apache GPLv3, with commercial licensing available for advanced features.
Distributed : Neo4J is partially distributed using RMI. Note that the free version of Neo4J
is not distributable to multiple machines.
Schema : Schema-less graph of nodes, edges, and optional properties
Client : There are a few options here. You can run Neo4J as a REST server so that you can
use simple HTTP operations with JSON; Neo4J has a shell client interface as well. There are
language bindings available for Java, Python, Ruby, Clojure, Scala, and PHP. See Neo4j.py
for the Jython and CPython interfaces, and Neo4jrb for the JRuby bindings. Neoclipse is a
plug-in to the Eclipse IDE that offers a graphical representation of your graph and an inter-
face with Grails.
Replication : As of this writing, Neo4J replication is still in the works. It uses a master/slave
replication design based on the one used in MySQL, where you can write to any slave in-
stance, and lock coordination and change distribution are handled by the master. You can
tune the consistency level desired, so you can achieve strong consistency by having Neo4J
write synchronously to the write master and slave, or you can improve performance using
eventual consistency by propagating writes to slaves asynchronously.
Search WWH ::




Custom Search