Transactions 如何使用gremlinpython回滚gremlin事务?

Transactions 如何使用gremlinpython回滚gremlin事务?,transactions,gremlin,tinkerpop,janusgraph,gremlinpython,Transactions,Gremlin,Tinkerpop,Janusgraph,Gremlinpython,我是gremlin的新手,我正在尝试使用python库gremlinpython连接到Janus Graph 并且需要知道是否可以回滚事务 我发现单次遍历相当于单次事务(tinkerPop文档),遍历是在连接到gremlin服务器后创建的: g=traversal().withRemote(…) 所有与g有关的操作都在一个事务中执行 但我找不到在任何操作中发生错误时会发生什么。 是否可以回滚使用g进行的所有操作? gremlin server允许执行smth,如g.tx().rollback()

我是gremlin的新手,我正在尝试使用python库gremlinpython连接到Janus Graph 并且需要知道是否可以回滚事务

我发现单次遍历相当于单次事务(tinkerPop文档),遍历是在连接到gremlin服务器后创建的:
g=traversal().withRemote(…)
所有与g有关的操作都在一个事务中执行

但我找不到在任何操作中发生错误时会发生什么。 是否可以回滚使用g进行的所有操作?
gremlin server允许执行smth,如
g.tx().rollback()
g.tx().commit()
-回滚或批准事务,但是否可以使用gremlinpython执行此操作?

如果发生错误,gremlin server将自动为您回滚事务。如果成功,它将自动为您提交。“回滚”或“提交”的语义依赖于图形数据库(即,某些图形甚至在回滚时也可能提交部分事务),在JanusGraph的情况下,将进一步依赖于底层存储引擎(例如Cassandra、Hbase等)

谢谢大家!!可以肯定的是:如果我得到遍历,然后使用这个遍历创建两个顶点,第二个创建失败,那么这两个顶点将不会在JanusGraph中创建?我用的是JanusGraph和Cassandra backendI,我不认为你应该用Cassandra做这样的假设-它没有强酸保证。如果一个JanusGraph遍历的某些操作失败,您能推荐怎么做吗?我需要在失败后自动恢复:从导致失败的最后一步开始,或者撤消失败前完成的所有步骤一个可能的解决方案是构建应用程序,使所有的突变都是幂等的,然后如果失败,只需重试相同的遍历,直到成功。