JanusGraphException: не удалось зафиксировать транзакцию из-за исключительной ситуации во время сохранения. Причина: PermanentLockingException: локальная конкуренция за блокировку - PullRequest
1 голос
/ 16 января 2020

У меня высокоуровневый код, подобный этому.

MethodXyz() {

updateVertex(A, props1)
commit
// some other code

updateVertex(A, props2)
commit

// do something else - long running
}

Этот метод вызывается из 10+ разных потоков для разных вершин, в частности через Java поток ExecutorSerevice, инициализированный с 10+ потоками

Я получаю исключение, как показано ниже, во 2-м коммите в вышеприведенном методе из 4-5 потоков случайным образом из 10+ все время.

Я не использую никаких ограничений уникальности для свойства вершины

Я определил свойство вершины "name" как тип данных String, который c уникален (код приложения гарантирует эту уникальность без использования каких-либо уникальных ограничений при создании ключа свойства в Janusgraph)

Однако я строю индекс, используя этот ключ свойства "имя"

используется схема схемы по умолчанию - явная схема не определена

Я пытаюсь выяснить, почему возникает исключение постоянной блокировки, хотя разные потоки обновляют совершенно разные вершины (взаимоисключающие), а также почему исключение блокировки, когда нет ключа свойства, определенного как уникальный для использования любых блокировок janusgrpah.

org.janusgraph.core.JanusGraphException: Не удалось зафиксировать транзакцию из-за исключения во время сохранения в org.janusgraph.graphdb.transaction.StandardJanusGraphTx.commit (StandardJanusGraphTx. java: 1385) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] в org.janusgraph.graphdb.tinkerpraphGprintsJpr $ GraphTransaction.doCommit (JanusGraphBlueprintsGraph. java: 272) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] at org. apache .tinkerpop.gremlin.structure.util.AbstractTransaction.commit (AbstractTransaction . java: 104) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] at com.fujitsu.fn c .mlpce.tetopology.impl.GraphDBService.commit (GraphDBService. java: 509) [119: com.fujitsu.fn c .mlpce.tetopology.impl: 5.2.0.SNAPSHOT]

Причина: org.janusgraph.core.JanusGraphException: неожиданное исключение на org.janusgraph.graph db.database.StandardJanusGraph.commit (StandardJanusGraph. java: 806) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] в org.janusgraph.graphdb.transaction.StandardJanusGraphTx.commit (StandardJanusGraphT. *: 1374) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] ... еще 17 Вызывается: org.janusgraph.diskstorage.locking.PermanentLockingException: Локальная конкуренция блокировок в org .janusgraph.diskstorage.locking.AbstractLocker.writeLock (AbstractLocker. java: 327) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] в org.janusgraph.diskstorage.locking.consistentkey.ExpectedValueCireckingStore (ExpectedValueCheckingStore. java: 103) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] в org.janusgraph.diskstorage.keycolumnvalue.KCVSProxy.acquireLock (KCVSProxy. java: 52) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] at org.janusgraph.diskstorage.BackendTransaction.acquireIndexLock (BackendTransaction. java: 256) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] t org.janusgraph.graphdb.database.StandardJanusGraph.prepareCommit (StandardJanusGraph. java: 572) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] в org.janusgraph.graphdb.database.Standardmitananus (StandardJanusGraph. java: 702) [488: org.janusgraph.janusgraph-core: 5.2.0.SNAPSHOT] ... еще 18

jansugraph 0.2.0 с бэкэндом кассандры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...