我有一个用例,在这个用例中,我从多个数据存储中检索到的数据构建了一个图表。每个数据存储都有自己的客户端库,该库构建表示特定数据存储数据的子图。
当前实现,因为,我没有任何并发需求,我在服务层中构建了一个图对象,并将其传递给每个客户端库,它们将使用相同的图形实例
新实现--满足SLA
为了满足SLA,我想同时从这些数据存储中提取数据。
编辑
如何使用对象
com.tinkerpop.blueprints.impls.tg.TinkerGraph的实例,在3个不同的线程之间共享,同时在3个不同的线程上从3个不同的存储中提取数据。每个线程还负责将数据添加到共享图实例中。发布于 2015-02-03 13:48:13
这取决于Graph接口的实现。例如,如果您使用的是TinkerGraph,它不能保证线程安全。Neo4jGraph使用一个ThreadLocal变量来管理事务,这意味着您可以使用多个线程共享同一个Neo4jGraph实例,而不会有任何问题。蓝图还允许通过ThreadedTransactionalGraph进行多线程事务处理。
但是您必须找到一个支持该函数的Graph。
https://stackoverflow.com/questions/28269763
复制相似问题