Stiamo costruendo un algoritmo iterativo usando una serie di query SPARQL per ogni iterazione. Questo algoritmo funziona alla grande, ma stiamo riscontrando un problema di utilizzo della CPU. I motori SPARQL come Fuseki non sono realmente multithread; consentono l'esecuzione di più query simultanee in più thread, ma ogni singola query è a thread singolo. Dall'osservazione di alcune note di Fuseki, ho l'impressione che Fuseki non sia thread-safe, quindi non è un problema banale.Esistono implementazioni SPARQL filettate?
Poiché il nostro algoritmo è intrinsecamente seriale in termini di query SPARQL e ci interessa una sola esecuzione alla volta, esiste un motore SPARQL che può sfruttare, ad esempio, 32 core?
Fuseki è un filetto sicuro per progettazione. Se ci sono problemi, si prega di inviare una segnalazione di bug. – AndyS
@AndyS, da quello che ho capito è multithreaded nel senso che posso avere più thread ciascuno con la propria transazione. Tuttavia, non è possibile avere la stessa suddivisione della transazione tra più thread. Questo http://jena.apache.org/documentation/tdb/tdb_transactions.html dice che l'accesso multithread alla stessa transazione è limitato alla sola lettura (o un thread che fa le scritture), quindi il mio commento è che non è thread-safe (almeno per quello che voglio). Ho anche notato che il motore NON sfrutta più core per una singola query, che è quello che sto cercando, quindi la mia domanda. – Adam