Hi everyone,

I am currently testing neo4j (1.0-b9)as a persistence layer for an app.
I have encountered an strange problem.

I have two threads creating relations at the same time (both open
transactions)

(0 is root node)

T1(main): Begin transaction --> create relationship 0 -> 1 --> Close
Transaction --> Begin transaction --> create relationship 1 -> 2 -->
create T2 --> wait for T2 --> set property 2 --> .... --> Close
Transaction --> ....
T2: Begin transaction --> create relationship 0 -> 3 --> set property 3
--> Close Transaction

T1 is waiting for T2 to end, but it never does because of a deadlock.
Why is there such a deadlock? The nodes are not the same (concurrent
transactions for 1->2 and 0->3 creation).

This does not occur during this situation
(0->1, 0->3 exist in database, 0 is root node)

T1(main): Begin transaction --> obtain node 1 --> Close Transaction -->
Begin transaction --> create relationship 1->2 --> create T2 --> wait
for T2 --> set property 2 --> .... --> Close transaction --> ....
T2: Begin transaction --> Obtain 3 --> set property 3 --> Close
Transaction

In this case both transactions commit correctly.

Is there a global lock in neo4j when creating relationships?

Thanks for your help,
--
Daniel Martínez











_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to