bbeaudreault commented on PR #5488:
URL: https://github.com/apache/hbase/pull/5488#issuecomment-1802853945

   I just pushed a commit which populates the cache on-demand, negating the 
need for any classpath traversal. I used our 
ConcurrentMapUtils.computeIfAbsent, which does a get followed by putIfAbsent. 
This means that under high concurrency it'd be possible to generate the 
function more than once, but this is ok -- it'll be GC'd. 
   
   I added some timings to the code, logged with debug logging. I ran this in 
prod, and creating the functions only takes 0-1ms in this context. I think it's 
faster than the old approach because we don't actually have to load the class 
(pass `false` to `Class.forName`). 
   
   So now we have no startup time problem, and extremely small upfront cost for 
the first time a filter/comparator is loaded. 


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to