You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Simon Droscher (JIRA)" <ji...@apache.org> on 2009/07/06 23:45:14 UTC

[jira] Issue Comment Edited: (OPENJPA-250) Reduce synchronization bottlenecks in data cache, metadata repository, and lifecycle event manager

    [ https://issues.apache.org/jira/browse/OPENJPA-250?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12727793#action_12727793 ] 

Simon Droscher edited comment on OPENJPA-250 at 7/6/09 2:44 PM:
----------------------------------------------------------------

We found that caching performance hits a bottleneck with threads blocking on MetaDataRepository.getMetaData(). The changes in this issue looked to be the kind of thing that would help, but the original patch was for OpenJPA 0.9.x and a lot has changed in the code since then. Much of the patch was getting rid of classes in the org.apache.openjpa.lib.util.concurrent package and using edu.emory.mathcs.backport.java.util.concurrent classes instead. This looks to have been done at some other time in the code, using the standard java.util.concurrent package instead.

So I went through all the code affected by the original patch and made similar changes as appropriate, basically changing a lot of synchronized methods to use  blocks that lock and unlock using the ReentrantReadWriteLock() and  ReentrantLock() classes.

The resultant patch file is attached. This was found to give a much more scalable performance, we no longer have threads blocked on MetaDataRepository.getMetaData().

      was (Author: sdroscher):
    Patch file for OpenJPA 1.2.1 based on original patch for OPENJPA-250
  
> Reduce synchronization bottlenecks in data cache, metadata repository, and lifecycle event manager
> --------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-250
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-250
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: build / infrastructure, datacache, jdbc, kernel, lib, query
>    Affects Versions: 0.9.0, 0.9.6, 0.9.7
>            Reporter: Patrick Linskey
>         Attachments: OPENJPA-250.patch, sync-121.patch
>
>
> Parts of the data cache, metadata repository, and lifecycle event manager are over-synchcronized. This should be resolved.

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