Skip to content

v2.1.0

Compare
Choose a tag to compare
@bitfaster bitfaster released this 11 Sep 02:29
· 326 commits to main since this release
f4cfa6b

What's Changed

  • Added ConcurrentLfu, a .NET implementation of the W-TinyLfu admission policy. This closely follows the approach taken by the Caffeine library by Ben Manes - including buffered reads/writes and hill climbing to optimize hit rate. A ConcurrentLfuBuilder provides integration with the existing atomic value factory and scoped value features.
  • To support ConcurrentLfu added the MpscBoundedBuffer and StripedMpscBuffer classes.
  • To support ConcurrentLfu added the ThreadPoolScheduler, BackgroundThreadScheduler and ForegroundScheduler classes.
  • Added the Counter class for fast concurrent counting, based on LongAdder by Doug Lea.
  • Updated ConcurrentLru to use Counter for all metrics and added padding to internal queue counters. This improved throughput by about 2.5x with about 10% worse latency.
  • Added DebuggerTypeProxy types to customize the debugger view of FastConcurrentLru, ConcurrentLru, FastConcurrentTLru, ConcurrentTLru and ConcurrentLfu.
  • API documentation is now included in the NuGet package. Provided documentation for all public APIs.
  • Rewrote and corrected bugs in the throughput analysis tests, which now support Read, Read + Write, Update and Evict scenarios.

Full changelog: v2.0.0...v2.1.0