Releases: mgnsk/evcache
Releases · mgnsk/evcache
v1.4.0
v1.3.0
- Implement
func (c *Cache) Set(key, value interface{}, ttl time.Duration)
- Use safe delete when expiring records to guard against concurrent
Evict/Fetch
"flap". The LFU eviction is kept flappy by reasoning that it's not likely that the least frequently used or eldest key is concurrently evicted and fetched again in separate steps.
v.1.2.0
- Increase safety, make invariants stricter.
- Clean up the ring implementation.
- Prevent Evict/Fetch "flap" when Fetch fails with an error and concurrently the same key is evicted and set again.
Normally the failed fetch will try to remove the stored record afterLoadOrStore
succeeds andFetchCallback
fails but will not if another record had been set under the same key. - Add tests for consistency under concurrent load.
v1.1.0
v1.0.1
v1.0.0
v0.1.4
v0.1.3
v0.1.2
evcache/v.0.1.1
Removes unused ttl
field from record struct
Breaks out record expiry into a separate method