Notable changes in Neo4j 2.1.2:
- Cypher uses indexes for resolving WHERE clauses which use the IN operator
- Resolves a recovery issue, where multiple forced-restarts in a row, without clean shutdown or log rotation in between, could lead to some transactions not being replayed on recovery
- Neo4j Browser now defaults to long intervals of heartbeat pings to server, lowering CPU use and network traffic
- Corrects a critical issue that can occur during migration from previous Neo4j releases, which could lead to incorrect record structures if the previous store had a large volume of deleted data
A concern about Neo4j 2.1.1
Shortly after the release of Neo4j 2.1.1, we discovered a critical issue that can occur during the upgrade of particular stores. While initial analysis suggested that the issue would impact only a small percentage of deployments, our product and engineering teams deemed it appropriate to pull the download and delay its availability, as a precaution while we sought to understand the scope of the issue and begin work toward a resolution. We now have a clear understanding of the issue and have released an update, Neo4j 2.1.2, which corrects this.
What to do now
If you have downloaded Neo4j 2.1.1, we strongly urge you to check if you have been affected by this issue, which will occur when migrating a data store from Neo4j 2.0 versions. The problem we have identified happens when a large amount of data has been deleted prior to migration. You can follow the following procedure to determine whether your application has encountered an issue. This procedure relies on a utility that is not present in Neo4j Community Edition. Community Edition users may use an evaluation license of Neo4j Enterprise 2.1.2 for the purpose of carrying out this check.
Checking your graph:
- Backup your database as described in the Neo4j Manual.
- The neo4j-backup tool will conduct a consistency check which will reveal any problems.
- There’s an excellent DZone article, by Mark Needham, which describes some of the details.
- If a problem is detected, please revert to an earlier (pre-2.1.1) backup.
What we’re doing now
Our team at Neo4j remains committed to pushing the envelope whilst ensuring the quality expected of software used in mission-critical applications. Every commit to GitHub triggers a cascade of punishing tests covering every aspect of the database. Extensive unit tests are followed by long running stress tests, which simulate heavy load and recovery in a variety of adverse conditions.
Every day, our community deploys Neo4j in new applications across a wide range of industries. It is the feedback from this community that helps with the development of new features in Neo4j, and in further improving the scope and depth of our product testing. We have now augmented our quality testing with additional upgrade tests, which includes a variety of obfuscated real life production stores and even more diverse generated stores.
We thank you for using Neo4j and for being part of our community.
— the Neo4j Team
Want to learn more about graph databases? Click below to get your free copy of O’Reilly’s Graph Databases ebook and discover how to use graph technologies for your application today.
Download My Ebook
About the Author
Andreas Kollegger, Senior Product Designer
Andreas Kollegger is a technological humanist. Starting at NASA, Andreas designed systems from scratch to support science missions. Then in Zambia, he built medical informatics systems that complement technology with social good. Now with Neo4j, he is democratizing graph databases which elevate understanding by emphasizing relationships.
Andreas joined Neo4j as an early member of core engineering. He has now taken on the role of Senior Product Designer, crafting a developer experience that balances simplicity with power.