|
|
|
|
|
by cmullaparthi
5543 days ago
|
|
Yes, it is possible. You have to ensure that every edge node is configured in such a way that it allows only a certain amount of traffic to a "inner" node. And if it finds that the inner node isn't as responsive as it should be, it has to scale back how much traffic it will accept. For real time traffic, where queuing doesn't make sense, there isn't anything else you can do really. |
|
Let's assume that we have 5 edge nodes and that each is configured to send t traffic. The total amount of traffic that they can send is 5t. If the inner node can handle 5t, you won't need to drop traffic in the network. However, you're likely to drop traffic unnecessarily at an edge node.
Suppose that you have 4t worth of traffic continuously. Clearly the inner node can handle that.
However, consider what happens if all of the traffic during hour n tries to enter the network at edge node n.
For example, during hour 0, node 1-5 see no traffic and node 0 sees 4t worth of traffic. By configuration, node 0 drops 3t and sends t to the inner node. Since none of the other nodes are sending any traffic, the inner node only sees t worth of traffic even though it could handle 5t.
You can try to get around this problem by dynamically configuring the edge nodes, but since they're as much as N apart and they're responding to presented demand, that configuration is always stale.
You can guarantee that you don't overload the inner node, but only if you're willing to waste some of its capability in some circumstances.