Repository navigation
v10.11.0
Memory cache refill from Redis and byte-bounded LRU (DEV-24150)
- The stacked cache refills earlier layers from a hit found in a later one, carrying the entry's own version and retention. A key invalidated in memory by a version bump is served from memory again after one Redis read. New optional
Cache.lookupmethod; third-party caches implementing onlygetkeep working and are never used as a refill source. - The in-process store is a deterministic least-recently-used cache bounded by estimated bytes (128 MiB) and records (20,000) by default, replacing the probabilistic cleanup.
PrezlyAdapter.connect({ memory: { maxBytes, maxRecords } })changes the bounds;ContentDelivery.inspectSharedMemoryCache()reports occupancy. - Redis renewal rewrites an entry only once it has consumed half of its lifetime, through a compare-and-swap Lua script, instead of an
EXPIREon every read. Entries from older releases are renewed on first read; not-found entries are never renewed. - Memory
setkeeps a newer entry over a late older write and skips entries larger thanmaxBytes.
Full changes: #1043