jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christoph Kiehl (JIRA)" <j...@apache.org>
Subject [jira] Updated: (JCR-1041) Avoid using BitSets in ChildAxisQuery to minimize memory usage
Date Mon, 30 Jul 2007 15:57:53 GMT

     [ https://issues.apache.org/jira/browse/JCR-1041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Christoph Kiehl updated JCR-1041:

    Attachment: avoid_using_bitsets.patch

This patch introduces a few new classes for the handling of hits. In essence this patch does
two things:

1. It tries to use int arrays instead of BitSet to reduce memory consumption. If a BitSet
is more efficient than an int array it switches to using a BitSet instance.
2. The nameTestHits are only created lazily by wrapping the nameTestScorer in a Hits instance.
3. The calculation if the index of a childnode is valid is only done if the corresponding
hit is requested.

In our internal tests the query execution performance didn't suffer but is much better for
ChildAxisQueries with a large number of matching child nodes.

> Avoid using BitSets in ChildAxisQuery to minimize memory usage
> --------------------------------------------------------------
>                 Key: JCR-1041
>                 URL: https://issues.apache.org/jira/browse/JCR-1041
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: query
>    Affects Versions: 1.3
>            Reporter: Christoph Kiehl
>            Assignee: Christoph Kiehl
>         Attachments: avoid_using_bitsets.patch
> When doing ChildAxisQueries on large indexes the internal BitSet instance (hits) may
consume a lot of memory because the BitSet is always as large as IndexReader.maxDoc(). In
our case we had a query consisting of 7 ChildAxisQueries which combined to a total of 14MB.
Since we have multiple users executing this query simultaneously this caused an out of memory

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message