[ 
https://issues.apache.org/jira/browse/JENA-1988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17228822#comment-17228822
 ] 

Andy Seaborne commented on JENA-1988:
-------------------------------------

The cache is {{NodeTableCache}}

A database will have a stack of {{NodeTable}} implementations 
{{NodeTableInline}} > {{NodeTableCache}} > {{NodeTableNative}} (and 
{{NodeTableTRDF}} for TDB2).

See {{DatasetBuilderStd.buildNodeTable}} (TDB1) and 
{{TDB2StorageBuilder.buildNodeTable}} (TDB2).
 
Also - while the {{Index}} (a map) is in fact a {{RangeIndex}} (sorted map), in 
TDB2 this is tied up with the transaction mechanism.

Do you have figures for the cost of the node table to you?


> Separating B+ tree into different Node representations.
> -------------------------------------------------------
>
>                 Key: JENA-1988
>                 URL: https://issues.apache.org/jira/browse/JENA-1988
>             Project: Apache Jena
>          Issue Type: Question
>          Components: TDB
>    Affects Versions: Jena 3.16.0
>            Reporter: Martin Pekár
>            Priority: Major
>              Labels: features, newbie, performance, test
>             Fix For: Jena 3.16.0
>
>         Attachments: NodeTableNative.java
>
>
> In a project to optimize the indexing, I am trying to have 4 indexes, one for 
> each Node type (variable, literal, URI and blank). To implement this, I added 
> 4 copies of the _nodeHashToId_ Index instance in the _NodeTableNative_ class. 
> Then, for every operation on the _nodeHashToId_, for example using 
> _containsNode()_ in the NodeTableNative class, I first check the type of Node 
> given as parameter and then check for existence in the appropriate 
> _nodeHashToId_ copy.
> Now, for some reason I get a NullPointerException when running the tests. 
> Many of these exceptions appear in the _BufferChannelFile_ class in the 
> _size()_ method because the call to _file.channel()_ return null.
> My question is then, is _NodeTableNative___ even the right place to implement 
> this optimization, and second, if it is the right place to implement, can you 
> help me understand why this exception is thrown?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to