[ https://issues.apache.org/jira/browse/JENA-2228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17464895#comment-17464895 ]
Andy Seaborne edited comment on JENA-2228 at 12/24/21, 10:57 AM: ----------------------------------------------------------------- I am running a benchmark of around 1500 queries. An example query is the following {code:java} SELECT (COUNT(*) AS ?count) WHERE { ?y <http://www.wikidata.org/prop/direct/P197> ?x . ?z <http://www.wikidata.org/prop/direct/P800> ?x . ?x <http://www.wikidata.org/prop/direct/P1366> ?v } LIMIT 10000{code} I don't think there is a class called PatternMatchTDB2, at least not according to IntelliJ. The NodeTupleTableFind(Tuple<NodeId>) accesses the NodeTable.find methods. The NodeTable has a single B+ tree that converts nodes to NodeIds using the B+ tree and NodeIds to Node by lookup in an ObjectFile. My concern is that the find methods in NodeTupleTable that take Nodes as parameters are never used. Because these methods access the TupleTable instead of NodeTable. The TupleTable has three TupleIndexes, one for each index order, I assume. To me, it seems like these three index orders are completely skipped, and only the single B+ tree in NodeTupleTable is used. was (Author: mrpekar): I am running a benchmark of around 1500 queries. An example query is the following {code:java} SELECT (COUNT(*) AS ?count) WHERE { ?y <http://www.wikidata.org/prop/direct/P197> ?x . ?z <http://www.wikidata.org/prop/direct/P800> ?x . ?x <http://www.wikidata.org/prop/direct/P1366> ?v } LIMIT 10000{code} I don't think there is a class called PatternMatchTDB2, at least not according to IntelliJ. The NodeTupleTableFind(Tuple<NodeId>) accesses the NodeTable.find methods. The NodeTable has a single B+ tree that converts nodes to NodeIds using the B+ tree and NodeIds to Node by lookup in an ObjectFile. My concern is that the find methods in NodeTupleTable that take Nodes as parameters are never used. Because these methods access the TupleTable instead of NodeTable. The TupleTable has three TupleIndexes, one for each index order, I assume. To me, it seems like these three index orders are completely skipped, and only the single B+ tree in NodeTupleTable is used. > Does Fuseki2 use TDB indexes or indexes for in-memory store? > ------------------------------------------------------------ > > Key: JENA-2228 > URL: https://issues.apache.org/jira/browse/JENA-2228 > Project: Apache Jena > Issue Type: Question > Components: Fuseki, TDB > Affects Versions: Jena 3.17.0 > Environment: I am running the jena-fuseki-server-3.17.0.jar file from > jena-fuseki2/jena-fuseki-server/target/ as follows > {code:java} > java -Xmx500g -jar fuseki-jenaclone.jar --tdb2 --loc=db/jena > --timeout=1000000 /jena &{code} > Reporter: Martin Pekár > Priority: Major > Fix For: Jena 3.17.0 > > > Based on logging messages inserted into various places in the indexes in the > TDB module (NodeTupleTableConcrete, TupleIndexBase, NodeTableNative, > BPlusTree), I can see that the B+ tree is only used once per query. I have > inserted logging messages for every finding method to see which classes are > used when querying. I would expect to the the B+ tree be used several times > per query. > > I use the error logging level, and I inserted logging in the class > constructors to make sure logging worked. I see construction of all the index > classes. -- This message was sent by Atlassian Jira (v8.20.1#820001)