Chapter 9. Backup and Restore
ElectricHarmony’s journey with Neo4j has been nothing short of transformative. What started as an experimental graph database to map artists, albums, and user preferences has quickly become a core component of their recommendation engine. The team has successfully built real-time music discovery, playlist curation, and artist relationship mapping, all powered by Neo4j’s ability to traverse complex connections at lightning speed.
But success comes with scale, and scale comes with risk.
As ElectricHarmony’s user base explodes, so does its graph database. Millions of relationships are created and updated daily, and downtime is no longer an option. Their engineering team has optimized queries, tuned indexes, and deployed Neo4j into production, yet one critical piece remains: a robust backup and recovery strategy.
The Write Path
Before diving into backup strategies, it’s essential to understand how Neo4j writes and persists data. The transaction lifecycle in Neo4j follows a structured sequence to ensure durability and consistency.
Figure 9-1 shows a high-level overview of the sequence.
Figure 9-1. Transaction lifecycle
Recall from Chapter 2 that a transaction starts when changes are made in the database. These changes are initially applied in memory and stored in the page cache, which acts as an intermediary layer before the data is eventually written ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access