> My understanding is this: And it is wrong. Consider the following snippet:
GraphDatabaseService graphDb = new EmbeddedGraphDatabase("var/base"); Transaction tx = graphDb.beginTx(); Node firstNode = graphDb.createNode(); Node secondNode = graphDb.createNode(); System.out.println(firstNode.getId()); System.out.println(secondNode.getId()); secondNode.delete(); Node thirdNode = graphDb.createNode(); System.out.println(thirdNode.getId()); tx.success(); tx.finish(); tx = graphDb.beginTx(); Node fourthNode = graphDb.createNode(); System.out.println(fourthNode.getId()); tx.success(); tx.finish(); graphDb.shutdown(); If the id pool was reused after a successful commit() (success() in the above code) as I described then, on a new db, this should print 1 2 3 2 but instead it prints 1 2 3 4 The id 2 is reused upon restart of the db. That will teach me to speak without checking first. What I did wrong is left as an exercise for tomorrow. cheers, CG _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user