Операции параллельной записи в GraphDB Free и Standard Edition - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь запустить несколько запросов SPARQL параллельно в Ontotext GraphDB. Эти запросы идентичны, за исключением именованного графа, из которого они читают. Я попытался использовать многопоточное решение в Scala для параллельного запуска 3 запросов к базе данных (см. Рисунок ниже).

Проблема в том, что я использую бесплатную версию GraphDB, которая поддерживает только одно ядро ​​для операций записи. Кажется, это означает, что запросы, которые должны выполняться параллельно, в основном просто ставятся в очередь для работы с одним ядром. Как вы можете видеть, первый запрос завершил 41 145 операций за 12 секунд, но ни один из двух других запросов не завершился. Как только первый запрос завершится, второй запрос будет выполнен до конца, а когда он завершится, будет запущен третий.

Я понимаю, что это вероятное поведение для Free Edition. Мой вопрос заключается в том, разрешит ли обновление до Standard Edition эту проблему и позволит ли запросы фактически выполняться параллельно? Исходя из документации, которую я посмотрел, кажется, что для Standard Edition можно выполнить несколько ядер для выполнения операций записи. Однако я также увидел кое-что, что подразумевало, что одиночные запросы записи, запущенные против Standard Edition, будут автоматически обрабатываться на нескольких ядрах, что может сделать многопоточность устаревшей в любом случае?

Кто-нибудь имеет опыт запуска параллельных операций записи с GraphDB а умеет весить? 1007

Screenshot of running 3 queries in parallel

1 Ответ

0 голосов
/ 30 января 2020

Вы можете найти разницу на официальной странице статистики GraphDB 9.1: http://graphdb.ontotext.com/documentation/standard/benchmark.html.

...