gremlin - Janusgraph JanusGraphException 由于持久化期间的异常而无法提交事务
问题描述
我得到了janusgraph 0.4.0
apache.tinkerpop.gremlin 3.4.2
com.github.jespersm.spring-data-gremlin 1.0.0-SNAPSHOT
和寡妇 10
我尝试进行这样的测试
Graph graph = JanusGraphFactory.open("inmemory");
graph.traversal()
.addV("Org").iterate();
graph.traversal().tx().commit();
就这样
当我运行此测试(或之后的 JanusGraphFactory.open 和 tx().commit() 的任何测试)时,我得到了这个异常
[2019-11-18 16:50:56,774] INFO builder.ReadConfigurationBuilder: Set default timestamp provider MICRO
[2019-11-18 16:50:56,790] INFO idmanagement.UniqueInstanceIdRetriever: Generated unique-instance-id=c0a8014f15872-DESKTOP-DQPEHPP1
[2019-11-18 16:50:56,801] INFO diskstorage.Backend: Initiated backend operations thread pool of size 24
[2019-11-18 16:50:56,875] INFO kcvs.KCVSLog: Loaded unidentified ReadMarker start time 2019-11-18T13:50:56.873113Z into org.janusgraph.diskstorage.log.kcvs.KCVSLog$MessagePuller@6a0659ac
[2019-11-18 16:50:57,197] WARN consistentkey.ConsistentKeyLocker: Skipping outdated lock on KeyColumn [k=0x 16-165-160-118-108- 30- 80-101-114-115-111-238, c=0x 0] with our rid ( 99- 48- 97- 56- 48- 49- 52-102- 49- 53- 56- 55- 50- 45- 68- 69- 83- 75- 84- 79- 80- 45- 68- 81- 80- 69- 72- 80- 80- 49) but mismatched timestamp (actual ts 2019-11-18T13:50:57.094518Z, expected ts 2019-11-18T13:50:57.094518800Z)
[2019-11-18 16:50:57,198] ERROR database.StandardJanusGraph: Could not commit transaction [1] due to storage exception in system-commit
org.janusgraph.core.JanusGraphException: Could not execute operation due to backend exception
org.janusgraph.core.JanusGraphException: Could not commit transaction due to exception during persistence
at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.commit(StandardJanusGraphTx.java:1475)
at org.janusgraph.graphdb.tinkerpop.JanusGraphBlueprintsGraph$GraphTransaction.doCommit(JanusGraphBlueprintsGraph.java:297)
at org.apache.tinkerpop.gremlin.structure.util.AbstractTransaction.commit(AbstractTransaction.java:104)
at factograph.core.project.cypher.CypherTransformerTest.someError(CypherTransformerTest.java:159)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.janusgraph.core.JanusGraphException: Could not execute operation due to backend exception
at org.janusgraph.diskstorage.util.BackendOperation.execute(BackendOperation.java:56)
at org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.persist(CacheTransaction.java:91)
at org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.flushInternal(CacheTransaction.java:139)
at org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.commit(CacheTransaction.java:196)
at org.janusgraph.diskstorage.BackendTransaction.commit(BackendTransaction.java:150)
at org.janusgraph.graphdb.database.StandardJanusGraph.commit(StandardJanusGraph.java:717)
at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.commit(StandardJanusGraphTx.java:1464)
... 25 more
Caused by: org.janusgraph.diskstorage.locking.PermanentLockingException: Permanent locking failure
at org.janusgraph.diskstorage.locking.AbstractLocker.checkLocks(AbstractLocker.java:359)
at org.janusgraph.diskstorage.locking.consistentkey.ExpectedValueCheckingTransaction.checkAllLocks(ExpectedValueCheckingTransaction.java:175)
at org.janusgraph.diskstorage.locking.consistentkey.ExpectedValueCheckingTransaction.prepareForMutations(ExpectedValueCheckingTransaction.java:154)
at org.janusgraph.diskstorage.locking.consistentkey.ExpectedValueCheckingStoreManager.mutateMany(ExpectedValueCheckingStoreManager.java:72)
at org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction$1.call(CacheTransaction.java:94)
at org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction$1.call(CacheTransaction.java:91)
at org.janusgraph.diskstorage.util.BackendOperation.executeDirect(BackendOperation.java:68)
at org.janusgraph.diskstorage.util.BackendOperation.execute(BackendOperation.java:54)
... 31 more
Caused by: org.janusgraph.diskstorage.PermanentBackendException: Read 1 locks with our rid 99- 48- 97- 56- 48- 49- 52-102- 49- 53- 56- 55- 50- 45- 68- 69- 83- 75- 84- 79- 80- 45- 68- 81- 80- 69- 72- 80- 80- 49 but mismatched timestamps; no lock column contained our timestamp (2019-11-18T13:50:57.094518800Z)
at org.janusgraph.diskstorage.locking.consistentkey.ConsistentKeyLocker.checkSeniority(ConsistentKeyLocker.java:528)
at org.janusgraph.diskstorage.locking.consistentkey.ConsistentKeyLocker.checkSingleLock(ConsistentKeyLocker.java:454)
at org.janusgraph.diskstorage.locking.consistentkey.ConsistentKeyLocker.checkSingleLock(ConsistentKeyLocker.java:118)
at org.janusgraph.diskstorage.locking.AbstractLocker.checkLocks(AbstractLocker.java:351)
... 38 more
我正在尝试一切!
- 删除所有 m2 文件夹和 mvn clean + reimport,但这无济于事
- 由管理员重新加载想法并清理想法chache
- 我试图运行“bin/JanusGraph.sh clean”,但这并没有帮助
- 删除所有本地 gremlin 和 janusgraph 目录,然后重新加载它们
- 在stackoverflow JanusGraphException上发现了一点点:由于后端异常而无法执行操作,但无法理解这个解决方案中发生了什么,作者提到了什么“zip”以及它对他有什么帮助
请问有人知道答案吗???
这是一个非常奇怪的问题......
解决方案
我遇到了类似的问题,看起来配置选项 graph.timestamps 可以在配置文件中设置。
如果您要创建如下图:
Configuration conf = new PropertiesConfiguration(propertiesFileName);
Graph graph = GraphFactory.open(conf);
在 propertiesFileName 引用的文件中,您可以像这样设置配置选项:
graph.timestamps=NANO
这解决了我在 Windows 上的问题。
推荐阅读
- html - 固定标题与内容重叠,无法使用填充或边距修复它
- python - ValueError:检查目标时出错:预期dense_10的形状为(1,)但得到的数组形状为(19316,)
- python - 删除列表中的空白
- sql - 将表插入主查询表的语法
- php - php如何替换文章中的外部链接
- python - 由于“转换”,导入 matplotlib.animation 失败
- python - 为什么这个 oneliner 给我语法错误?
- node.js - 如何在 Nodejs 中将文件从 Web 下载到服务器端并在 ReactJs 中将其发送到客户端?
- r - 运行后测量R中代码块的运行时间
- python - 如何使用 Python 从 TFS REST API 获取信息?