我们有一个Neo4J 2.1.3数据库,我们有一个唯一性约束,创建如下:
CREATE CONSTRAINT ON(segment:SEGMENT)ASSERT segment.segmentId IS UNIQUE
当我们从浏览器测试时,它可以很好地检测违规行为,例如:
CREATE(n:SEGMENT {name:" duplicate",segmentId:110484})RETURN n
结果
节点589已经存在,标签为SEGMENT,属性为" segmentId" = [110484]
Neo.ClientError.Schema.ConstraintViolation
这很好。
我们有一个负载测试仪设置,每个盒子有3台机器和多个线程,使用Cypher over REST与Neo4J交谈,并使用事务端点创建类似于上面的内容(当然还有更多与我们应用程序相关的属性),并且始终在HA设置中写入Neo4J主站。
我们可以在该设置中可靠地重现多次违反Neo4J未捕获的唯一性约束,它们无错误地执行,并且在生成的数据库中,我们可以看到具有SEGMENT标签的多个节点以及segmentId属性的相同值(我们故意为我们的测试生成重复的segmentId值。
其他人遇到同样的问题?这是一个Neo4J错误吗?
感谢。