[concurrency-interest] Memory sensitive memoization

Dhanji R. Prasanna dhanji at gmail.com
Mon Jun 27 19:55:38 EDT 2011


On Tue, Jun 28, 2011 at 2:57 AM, Doug Lea <dl at cs.oswego.edu> wrote:

> On 06/27/11 11:47, Blair Zajac wrote:
>
>> Yes. A "Cache" is basically an enhanced concurrent map with an expiration
>>> policy. There are enough possibilities for how to expose and support
>>> expiration to have led us to stall for years on releasing one. We will
>>> revisit this for jdk8. In the mean time, guava MapMaker is a reasonable
>>> choice for many usages.
>>>
>>
>> As MapMaker has recently added support for specifying a maximum cache size
>> and a #expireAfterAccess() method, are there other missing features you
>> would
>> want to see in jdk8?
>>
>
> Among other issues:
> *  Should strict LRU be supported? (This can hurt scalability)
> *  Should eviction (optionally?) be handled by a dedicated thread?
>    (faster if extra cores are available, but unpredictable on
>    overloaded systems)
>

We definitely pushed for explicit eviction for MapMaker. It had advantages
in controlling the aggressiveness with which entries are evicted (add more
threads by ratio, for example) and also for more predictable eviction in
highly controlled environments like AppEngine.

Dhanji.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20110628/98c42a6c/attachment.html>


More information about the Concurrency-interest mailing list