Запросы SPARQL одновременно в Java?

Я пишу тест 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

person Konrad Höffner    schedule 23.07.2012    source источник
comment
Вы смотрели библиотеки google-guava? У них есть довольно надежное расширение для Java Futures API. Я не уверен, что это то, что вы ищете   -  person Pradeep Gollakota    schedule 24.07.2012
comment
Спасибо! Но если я правильно понимаю, это расширение общего параллелизма, а не специфичное для SPARQL?   -  person Konrad Höffner    schedule 24.07.2012


Ответы (1)


Возможно, вы захотите взглянуть на инструмент с открытым исходным кодом, который я разработал в рамках своей работы и который моя компания выпустила под лицензией BSD, который называется довольно просто Эталонный анализ запросов SPARQL

В нем нет всех функций, которые вы ищете, но он использует Jena и имеет некоторые возможности для выполнения параллельных запросов с использованием среды параллелизма Java, поэтому должен предоставить вам полезный код для начала работы.

person RobV    schedule 24.07.2012
comment
Спасибо, обязательно посмотрю! - person Konrad Höffner; 26.07.2012