fapifta edited a comment on issue #705: HDDS-3249: renew 
ContainerCache.INSTANCE in order to test it in a fresh state
URL: https://github.com/apache/hadoop-ozone/pull/705#issuecomment-603260761
 
 
   Great, thank you for the follow up. +1 for the current state. (non-binding)
   
   I completely agree we can fix this problem by just removing the isfull 
assertion, as that is testing the LRUMap functionality, and follow up in 
further tickets for additional improvements.
   
   About LoadingCache:
   LoadingCache is a guava utility, it provides and LRU cache, and provides 
facilities to create the instances that are cached, and also guava provides 
facilities to configure how the cache works.
   What we need to consider before replacing is that why the ContainerCache is 
implemented in a way where you can not evict a DB instance from the cache if 
there is a reference for it.
   Looking at all the usages of BlockUtils getDb and removeDB methods, all the 
cached instances are accessed for just short term, and even though creating an 
instance might be costly, with the default 1024 cache size if the LoadingCache 
evicts the least recently used item when the cache is full, we do not suffer a 
huge perf hit, while in the current implementation if the cache is full, then 
we get an exception, so I would definitely trade this off.
   
   With LoadingCache which just have a size restriction, we can have the same 
cache functionality, if we get rid of reference counting which I think we do 
not need, as we use the instances just for short periods of time, so most of 
the time they are in the cache with a zero reference count, and can be evicted. 
If we still want to ensure that in extreme cases when the cache is pressured, 
and all items in the cache are referenced, we can use weakValues() in the guava 
cache to prevent eviction in this case, but this does not seem to be relevant 
based on the usage of the cached items.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to