[
https://issues.apache.org/jira/browse/OCM-69?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maxim Zinal updated OCM-69:
---------------------------
Attachment: OCM-69-sample.zip
OCM-69.patch
My patch to support global object cache.
Implementation notes:
1. Global object cache is application-defined, e.g. application needs to
properly implement a modified ObjectCache interface and pass a reference to its
custom implementation to ObjectContentManagerImpl
2. Supporting a global object cache relies on an application logic to deny
parallel modifications of one object by multiple threads. This can be achieved,
for example, by placing appropriate locks. These locks are also much required
to avoid concurrent modification errors from Jackrabbit's core.
3. A ZIP file contains an example implementation of application's global object
cache.
4. An application might need to cache some objects and not to cache others, in
order to avoid duplicating sub-bean contents of a container bean. This can be
achieved, for example, by adding some annotation or interface to cachable
objects and checking for that annotation or interface in a custom global cache
implementation code.
> Add support for global object cache
> -----------------------------------
>
> Key: OCM-69
> URL: https://issues.apache.org/jira/browse/OCM-69
> Project: Jackrabbit OCM
> Issue Type: Improvement
> Affects Versions: 2.0.0, 2.0.1
> Reporter: Maxim Zinal
> Priority: Minor
> Attachments: OCM-69-sample.zip, OCM-69.patch
>
>
> Loading large and deep-nested objects using Jackrabbit OCM can be really
> resource-consuming. Generally the process is mostly CPU-bound, if Jackrabbit
> bundle cache size is properly configured. Our measurements show that most of
> the time is spent on beanutils code setting object properties.
> For many applications it's pretty common to read the same data over and over
> again, with relatively low insert/update activity. Such applications will
> greatly benefit from global object cache, allowing to skip object load phase
> in 90% of all cases (or even more).
> I have added an experimental support for global object cache into
> jackrabbit-ocm based on current development version, and it works very good
> for our application.
--
This message was sent by Atlassian JIRA
(v6.2#6252)