3 ms·
The next problem will be when they get to having large numbers of servers in a region. Then two problems will manifest themselves. 1) The client will take lon
by jpollock 14y ago
The next problem will be when they get to having large numbers of servers in a region.
Then two problems will manifest themselves.
1) The client will take long enough to work through the list of servers that the wrong server is chosen simply because the connection is initiated first.
2) This design has all servers seeing all calls. The load represented by all the TCP connections hitting all of the servers will consume more and more of a server.
Neither is a problem you can solve by adding more servers. In fact, they are made worse by adding servers!
However, if you're charging per call, that's what they call a "good problem to have".
Nifty solution to the problem though.
- moxie 14y agoAgreed. We haven't run into this yet (and aren't charging at all, this is an OSS project), but I think that would be the point where you have to do one of two things: 1) Architect your DNS response to include a small sample of the total result set for the region, where the sample includes at least one switch from each micro-region. 2) Break down and introduce load balancers, so that there's on load balancer per micro-region, which fronts all of the switches within that micro-region. Fortunately an individual switch doesn't really do much (just shovel packets around), so the number of simultaneous calls a switch can handle is high enough that redundancy is more about availability than load.
- jpollock 14y agoIf you're not charging per call, how are you funding the servers?
- moxie 14y agoThey're grant funded, as is some ongoing development work.
- JshWright 14y agoI don't see how the license the software is released under is related to how much you charge to use the service...?
- moxie 14y agoFair enough, I should have been more specific. I was trying to imply that this is not a for-profit project, but you're correct, that's not what a software license communicates.