【发布时间】:2013-02-07 01:09:26
【问题描述】:
我们正在为每次迭代使用一组 SPARQL 查询构建迭代算法。该算法效果很好,但我们遇到了 CPU 利用率问题。像 Fuseki 这样的 SPARQL 引擎并不是真正的多线程;它们允许在多个线程中同时执行多个查询,但每个单独的查询都是单线程的。通过查看一些 Fuseki 注释,我得到的印象是 Fuseki 不是线程安全的,所以这不是一个小问题。
由于我们的算法在 SPARQL 查询方面本质上是串行的,而且我们对一次运行一个感兴趣,是否有一些 SPARQL 引擎可以利用 32 核?
【问题讨论】:
-
Fuseki 在设计上是线程安全的。如果有任何问题,请提交错误报告。
-
@AndyS,据我所知,它是多线程的,因为我可以有多个线程,每个线程都有自己的事务。但是,您不能在多个线程之间拆分相同的事务。这个jena.apache.org/documentation/tdb/tdb_transactions.html 表示对同一事务的多线程访问仅限于只读(或一个线程进行写入),因此我的评论是它不是线程安全的(至少对于我想要的)。我还注意到,引擎不会为单个查询利用多个核心,这正是我正在寻找的,因此是我的问题。