[Neo] Testing Neo4j recovery robustness

Mattias Persson mattias at neotechnology.com
Thu Feb 18 10:41:17 CET 2010


Robustness in Neo4j is top priority and that includes the recovery
procedure being very robust as well. Recently I've created a tiny
little test which at first inserts some data (in a tree-like
structure) and then lets loose a random number of threads which
modifies that tree in all ways possible with varying transaction
sizes. After a random period of time it does a kill -9 on the JVM,
tries to recover by starting it up... does kill -9 in the middle of
the recovery process as well! And then finally starts it up to see
that the neo4j store looks ok and is consistent.

The project is located at (qa=Quality Assurance):

 (svn co) https://svn.neo4j.org/qa/recovery-robustness

And is run with a simple:

 [recovery-robustness]$ ./run

It'll then go on and on until it finds any problem (if any) and
optionally send a mail about it. I've also created an AMI for it:
ami-fb6e8292 which you can start up with this script (as user data):


 #If you'd like it to mail to somewhere if it finds something...
 #export MAIL_TO=someone at somewhere.com
 su ubuntu -c "cd /home/ubuntu/code/test-suite && ./run"

If you feel that your computer has CPU cycles to spare and would like
to participate and make Neo4j better consider running this test and
hopefully improve it somehow... or even create more/other tests which
could trigger problems regarding the robustness of Neo4j.

Mattias Persson, [mattias at neotechnology.com]
Neo Technology, www.neotechnology.com

More information about the User mailing list