【问题标题】:SPARQL queries concurrently in Java?SPARQL 在 Java 中同时查询?
【发布时间】:2012-07-23 14:05:42
【问题描述】:

我正在编写一个 JUnit 测试来检查大约一百个 SPARQL 查询的结果。

for(String query: queries)
{
 QueryEngineHTTP qe = new QueryEngineHTTP(endpoint, query);
 ResultSet rs = qe.execSelect();
 while(rs.hasNext()) {...}
}

为了优化性能,我想并行执行一些查询,但不是同时执行所有查询。 Jena 或其他库中是否有这种机制?我可以使用线程池,但我想优化的解决方案会更好,因为它可以:

  • 最小化开销
  • 在存在此类协议的情况下,一次将所有查询发送给服务器,从而最大限度地减少延迟
  • 指定每个端点的最大并发查询数,这样如果我有 50 个 DBpedia 查询和 50 个 LinkedGeoData 查询,它将一次运行 5 个
  • 近似查询的运行时间,以便它可以首先启动更快的查询
  • 确定最适合 SPARQL 端点缓存的查询顺序

【问题讨论】:

  • 你看过 google-guava 库吗?它们对 Java Futures API 进行了非常强大的扩展。我不确定这是不是你要找的东西
  • 谢谢!但是,如果我理解正确,它是对一般并发性的扩展,而不是特定于 SPARQL?

标签: java sparql jena


【解决方案1】:

您可能想看看我在工作中开发的一个开源工具,我的公司在 BSD 许可下发布了它,简称为 SPARQL Query Benchmarker

它没有您正在寻找的所有功能,但它使用 Jena 并具有利用 Java 并发框架进行并发查询的一些能力,因此应该为您提供一些有用的代码来帮助您入门。

【讨论】:

  • 谢谢,我一定会看看的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多