4 ms·
Great question. In the common case, the solution is to set low TTLs (time to live attributes: they tell the DNS server how long to cache the name) on the DNS re
by iigs 17y ago
Great question. In the common case, the solution is to set low TTLs (time to live attributes: they tell the DNS server how long to cache the name) on the DNS records, so they expire quickly.
You can also run a pair of "front end" servers at all times, and use magic in the back-end to replicate the DB between sites. Depending on the type of site in question this can be really easy or really hard.
Another (generally commercial hardware) solution is to receive the query to one DNS server. This DNS server waits to respond for a few milliseconds while it sends a copy of the query to the other DNS server. They have different answers for the question (dns-east will return the IP for www-east, likewise for dns-west and www-west). They return the answers at the same time, and the closer server "wins" by getting to the recipient faster. This is called GSLB, Global Server Load Balancing.
- pbhjpbhj 17y agoBut your GSLB requires your DNS server to be up, which it won't be if the datacenter blacks-out. Ditto if you're running a "pair of 'front end' servers". Shouldn't DNS records have a reserve address too then the client could decide if failure had occurred to use the alternate address?