Benjamin Geer created JENA-1121:
-----------------------------------
Summary: Performance regression in Jena 3.0.1 / Fuseki 2.3.1
Key: JENA-1121
URL: https://issues.apache.org/jira/browse/JENA-1121
Project: Apache Jena
Issue Type: Bug
Components: Jena
Affects Versions: Fuseki 2.3.1, Jena 3.0.1, Jena 3.1.0, Fuseki 2.4.0
Environment: Mac OS X 10.10.5, iMac, 3.4 GHz Intel Core i7, 32 GB RAM
Reporter: Benjamin Geer
Priority: Critical
We seem to have encountered a severe performance regression in Jena 3.0.1 /
Fuseki 2.3.1 as compared with Jena 3.0.0 / Fuseki 2.3.0. A number of our
queries are running between 2 and 20 times slower. Here's one small example
with configuration for Fuseki. With Fuseki 2.3.0, the query below takes about
200 milliseconds. With Fuseki 2.3.1, it takes 9 seconds. I've also tried it
with the latest Fuseki snapshot
(apache-jena-fuseki-2.4.0-20160117.183513-33.zip), and got the same result as
with the 2.3.1 release.
Here's the test data and configuration:
https://www.dropbox.com/s/b9aepexij5e7noj/jena-performance-test.zip?dl=0
Here's the query:
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix knora-base: <http://www.knora.org/ontology/knora-base#>
SELECT DISTINCT
?resourceIri
?resourceLabel
(SAMPLE(?anyMatch) AS ?match)
WHERE {
BIND(STR("de") AS ?preferredLanguage)
BIND(STR("en") AS ?fallbackLanguage)
?s <http://jena.apache.org/text#query> 'Zeitglöcklein' .
MINUS {
?s knora-base:isDeleted true .
}
OPTIONAL {
?s a ?valueObjectType .
?valueObjectType rdfs:subClassOf+ knora-base:Value .
?resIri ?resourceProperty ?s .
?s knora-base:valueHasString ?literal .
OPTIONAL {
?resourceProperty rdfs:label
?preferredLanguageResourcePropertyLabel .
FILTER (LANG(?preferredLanguageResourcePropertyLabel) =
?preferredLanguage) .
}
OPTIONAL {
?resourceProperty rdfs:label ?fallbackLanguageResourcePropertyLabel
.
FILTER (LANG(?fallbackLanguageResourcePropertyLabel) =
?fallbackLanguage) .
}
OPTIONAL {
?resourceProperty rdfs:label ?anyLanguageResourcePropertyLabel .
}
BIND(COALESCE(str(?preferredLanguageResourcePropertyLabel),
str(?fallbackLanguageResourcePropertyLabel),
str(?anyLanguageResourcePropertyLabel)) AS ?propertyLabel)
BIND(CONCAT(STR(?valueObjectType), "|", STR(?propertyLabel), "|",
STR(?literal)) AS ?anyMatch)
MINUS {
?resIri knora-base:isDeleted true .
}
}
BIND(COALESCE(?resIri, ?s) AS ?resourceIri)
?resourceIri a ?resourceClass .
?resourceClass rdfs:subClassOf+ knora-base:Resource .
?resourceIri rdfs:label ?resourceLabel .
}
GROUP BY
?resourceIri
?resourceLabel
ORDER BY ?resourceIri
Best regards,
Benjamin Geer
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)