On 7/28/2014 12:06 AM, YouPeng Yang wrote:
>   No affense to your work,I am still confusing about the cache warm
> processing about your explanation.So I check the warm method of
> FastLRUCache as [1].
>   As far as I see,there is no values refresh during the the warm
> processing. the  *regenerator.regenerateItem* just put the old value to the
> new cache.

What the cache code does is pass the key and the value from the current
cache entry to the CacheRegenerator.regenerateItem method, which is
defined elsewhere when the cache is created.  I thought it was just the
key, but now that I look closer, it is both.  Exactly what is done with
that information is completely up to the regenerator object.  The cache
unit tests use a NoOpRegenerator, which simply populates the new cache
with the entire old entry, including the value.  That is not how things
work with the actual production caches, though.

With filterCache and queryResultCache, the key contains the query, and
the regenerator is set up to execute the query against the live index
and insert the new value in the new cache.  I've never looked deeply
into the regenerator code.

Thanks,
Shawn

Reply via email to