Skip to content

This is a benchmark of a Lock-Free LRU cache against locking implementations.

Notifications You must be signed in to change notification settings

ewang119/Lock-Free-LRU-Cache-Benchmarks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LRU Cache Benchmark

In this project, we benchmark the performance of four different implementations of a LRU-type cache:

  • Our implementation using the "lock-free locks" based DList and Hashmap from cmuparlay/flock (C++)
  • Our fine-grained locking implementation built on Intel TBB Hashmap and Scoped Locks (C++)
  • Caffeine Cache (Java)
  • Guava Cache (Java)

Benchmarking Setup

Variables Tested

  • Zipfian parameter for get/put key distribution (0.01, 0.75, 0.9, 0.99)
  • Number of threads used during benchmarking (1, 4, 16, 64, 128 (overclock))
  • Cache Size (100, 10000, 100000, 1000000)

Dependencies

  • CMake ≥ 3.13
  • C++17
  • OpenJDK 24.0.1
  • Maven 3.9.9
  • Google Benchmark
  • JMH
  • TBB
  • cmuparlay/flock
  • cmuparlay/parlaylib
  • dirtyzipf
  • YCSB
  • Caffeine
  • Guava

About

This is a benchmark of a Lock-Free LRU cache against locking implementations.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages