[infinispan-issues] [JBoss JIRA] Updated: (ISPN-1078) Allow a non-String object as a locking key in LockSupportCacheStore
Trustin Lee (JIRA)
jira-events at lists.jboss.org
Thu Apr 28 03:12:18 EDT 2011
[ https://issues.jboss.org/browse/ISPN-1078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Trustin Lee updated ISPN-1078:
------------------------------
Fix Version/s: 5.0.0.FINAL
> Allow a non-String object as a locking key in LockSupportCacheStore
> -------------------------------------------------------------------
>
> Key: ISPN-1078
> URL: https://issues.jboss.org/browse/ISPN-1078
> Project: Infinispan
> Issue Type: Enhancement
> Components: Loaders and Stores
> Reporter: Trustin Lee
> Assignee: Trustin Lee
> Fix For: 5.0.0.CR1, 5.0.0.FINAL
>
>
> {{LockSupportCacheStore}} uses {{String}} as its locking key. It is OK as long as the locking key can be represented as a {{String}} without much conversion cost. However, it the extending {{CacheStore}} implementation uses other type such as {{byte[]}} as its primary key type, it will result in unnecessary conversion from byte[] to String to achieve fine grained locking. I found a similar problem in {{[BucketBasedStore|http://j.mp/m9tLwU]}} - it's converting an integer into a {{String}} unnecessarily.
> Therefore, I propose to generify LockSupportCacheStore:
> {code}
> /**
> * @param L the type of the locking key
> */
> public abstract class LockSupportCacheStore<L> ... {
> ...
> protected abstract String getLockFromKey(L key) throws CacheLoaderException;
> ...
> }
> {code}
> Then {{BuckedBasedCacheStore}} and the new {{CacheStore}} implementation I'm writing for ISPN-701 will be more efficient.
> Mircea, could you confirm if my idea doesn't break anything? Because it's not a backward compatible change, I'd like to get this done before cutting the first candidate release.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list