There is no such thing as DNS propagation, only DNS cache invalidation, and by polling it, you are making your old records stay in more caches and for longer.
BGP, on the other hand, propagates.
stavros•1h 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"?
processunknown•1h ago
id guess that most resolvers have a least recently used (LRU) policy
stavros•1h ago
But they must still have a TTL, they can't just store stale records forever.
axeldelat•51m ago
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.
stavros•50m ago
Yep, that's my mental model as well, thanks.
inigyou•24m ago
The server you are polling from may delegate the request to a server that has the old data in cache. Now the old data is in two caches.
inigyou•1h ago
BGP, on the other hand, propagates.
stavros•1h ago
processunknown•1h ago
stavros•1h ago
axeldelat•51m ago
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.
stavros•50m ago
inigyou•24m ago