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•52m 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•45m ago
id guess that most resolvers have a least recently used (LRU) policy
stavros•44m ago
But they must still have a TTL, they can't just store stale records forever.
axeldelat•35m 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•33m ago
Yep, that's my mental model as well, thanks.
inigyou•8m 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•52m ago
BGP, on the other hand, propagates.
stavros•52m ago
processunknown•45m ago
stavros•44m ago
axeldelat•35m 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•33m ago
inigyou•8m ago