Hacker News new | ask | show | jobs
by stavros 6 hours ago
Why does the cache mean "nobody requested this in a while, I can drop it" rather than "this may have changed upstream, I'll drop it"?
2 comments

The server you poll may delegate the request to a server that has the old data in cache. Now the old data is in two caches.
id guess that most resolvers have a least recently used (LRU) policy
But they must still have a TTL, they can't just store stale records forever.
You're right, it's TTL not LRU. The authoritative server publishes a TTL with the record — "you may keep this for N seconds" — and when it's up the resolver has to ask again no matter how popular it is.

LRU does show up in resolvers, but as memory management: cache is full, evict the least recently used early. It can only make something disappear sooner than its TTL, never later.

It's time-based because there's no back-channel. An authoritative server has no idea who's holding a copy of its records, so it can't push an invalidation.

Yep, that's my mental model as well, thanks.