Releases: elastic/go-freelru
Releases · elastic/go-freelru
v0.16.0
v0.15.0
- Fixed regressions (race conditions) introduced with v0.14.0. Affected functions:
- Purge()
- PurgeExpired()
- SyncedLRU.Peek()
- SyncedLRU.Contains()
- SyncedLRU.Keys()
- ShardedLRU.Keys()
v0.14.0
DO NOT USE - INTRODUCES REGRESSIONS FIXED IN v0.15.0
- Update dependencies
- Add RemoveOldest()
- Add PurgeExpired()
- Keys() evict expired items, returned keys doesn't include expired keys any more
- Purge() now evicts all items
- Get(), Contains() and Peek() evict found item if expired
Release v0.13.0
- Fix addMetrics() of ShardedLRU
- Add stress test for ShardedLRU with lifetime
- Add a helping comment to the panic() call
v0.12.0
- Add
Metrics()
andGetMetrics()
toCache
interface
v0.11.0
- Improve ShardedLRU in speed
- Use one contiguous block of memory for ShardedLRU
- Improve and extend benchmarks
v0.10.0
- added linting via
golangci-lint
(usemake lint
) - added Github CI for running the linter, the tests and the benchmarks
v0.9.0
- Added
SyncedLRU
, a thread-safe exact LRU wrapped aroundLRU
for low concurrency situations. - Added
ShardedLRU
, a thread-safe sharded LRU to avoid lock contention for high concurrency situations. - Added parallel benchmarks.
- Added benchmarks of several other LRU/cache implementations.
v0.6.0
Rename package go_freelru
to freelru
.
v0.5.0
Fix a serious issue that broke insert-after-evict in the Add() function.