[ https://issues.apache.org/jira/browse/JENA-1988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17237642#comment-17237642 ]
Martin Pekár commented on JENA-1988: ------------------------------------ Right, I understand. But wouldn't it be possible to have an instance of _baseTable_ for each node type? Then, whenever __idForNode_ is called, I use the appropriate instance base on the type of node passed to the method. When I call __retrieveNodeByNodeId_, can't I search all instances of _baseTable_, even though this wouldn't improve computation time? > 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)