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

Shai Erera commented on LUCENE-4565:
------------------------------------

One data point about using a class with methods like getParent(), getChild() 
etc. I modified TestDirTaxoWriter.testConcurrency to check the parents too. I 
originally called TaxoReader.getParent() and ran with 100 iterations - took 160 
seconds to complete all iters. I then modififed the code to get the parents[] 
array once, and then do parents[ord] instead, time dropped to 60 seconds.

This is not a benchmark (TaxoReader.getParent() is not optimized to be 
inlined), but still a data point to refer to if we'll ever want to consider 
that.
                
> Simplify TaxoReader ParentArray/ChildrenArrays
> ----------------------------------------------
>
>                 Key: LUCENE-4565
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4565
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: modules/facet
>            Reporter: Shai Erera
>            Assignee: Shai Erera
>            Priority: Minor
>             Fix For: 4.1, 5.0
>
>         Attachments: LUCENE-4565.patch
>
>
> TaxoReader exposes two structures which provide information about a 
> categories parent/childs/siblings: ParentArray and ChildrenArrays. 
> ChildrenArrays are derived (i.e. created) from ParentArray.
> I propose to consolidate all that into one API ParentInfo, or 
> CategoryTreeInfo (a better name?) which will provide the same information, 
> only from one object. So instead of making these calls:
> {code}
> int[] parents = taxoReader.getParentArray();
> int[] youngestChilds = taxoReader.getChildrenArrays().getYoungestChildArray();
> int[] olderSiblings = taxoReader.getChildrenArrays().getOlderSiblingArray();
> {code}
> one would make these calls:
> {code}
> int[] parents = taxoReader.getParentInfo().parents();
> int[] youngestChilds = taxoReader.getParentInfo().youngestChilds();
> int[] olderSiblings = taxoReader.getParentInfo().olderSiblings();
> {code}
> Not a big change, just consolidate more code into one logical place. All of 
> these arrays will continue to be lazily allocated.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to