在边和顶点上定位db并发

时间:2016-09-22 05:29:57

标签: java multithreading graph orientdb database-concurrency

我们一直在努力创建顶点,同时将它添加到新创建的类中,并在多线程环境中使用常规蓝图查询为其添加边缘,因为某些缓存会导致问题并且每次查询都会产生问题寻找旧版本的顶点。 我们尝试通过(graph.getrawGraph()。getLocalCache()。clear())从池中获取连接后禁用本地缓存。

但这似乎在某些情况下有效。 无论我们在哪里进行更新,我们都在使用事务和重试机制(以克服并发问题)。但不知何故,在某些地方旧版本被捕获,因此应用程序抛出空指针异常。

为了解决顶点存在的问题,我们通过使用命令选择查询来直接查询数据库: Iterable nodes =(Iterable)graph.command(new OCommandSQL(" SELECT * FROM v WHERE" + propName +" ='" + propValue +&# 34;'"))。执行();

这种方法很好用。但是现在这个查询返回给我们一个类值为null的顶点:v(null)[some @ Rid],但实际上在理想情况下它也应该带有类名。这会给边缘添加边缘带来困难。 请在这方面启发我们,以便处理这类情况的推荐程序。

谢谢和问候

Varun Tahin

0 个答案:

没有答案