jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mueller (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-2524) Reduce memory usage of DocIds
Date Tue, 02 Mar 2010 09:19:27 GMT

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

Thomas Mueller commented on JCR-2524:
-------------------------------------

> Caching the most recently used DocIds and reuse them might help to reduce the memory
usage

+1

> DocIds that could be represented with a short instead of an int

According to my test, this will not reduce memory usage: http://h2database.com/p.html#da4c6a321d0dc84a2b7b96cdbf468a47

For the Sun JVM (JDK 1.5, 32 bit), objects with one field of type boolean, byte, short, character,
integer, and long all need 16 bytes. A small BigInteger uses 56 bytes, a small  BigDecimal
uses 32 bytes (probably re-uses the same BigInteger internally), and a String uses 24 bytes.
Object uses 8 bytes.

For JDK 1.6, 32 bit and 64 bit, it's a bit different: 20 bytes for an object, 24 bytes for
boolean - long.

For JDK 1.5, 64 bit, it's again different: 16 bytes for an object, 24 bytes for boolean -
long.


> Reduce memory usage of DocIds
> -----------------------------
>
>                 Key: JCR-2524
>                 URL: https://issues.apache.org/jira/browse/JCR-2524
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-core
>            Reporter: Marcel Reutegger
>            Priority: Minor
>         Attachments: JCR-2524.patch
>
>
> Implementations of DocIds are used to cache parent child relations of nodes in the index.
Usually there are a lot of duplicate objects because a DocId instance is used to identify
the parent of a node in the index. That is, sibling nodes will all have DocIds with the same
value. Currently a new DocId instance is created for each node. Caching the most recently
used DocIds and reuse them might help to reduce the memory usage. Furthermore there are DocIds
that could be represented with a short instead of an int when possible.

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