[ 
https://issues.apache.org/jira/browse/JCS-50?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12630433#action_12630433
 ] 

Aaron Smuts commented on JCS-50:
--------------------------------

I think that you can implement an LFU expiration policy using a treemap alone.  
You wrap all keys in an object that contains a usage count.  You create the 
treemap with a comparator that checks this value.  When you get an item, you 
update the usage count, remove it, and then put it back into the map.  You have 
to remove it, because the comparator won't be consistent with equals.  (I think 
that this should work).  This might be slow. . .  If it works, it would allow 
you to expire items that were less popular.  Here popularity would be the 
popularity over the life of the item.  It would be very hard to displace an old 
item that was once very popular.  Elvis might be stuck in the cache forever. . 
. .  

> 3 new memory caches
> -------------------
>
>                 Key: JCS-50
>                 URL: https://issues.apache.org/jira/browse/JCS-50
>             Project: JCS
>          Issue Type: Improvement
>          Components: Composite Cache
>    Affects Versions: jcs-1.4-dev
>         Environment: current jcs trunk
>            Reporter: Maxim Gordienko
>            Assignee: Aaron Smuts
>         Attachments: 0001-refactored-memory-cache-hierarchy.patch, 
> 0002-improve-performance-or-MRU-list.patch, 
> 0003-added-new-structure-PriorityList.patch, 
> 0004-added-new-FIFO-memory-cache.patch, 0005-added-LFU-memory-cache.patch, 
> 0006-added-Expiration-memory-cache.patch
>
>
> This is a refactoring/reformat of patch introduced in JCS-43.
> Patch is splitted in 6 parts
> 1) refactoring memory caches to achieve higher code reuse
> 2) refactoring MRU cache to use double linked list instead of LinkedList
> 3) introduction of new PriorityList structure
> 4-6) new caches FIFO, LFU, Expiration

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to