[jboss-jira] [JBoss JIRA] Commented: (JBCACHE-971) Eviction policy based on adaptive replacement

Paul Cowan (JIRA) jira-events at lists.jboss.org
Wed Jan 9 18:53:43 EST 2008


    [ http://jira.jboss.com/jira/browse/JBCACHE-971?page=comments#action_12394445 ] 
            
Paul Cowan commented on JBCACHE-971:
------------------------------------

Hi all,

I have produced an AdaptiveReplacementPolicy implementation as part of a process of determining which eviciton policy best suits our needs, based on a real-life access data set. The code is rather horrible and would need a lot of cleanup to be able to be made available to the world at large (I'm tossing up whether I should contribute it to jboss or whether it should be a separate standalone open-sourced algorithm implementation with an Adapter to implement it as a jboss algorithm) but it seems to work well. On our dataset, it results in an ~10% decrease in cache misses compared to LFU. 

However, there's a more fundamental issue than code quality which prevents me from even attaching the very rough first-draft patch here -- the ARC algorithm is patented by IBM and hence there's a whole legal can-of-worms involved with doing so (I assume). There are a few patents which cover this area; US patent #6,996,676 is probably the main one I can find. This is the reason Postgres switched from ARC to 2Q (which is, as I understand it, patent-free) as a caching algorithm in version 8.0.2.

I am lodging a request with IBM to find out what's involved in obtaining a license to use this algorithm via their contact form at https://www.ibm.com/ibm/licensing/contact/patents.shtml -- I understand that they have a program to grant licenses to open source projects for certain patents -- and I will advise of their response. 

(The fact that this requires permission from IBM is one reason for possibly making this a non-jboss implementation, with a jboss 'bridge' -- then I might only need to obtain permission from IBM once and people who don't use jboss could still use that open-sourced implementation for other purposes. Fingers crossed they're interested)

In the meantime I also intend to look at implementing 2Q for JBoss Cache.

> Eviction policy based on adaptive replacement
> ---------------------------------------------
>
>                 Key: JBCACHE-971
>                 URL: http://jira.jboss.com/jira/browse/JBCACHE-971
>             Project: JBoss Cache
>          Issue Type: Feature Request
>      Security Level: Public(Everyone can see) 
>          Components: Eviction
>            Reporter: Manik Surtani
>         Assigned To: Mircea Markus
>             Fix For: 3.0.0
>
>   Original Estimate: 2 days
>  Remaining Estimate: 2 days
>
> Quote from Mircea Markus:
> There is an eviction policy algorithm more efficient than LRU (which I found quite popular) - Adaptive Replacement Policy. The basic idea is to not rely only on the time of last access to the node, but also on the number of time(frequency) a given node was accessed. Here it is a nice description of how it works: http://en.wikipedia.org/wiki/Adaptive_Replacement_Cache. 

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

        



More information about the jboss-jira mailing list