You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Takayuki Ikeda (JIRA)" <ib...@incubator.apache.org> on 2008/05/15 14:49:55 UTC

[jira] Created: (IBATIS-508) Lock occurs when heavy traffic

Lock occurs when heavy traffic
------------------------------

                 Key: IBATIS-508
                 URL: https://issues.apache.org/jira/browse/IBATIS-508
             Project: iBatis for Java
          Issue Type: Bug
          Components: DAO
    Affects Versions: 2.3.0
         Environment: all platform
            Reporter: Takayuki Ikeda
            Priority: Minor


In heavy traffic , lock occurs at com.ibatis.common.beans.ClassInfo#getInstance in case of cacheEnabled = true.
It seems to be happend because of "double synchronized"

ClassInfo.java
---
private static final Map CLASS_INFO_MAP = Collections.synchronizedMap(new HashMap());

  public static ClassInfo getInstance(Class clazz) {
    if (cacheEnabled) {
      synchronized (clazz) {
---
I think we get more concurrency to access getInstance if the synchronized clause in getInstance method is deleted.
There is no side-effect to do this. 
#just created several useless ClassInfo objects :-)


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


[jira] Commented: (IBATIS-508) Lock occurs when heavy traffic

Posted by "Kai Grabfelder (JIRA)" <ib...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/IBATIS-508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12684015#action_12684015 ] 

Kai Grabfelder commented on IBATIS-508:
---------------------------------------

wow it sounds like it would be very reasonable to apply this patch. @Clinton or any over dev. could you apply it? Unfortunately it seems that I did not made it through the pmc commiter approval process ;-(

> Lock occurs when heavy traffic
> ------------------------------
>
>                 Key: IBATIS-508
>                 URL: https://issues.apache.org/jira/browse/IBATIS-508
>             Project: iBatis for Java
>          Issue Type: Bug
>          Components: SQL Maps
>    Affects Versions: 2.3.0
>         Environment: all platform
>            Reporter: Takayuki Ikeda
>            Priority: Minor
>         Attachments: iBATIS-508.patch
>
>
> In heavy traffic , lock occurs at com.ibatis.common.beans.ClassInfo#getInstance in case of cacheEnabled = true.
> It seems to be happend because of "double synchronized"
> ClassInfo.java
> ---
> private static final Map CLASS_INFO_MAP = Collections.synchronizedMap(new HashMap());
>   public static ClassInfo getInstance(Class clazz) {
>     if (cacheEnabled) {
>       synchronized (clazz) {
> ---
> I think we get more concurrency to access getInstance if the synchronized clause in getInstance method is deleted.
> There is no side-effect to do this. 
> #just created several useless ClassInfo objects :-)

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


[jira] Commented: (IBATIS-508) Lock occurs when heavy traffic

Posted by "Clinton Begin (JIRA)" <ib...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/IBATIS-508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12685362#action_12685362 ] 

Clinton Begin commented on IBATIS-508:
--------------------------------------

Kai, you have made it through... I've just been swamped with stuff in the last few months, and unfortunately dropped the ball.  I'll get on this over the weekend. 

Cheers,
Clinton

> Lock occurs when heavy traffic
> ------------------------------
>
>                 Key: IBATIS-508
>                 URL: https://issues.apache.org/jira/browse/IBATIS-508
>             Project: iBatis for Java
>          Issue Type: Bug
>          Components: SQL Maps
>    Affects Versions: 2.3.0
>         Environment: all platform
>            Reporter: Takayuki Ikeda
>            Priority: Minor
>         Attachments: iBATIS-508.patch
>
>
> In heavy traffic , lock occurs at com.ibatis.common.beans.ClassInfo#getInstance in case of cacheEnabled = true.
> It seems to be happend because of "double synchronized"
> ClassInfo.java
> ---
> private static final Map CLASS_INFO_MAP = Collections.synchronizedMap(new HashMap());
>   public static ClassInfo getInstance(Class clazz) {
>     if (cacheEnabled) {
>       synchronized (clazz) {
> ---
> I think we get more concurrency to access getInstance if the synchronized clause in getInstance method is deleted.
> There is no side-effect to do this. 
> #just created several useless ClassInfo objects :-)

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


[jira] Commented: (IBATIS-508) Lock occurs when heavy traffic

Posted by "Brian Lomeland (JIRA)" <ib...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/IBATIS-508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12683961#action_12683961 ] 

Brian Lomeland commented on IBATIS-508:
---------------------------------------

Forgot to add that IBATIS-508 affects iBATIS 2.3.4 and this patch is for the latest SVN version of the ClassInfo.java.

> Lock occurs when heavy traffic
> ------------------------------
>
>                 Key: IBATIS-508
>                 URL: https://issues.apache.org/jira/browse/IBATIS-508
>             Project: iBatis for Java
>          Issue Type: Bug
>          Components: SQL Maps
>    Affects Versions: 2.3.0
>         Environment: all platform
>            Reporter: Takayuki Ikeda
>            Priority: Minor
>         Attachments: iBATIS-508.patch
>
>
> In heavy traffic , lock occurs at com.ibatis.common.beans.ClassInfo#getInstance in case of cacheEnabled = true.
> It seems to be happend because of "double synchronized"
> ClassInfo.java
> ---
> private static final Map CLASS_INFO_MAP = Collections.synchronizedMap(new HashMap());
>   public static ClassInfo getInstance(Class clazz) {
>     if (cacheEnabled) {
>       synchronized (clazz) {
> ---
> I think we get more concurrency to access getInstance if the synchronized clause in getInstance method is deleted.
> There is no side-effect to do this. 
> #just created several useless ClassInfo objects :-)

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