jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Böttcher (Commented) (JIRA) <j...@apache.org>
Subject [jira] [Commented] (JCR-3107) Speed up hierarchy cache initialization
Date Tue, 11 Oct 2011 13:09:11 GMT

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

Martin Böttcher commented on JCR-3107:
--------------------------------------

Writing the array every time the "doClose"-method is invoked may lead to some runtime issues
because the array can have a size of many megabytes. If the file is touched every time (even
if it's contents isn't changed) a backup mechanism will need to handle this persistence file
again and again.

Therefore it seems to be a better idea to write the file only once as soon as the initializer
finished.
                
> Speed up hierarchy cache initialization
> ---------------------------------------
>
>                 Key: JCR-3107
>                 URL: https://issues.apache.org/jira/browse/JCR-3107
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-core
>            Reporter: Martin Böttcher
>         Attachments: JCR-3107.patch
>
>
> Initializing a workspace can take quite a long time if there is a big number of nodes
and some search indexes involved. The reason is that the setup of the CachingIndexReader is
processed using chunks of a certain size (actually 400K) in order to reduce the memory footprint.
As soon as the number of documents exceeds this limit some operations (actually traversing
complete indexes) are performed again and again.
> It seems that the current algorithm "initializeParents" in the CachingIndexReader class
can't be optimized without increasing the memory consumption. Therefore it should be a promising
approach to persist the "state" of this class (actually it's main member array and map) and
reload it on startup.
> The "load" of the state can be done implicitly in the initializing phase of the cache.
This is obvious. The correct point of time to call the "save" operation isn't obvious at all.
I tried the "doClose" method of the class and it seems sufficient.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message