(disclosure: i work for neo4j)<p>This paper is a bit unrelated to Neo4j.  Neo4j is an ACID-compliant native graph database.  It is not a &quot;specialized graph analytic engine.&quot;<p>Neo4j stores the graph data on disk (and caches in memory) as nodes and relationships. After index lookups to find the start points in the graph, all traversals of relationships are done in constant time -- allowing it to scale with linear performance characteristics, regardless of the size of the graph.<p>The referenced paper cites two main reasons that RDBMS would be better for the analytics use cases: (1) ability to express graph queries in SQL and (2) performance of executing those queries.<p>(1) Cypher is, like SQL, a declarative language.  However, it represents graph constructs in a much more natural way -- &quot;ASCII art for graphs.&quot;  There&#x27;s significant praise from developers on the web of the benefits of Cypher for traversing graphs, which is why we decided to open up the language: <a href="http:&#x2F;&#x2F;www.opencypher.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.opencypher.org&#x2F;</a><p>(2) As Neo4j isn&#x27;t really intended as an analytics engine, its performance characteristics are not included in this paper.  However, (expensive) indexes do not need to be created and maintained for every relationship in Neo4j.  Similarly, these indexes do not need to be accessed for traversal (also expensive).