5 ms·
They mention that they use anycast rather than geoip-located DNS. (which itself would probably use anycast) I was under the impression that with anycast it was
by mnutt 14y ago
They mention that they use anycast rather than geoip-located DNS. (which itself would probably use anycast) I was under the impression that with anycast it was possible for routes to change mid-connection and you could end up with packets being routed to different datacenters as a result. Is there something they do to prevent this, or is it not a problem in practice?
- davidu 14y agoThat doesn't really happen in reality. Convergence is fast and as long as your datacenters are topologically disparate enough, you won't have random route selection changes outside of failures, in which case, the connection would have failed anyways. :-) And if you're really tricky, you can sync state between POPs and keep a connection moving if your application is aware of the state change. :-)
- eastdakota 14y agoYup. David knows what he's talking about.
- davidu 14y agoThat doesn't really happen in reality. Convergence is fast and as long as your datacenters are topologically disparate enough, you won't have random route selection changes outside of failures, in which case, the connection would have failed anyways. :-) And if you're really tricky, you can sync state between POPs and keep a connection moving if your application is aware of the state change. :-)
- jcr 14y agoRoutes change all the time. What you probably meant to say was destination or endpoint. If the destination of a route changes during a TCP session, there are two possible ways to handle it; shared state and retrying the connection. In a shared state setup, the old and new endpoints are communicating the 'state' of connections, so as long as the state is in sync when the old endpoint goes down, the new endpoint can pick up the connection without delays. This is the basic way arrays of stateful firewalls work together to provide redundancy. When a shared state system fails to keep state in sync, the application can fall back to retrying the connection. Retrying the connection incurs a larger delay than shared state systems, but it's handled transparently, so it's often not a big deal.