【发布时间】:2015-12-03 10:02:41
【问题描述】:
我正在使用 Titan-1.0.0 测试批量加载
我在我的配置文件中设置了 storage.batch-loading=true
我在我的 java 程序中使用 TitanBlueprintsTransaction 来提高图形加载性能,它是多线程的。
我在加载过程中遇到 ConcurrentModificationException 异常,我的代码是这样的
在线程#1中,像这样使用titan复合索引搜索顶点
Iterator<TitanVertex> it = tx.query().has("key", key).vertices().iterator();
TitanVertex vtx = it.next();
在线程#2中,尝试在同一顶点添加边
tx.getVertex(v).addEdge(edgeLabel, target);
当一个线程打开一个迭代器,而另一个线程对同一个顶点进行修改时,可能会发生异常。我该如何解决这个异常?
【问题讨论】:
-
tx.query().has("key", key).vertices()和tx.getVertex(v)的返回类型是什么?? -
Iterable
和 TitanVertex -
您能否发布更多代码,例如创建和完成交易的位置?堆栈跟踪怎么样?
标签: java multithreading titan