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
error.

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


Mime
View raw message