Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which backend database Neo4j uses to store data?

I have worked on titan. I came to know that titan can take three databases as it's back-end. Now I am learning Neo4j. But, I am not getting just like titan uses Cassandra etc. at it's back-end; which database Neo4j uses at it's back-end. Or there is something other way to store Neo4j graph data

like image 446
Akshay Gaikwad Avatar asked Aug 16 '17 11:08

Akshay Gaikwad


People also ask

Where does Neo4j store its data?

Neo4j database files are persisted to storage for long term durability. Data related files located in data/databases/graph. db (v3. x+) by default in the Neo4j data directory.

What database does Neo4j use?

Neo4j is a graph database. A graph database, instead of having rows and columns has nodes edges and properties. It is more suitable for certain big data and analytics applications than row and column databases or free-form JSON document databases for many use cases. A graph database is used to represent relationships.

Which is used for store and retrieve data from Neo4j?

Cypher Query Language − Neo4j provides a powerful declarative query language known as Cypher. It uses ASCII-art for depicting graphs. Cypher is easy to learn and can be used to create and retrieve relations between data without using the complex queries like Joins.

How is data stored in graph database?

Graph data is kept in store files, each of which contain data for a specific part of the graph, such as nodes, relationships, labels and properties. Dividing the storage in this way facilitates highly performant graph traversals (as detailed above).


1 Answers

The book "Learning Neo4j", by Rik Van Bruggen says:

In the early days, Neo4j was not a full-on graph database management system — it was more like a graph library that people could use in their code to deal with connected data structures in an easier way. It was sitting on top of traditional, MySQL (and other) relational database management systems and was much more focused on creating a graph abstraction layer for developers than anything else. Clearly, this was not enough. After a while, the open source project took a radical decision to move away from the MySQL infrastructure and to build a graph store from the ground up. The key thing here is from the ground up. The entire infrastructure, including low-level components such as the binary file layout of the graph database store files, is optimized for dealing with graph data. This is important in many ways, as it will be the basis for many of the speed and other improvements that Neo4j will display versus other database management systems.

That is: currently Neo4j works over a native graph storage that is optimized and designed to store and manage graph structures.

You can know this internals of Neo4j reading the chapter 6 (Graph Database Internals) of the book "Graph Databases, New Opportunities for Connected Data", by Ian Robinson, Jim Webber & Emil Eifrem.

Also, you can download the books referred in this answer in the Neo4j's site.

like image 78
Bruno Peres Avatar answered Oct 16 '22 04:10

Bruno Peres