[ 
https://issues.apache.org/jira/browse/ACCUMULO-4177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Josh Elser updated ACCUMULO-4177:
---------------------------------
    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

Committed! Thanks so much, [~ben.manes]. This is nice work.

I did run some trivial "benchmarks" locally with YCSB's workloadA (one 
iteration for LRU, and one for TinyLFU): https://paste.apache.org/xPrh. TinyLFU 
appears to have brought down average latency on reads which is nice (although 
p99 did increase), but these are far from definitive benchmarks. I think we 
should run some better tests and see if we want to make tinylfu the default.

Inspecting the logs, I did notice that the logging you added could be improved 
slightly for clarity. I filed ACCUMULO-4465 for that task.

And finally, in recognition of your contribution, I'd be happy to add you to 
our [contributor's page|http://accumulo.apache.org/people]. If you'd like to be 
added, (optionally) let me know of an org/TZ you'd like included in addition to 
your name. Thanks!



> TinyLFU-based BlockCache
> ------------------------
>
>                 Key: ACCUMULO-4177
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4177
>             Project: Accumulo
>          Issue Type: Improvement
>            Reporter: Ben Manes
>            Assignee: Ben Manes
>             Fix For: 2.0.0
>
>         Attachments: ACCUMULO-4177.patch
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> [LruBlockCache|https://github.com/apache/accumulo/blob/master/core/src/main/java/org/apache/accumulo/core/file/blockfile/cache/LruBlockCache.java]
>  appears to be based on HBase's. I currently have a patch being reviewed in 
> [HBASE-15560|https://issues.apache.org/jira/browse/HBASE-15560] that replaces 
> the pseudo Segmented LRU with the TinyLFU eviction policy. That should allow 
> the cache to make [better 
> predictions|https://github.com/ben-manes/caffeine/wiki/Efficiency] based on 
> frequency and recency, such as improved scan resistance. The implementation 
> uses [Caffeine|https://github.com/ben-manes/caffeine], the successor to 
> Guava's cache, to provide concurrency and keep the patch small.
> Full details are in the JIRA ticket. I think it should be easy to port if 
> there is interest.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to