openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simon Droscher (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (OPENJPA-250) Reduce synchronization bottlenecks in data cache, metadata repository, and lifecycle event manager
Date Mon, 06 Jul 2009 21:45:14 GMT

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


Mime
View raw message