[ http://issues.apache.org/jira/browse/DERBY-2122?page=all ]

Knut Anders Hatlen updated DERBY-2122:
--------------------------------------

    Attachment: derby-2122-v2.diff
                derby-2122-v2.stat

New and simpler patch attached (v2). This patch keeps the compatibility arrays 
and builds bit masks from the arrays when the lock type objects are created. I 
had to move the definition of the compatibility arrays to make their values 
visible in the constructors (the constructors are called from static 
initializers, so the definition order of the static final variables matters).

Derbyall and the JUnit tests ran cleanly. Please review.

> Optimize ContainerLock.isCompatible()
> -------------------------------------
>
>                 Key: DERBY-2122
>                 URL: http://issues.apache.org/jira/browse/DERBY-2122
>             Project: Derby
>          Issue Type: Improvement
>          Components: Store, Performance
>    Affects Versions: 10.2.1.6
>            Reporter: Knut Anders Hatlen
>         Assigned To: Knut Anders Hatlen
>            Priority: Trivial
>         Attachments: derby-2122-v1.diff, derby-2122-v1.stat, 
> derby-2122-v2.diff, derby-2122-v2.stat
>
>
> The numbers at http://wiki.apache.org/db-derby/Derby1961MethodCalls indicate 
> that ContainerLock.isCompatible() is called many times per transaction, at 
> least when there are multiple concurrent clients operating on the same 
> containers. Currently, it looks into a two-dimensional array to find out 
> whether two locks are compatible. This could be implemented more efficiently, 
> for instance by having a bit pattern in each ContainerLock object 
> representing which lock types it is compatible with.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to