如何使用 gremlinpython 回滚 gremlin 事务?

How to rollback gremlin transaction using gremlinpython?

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

我发现单次遍历相当于单次交易(tinkerPop docs),遍历是在连接到gremlin服务器后创建的: g = traversal().withRemote(...) 并且 g 的所有操作都在单个事务中执行。

但是我找不到如果在任何操作中发生错误会发生什么。 是否可以回滚使用 g 进行的所有操作? gremlin 服务器允许做类似 g.tx().rollback()g.tx().commit() 的事情 - 回滚或批准交易,但是否可以使用 gremlinpython?

如果发生错误,Gremlin 服务器会自动为您回滚事务。如果成功,它将自动为您提交。 "rollback" 或 "commit" 的语义依赖于图数据库(即一些图即使在回滚时也可能提交部分事务)并且在 JanusGraph 的情况下将进一步依赖于底层存储引擎(例如Cassandra、Hbase 等)。