【发布时间】:2019-11-30 09:51:13
【问题描述】:
我也为此提出了GitHub issue。在下面粘贴相同的内容。
- JanusGraph 版本 - janusgraph-0.3.1
- Cassandra - cassandra:3.11.4
当我们使用 Cassandra 后端运行 JanusGraph 时,一段时间后,JanusGraph 开始抛出以下错误并进入不可用状态。
JanusGraph 日志:
466489 [gremlin-server-exec-6] 信息 org.janusgraph.diskstorage.util.BackendOperation - 临时异常 在后端操作 [EdgeStoreKeys] 期间。 正在尝试退避重试。 org.janusgraph.diskstorage.TemporaryBackendException: 存储后端临时故障在 io.vavr.API$Match$Case0.apply(API.java:3174) 在 io.vavr.API$Match.of(API.java:3137) 在 org.janusgraph.diskstorage.cql.CQLKeyColumnValueStore.lambda$static$0 (CQLKeyColumnValueStore.java:123) 在 io.vavr.control.Try.getOrElseThrow(Try.java:671) 在 org.janusgraph.diskstorage.cql.CQLKeyColumnValueStore.getKeys (CQLKeyColumnValueStore.java:405)
原因:com.datastax.driver.core.exceptions.ReadFailureException: 一致性 QUORUM 读取查询期间 Cassandra 失败(1 个响应 是必需的,但只有 0 个副本响应,1 个失败) 在 com.datastax.driver.core.exceptions.ReadFailureException.copy(ReadFailureException.java:130) 在 com.datastax.driver.core.exceptions.ReadFailureException.copy(ReadFailureException.java:30)
Cassandra 日志:
警告 [ReadStage-2] 2019-07-19 11:40:02,980 ReadCommand.java:569 - 读取 用于查询 SELECT * FROM 的 74 个活动行和 100001 个墓碑单元 janusgraph.edgestore WHERE column1 >= 02 AND column1
错误 [ReadStage-2] 2019-07-19 11:40:02,980 StorageProxy.java:1896 - 扫描超过 100001 个墓碑 在查询期间 'SELECT * FROM janusgraph.edgestore WHERE column1 >= 02 AND column1
问题:
1) Edge 更新是否存储为导致墓碑的新项目? (因为 janus 是 Titan 的一个分支)。 How to increment Number of Visit count in Titan graph database Edge Label? https://github.com/JanusGraph/janusgraph/issues/934
2) 正确的方法是什么。 ?
任何解决方案/适应症都会非常有帮助。
[更新]
1) 更新边缘不会导致 JanusGraph 中的墓碑。
2) 解决方案: - 根据答案,根据边/顶点的删除将 gc_grace_seconds 降低到较低的值。 - 也可以根据需要考虑调整cassandra.yaml中的“tombstone_failure_threshold”。
【问题讨论】:
标签: cassandra graph-databases titan janusgraph