如何最好地在Grakn中批量插入查询?

问题描述

批处理Grakn插入查询的最佳实践是什么?

来自docs

“将每个事务的操作数保持在最低限度。尽管从技术上讲,在多次操作之后可以一次提交写事务,但不建议这样做。为避免冗长的回滚,内存不足和操作冲突,最好使每个事务的查询数量保持最少,最好是每个事务一个查询。”

另一方面,我听说每次提交建议进行500-1000个查询

可能的收益,瓶颈和风险是什么?

解决方法

通常,我们希望使用许多小型轻量级事务,并尽可能将其保留为建议的建议。但是,在版本低于2.0的Grakn版本中,通过将查询批处理到更大的事务中仍然可以显着提高速度,每个查询可以在提交前插入500-1000个概念。

在2.0之前的Grakn版本中,Grakn的存储系统具有相对昂贵的打开和提交事务操作,在2.0及以后的版本中,该操作应轻得多。通过使用小型事务,对于由于某种原因(例如,由于与其他写入事务发生冲突)而导致事务失败的情况,您还可以进行较小的重试操作。