[ 
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)

Reply via email to