Wir erstellen einen iterativen Algorithmus mit einer Reihe von SPARQL-Abfragen für jede Iteration. Dieser Algorithmus funktioniert gut, aber wir stoßen auf ein CPU-Auslastungsproblem. SPARQL-Engines wie Fuseki sind nicht wirklich Multithread; Sie ermöglichen die Ausführung mehrerer simultaner Abfragen in mehreren Threads, aber jede einzelne Abfrage ist single threaded. Beim Betrachten einiger Fuseki-Notizen habe ich den Eindruck, dass Fuseki nicht threadsicher ist, also ist das kein triviales Problem.Gibt es SPARQL-Implementierungen mit Threads?
Da unser Algorithmus in Bezug auf die SPARQL-Abfragen inhärent seriell ist und wir uns für einen Lauf nach dem anderen interessieren, gibt es eine SPARQL-Engine, die beispielsweise 32 Kerne nutzen kann?
Fuseki ist durch das Gewinde sicher. Wenn es Probleme gibt, reichen Sie bitte einen Fehlerbericht ein. – AndyS
@AndyS, von dem, was ich erfahre es ist Multithread in dem Sinne, dass ich mehrere Threads jeweils mit ihrer eigenen Transaktion haben kann. Sie können jedoch dieselbe Transaktion nicht auf mehrere Threads verteilen. Diese http://jena.apache.org/documentation/tdb/tdb_transactions.html besagt, dass der Multithread-Zugriff auf dieselbe Transaktion auf schreibgeschützt beschränkt ist (oder ein Thread, der Schreibvorgänge ausführt), daher mein Kommentar, dass es nicht Thread-sicher ist (zumindest für was ich will). Ich merke auch, dass die Engine nicht mehrere Kerne für eine einzelne Abfrage nutzt, was ich suche, daher meine Frage. – Adam