Hello Tidy Bot, Marton Greber, Alexey Serbin, Attila Bukor, Kudu Jenkins, Abhishek Chennaka,
I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/20607 to look at the new patch set (#21). Change subject: KUDU-613: Introduce SLRU cache ...................................................................... KUDU-613: Introduce SLRU cache This patch introduces the SLRU cache that has two internal segments, the probationary and protected, to protect the cache from long/random reads. The SLRU cache has a parameter named 'lookups_threshold_' that determines the minimum amount of times an entry can be accessed before it's upgraded to the protected segment. Any random scans would then only evict entries from the probationary segment. Both the protected and probationary segment have their own configurable capacities. When the protected segment is at capacity, any entries evicted will be added to the MRU end of the probationary segment. Metrics will be added in a follow-up patch. Ran cache benchmarks for RELEASE build. Used default flag values in cache-bench. Build ran locally on macOS, 6 cores and 2.6GHz. Here are some benchmark numbers for SLRU cache: Test case | Algorithm | Lookups/sec | Hit rate ZIPFIAN ratio=1.00x | LRU | 11.01M | 99.8% ZIPFIAN ratio=1.00x | SLRU | 10.62M | 99.9% ZIPFIAN ratio=3.00x | LRU | 11.06M | 95.9% ZIPFIAN ratio=3.00x | SLRU | 9.69M | 95.9% UNIFORM ratio=1.00x | LRU | 8.54M | 99.7% UNIFORM ratio=1.00x | SLRU | 6.18M | 99.7% UNIFORM ratio=3.00x | LRU | 6.53M | 33.3% UNIFORM ratio=3.00x | SLRU | 4.99M | 33.3% Change-Id: I45531534a2049dd38c002f4dc7982df9fd46e0bb --- M src/kudu/util/CMakeLists.txt M src/kudu/util/cache-bench.cc M src/kudu/util/cache.cc M src/kudu/util/cache.h A src/kudu/util/slru_cache-test.cc A src/kudu/util/slru_cache.cc A src/kudu/util/slru_cache.h 7 files changed, 1,486 insertions(+), 5 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/07/20607/21 -- To view, visit http://gerrit.cloudera.org:8080/20607 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I45531534a2049dd38c002f4dc7982df9fd46e0bb Gerrit-Change-Number: 20607 Gerrit-PatchSet: 21 Gerrit-Owner: Mahesh Reddy <mre...@cloudera.com> Gerrit-Reviewer: Abhishek Chennaka <achenn...@cloudera.com> Gerrit-Reviewer: Alexey Serbin <ale...@apache.org> Gerrit-Reviewer: Attila Bukor <abu...@apache.org> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mahesh Reddy <mre...@cloudera.com> Gerrit-Reviewer: Marton Greber <greber...@gmail.com> Gerrit-Reviewer: Tidy Bot (241)