Skip to content

Maximum lock count exceeded when add edge #564

@overflowedstack

Description

@overflowedstack

Expected behavior 期望表现

使用gremlin 语句 直接 插入边, 每个request,插入100条。
gremlin 的片段如下。按道理应该能够插入数据。
g.V().hasLabel("Indicator").hasId("med_prior_131699411250").as("source").V().hasLabel("Product").hasId("1316994").as("target").addE("Indicator_RelateTo_Product").from("source").to("target").iterate();
g.V().hasLabel("Indicator").hasId("med_prior_131699811203").as("source").V().hasLabel("Product").hasId("1316998").as("target").addE("Indicator_RelateTo_Product").from("source").to("target").iterate();
g.V().hasLabel("Indicator").hasId("med_prior_131699811250").as("source").V().hasLabel("Product").hasId("1316998").as("target").addE("Indicator_RelateTo_Product").from("source").to("target").iterate();

Actual behavior 实际表现

提示锁超过最大值。

Caused by: com.baidu.hugegraph.exception.ServerException$ServerCause: java.lang.Error: Maximum lock count exceeded
at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReadLock(ReentrantReadWriteLock.java:585)
at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.tryLock(ReentrantReadWriteLock.java:799)
at com.baidu.hugegraph.util.LockUtil.lockRead(LockUtil.java:90)
at com.baidu.hugegraph.util.LockUtil.access$100(LockUtil.java:41)
at com.baidu.hugegraph.util.LockUtil$Locks.lockRead(LockUtil.java:188)
at com.baidu.hugegraph.util.LockUtil$Locks.lockReads(LockUtil.java:183)
at com.baidu.hugegraph.util.LockUtil$LocksTable.lockReads(LockUtil.java:249)
at com.baidu.hugegraph.util.LockUtil$LocksTable.lockReads(LockUtil.java:237)
at com.baidu.hugegraph.backend.tx.GraphTransaction.addEdge(GraphTransaction.java:516)
at com.baidu.hugegraph.structure.HugeVertex.addEdge(HugeVertex.java:295)
at com.baidu.hugegraph.structure.HugeVertex.addEdge(HugeVertex.java:60)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStep.map(AddEdgeStep.java:99)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStep.map(AddEdgeStep.java:49)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.MapStep.processNextStart(MapStep.java:37)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38)
at org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:198)
at org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2677)
at org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:176)
at org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48)
at org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin$iterate$0.call(Unknown Source)
at Script4.run(Script4.groovy:28)

Steps to reproduce the problem 复现步骤

  1. 一个request 构建 一百条 merge relation 的 gremlin语句。 然后用 hugeclient 发送gemline 语句到服务器。
    2、刚才开始 几个request 能够正确执行,但是遇到后面提示 上述lock 超过最大值的错误。

Status of loaded data 数据状态

Vertex/Edge summary 数据量

  • loaded vertices amount: 16万
    -loaded edges amount : 50万

Vertex/Edge example 数据示例

{type something here...}

Schema(VertexLabel, EdgeLabel, IndexLabel) 元数据结构

{type something here...}

Specifications of environment 环境信息

  • hugegraph version: 0.8.0
  • operating system: centos
  • hugegraph backend: cassandra 3.10

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions