如何使用 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 等)。
我是 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 等)。