Hacker News new | ask | show | jobs
by toast0 23 days ago
a) different DNS systems get the change out to all the authoritatives different ways. Some of them with much delay. Delays are hopefully minimal on modern systems, but I've worked with bad systems where you change dns in the api and it takes minutes and sometimes hours for the authoritatives to start returning new results; traditional notify/axfr based systems often have a queue of several seconds at least.

b) as resolver caches expire, new queries will hopefully get new answers (as long as the authoritatives get updated per a), and eventually you get the new results everywhere except for resolvers that do terrible things...

When the change is made and it takes time for the results to show up everywhere, I think propagate is a reasonable verb. You could use disperse or diffuse or something else, but you need a verb to let people know it's going to take time for your changes to be visible everywhere.

I don't know that propagate necessary implies the change becomes visible in an orderly way. 'Around the globe' doesn't really either, it's just observing from around the globe as resolvers get new data.

What verb do you prefer to use to describe how unsychronized caches obtain new values?

3 comments

> Delays are hopefully minimal on modern systems

The delays are almost always self inflicted by people who've blindly put 36400 in the TTL field like some sort of magic charm rather than considering how long they want the cache expiry to be. Long ago I was one of them and then I had the company greybeard point out that DNS record updates are a thing we had control over - just drop the TTL to 30 seconds or whatever a day before a planned change of servers and (barring the odd stubborn resolver which thinks it knows better than you do) the time it takes for those caches to refresh goes from 24 hours to 30 seconds.

djbdns/tinydns can schedule a change and give out a lower and lower TTL the nearer the changeover time gets - a quick search doesn't show any newer implementations but this is surely a good way to do it.
My interpretation of the concern is that propagate implies that the new value is being pushed out to other resolvers, when in fact those other resolvers pull the new value (once their cached value expires).
Percolate?