【问题标题】:Creating Transactions With OrientDB-Gremlin使用 OrientDB-Gremlin 创建事务
【发布时间】:2016-08-16 11:48:18
【问题描述】:

我正在使用this 插件,以便我可以使用 tinkerpop 3.x 与 orient DB 交互。

我想知道如何创建不同的交易?

TitanDB 就像这样简单:

t1 = graph.newTransaction();
t2 = graph.newTransaction();
t3 = graph.newTransaction();

我用 OrientDB-Gremlin 尝试了以下操作:

t1 = graph.tx().createThreadedTx();
t2 = graph.tx().createThreadedTx();

并收到以下错误:

java.lang.UnsupportedOperationException: Graph does not support threaded transactions

这是否意味着获得不同事务的唯一方法是在不同线程的范围内打开它们?

【问题讨论】:

标签: orientdb gremlin tinkerpop3


【解决方案1】:

看起来好像 OrientDB 实现(我想您正在使用 this one)支持线程事务(即在 Titan 中使用 newTransaction() 或在 graph.tx().createThreadedTx() 的 TinkerPop 模型下创建的事务)。如果您打算在同一个事务上运行多个线程,则只需要线程事务。

如果您不需要(在大多数标准用例中您不需要),那么事务只是自动的并绑定到当前线程。换句话说,只要您调用读取或写入图形的方法,该线程上的事务就会“打开”,而一旦您调用graph.tx().commit()graph.tx().rollback(),该线程上的事务就会关闭。

这是否意味着获得不同事务的唯一方法是在不同线程的范围内打开它们?

是的 - 如果您希望同一个线程有两个单独的打开事务,我想您必须在两个单独的线程中启动它们。

【讨论】:

  • 我就是这么想的。谢谢斯蒂芬。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-18
  • 2016-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多