blob: 2547df979d0baf6a9f942477f1e907d4fe8fecbe [file] [log] [blame]
// Package lru provides three different LRU caches of varying sophistication.
// Cache is a simple LRU cache. It is based on the
// LRU implementation in groupcache:
// TwoQueueCache tracks frequently used and recently used entries separately.
// This avoids a burst of accesses from taking out frequently used entries,
// at the cost of about 2x computational overhead and some extra bookkeeping.
// ARCCache is an adaptive replacement cache. It tracks recent evictions as
// well as recent usage in both the frequent and recent caches. Its
// computational overhead is comparable to TwoQueueCache, but the memory
// overhead is linear with the size of the cache.
// ARC has been patented by IBM, so do not use it if that is problematic for
// your program.
// All caches in this package take locks while operating, and are therefore
// thread-safe for consumers.
package lru