DISQUS

Princeton S* Network Systems: CoralCDN Lesson: Fair-sharing bandwidth via admission control

  • Technology forum · 5 months ago
    thanks for this article.it helped in my project
  • trifilliate · 1 week ago
    I as well enjoyed this article. I am currently doing a project on bandwidth in one of my engineering classes and it's driving me insane lol. Thanks a bunch for this.
  • advnet · 4 months ago
    very nice article Thanks For Sharing nice Chart also its Really know about This....
  • nyccondoman · 1 month ago
    Thank you for the article. I was unaware of CoralCDN before reading this.
  • Rade Stanojevic · 3 weeks ago
    The UCSD paper on Distributed Rate Limiting deals with the problem of controlling the aggregate usage of a service (service = domain, in your context) across a set of distributed nodes so that performance (reject rate) at each node is equalized. Their solution indeed uses gossiping to collect the aggregate (accounting) usage that is used as a feedback on when to discard packets/requests.

    In this paper, we show that in fact one can solve the same problem, without collecting the aggregate info)and without any centralized controller). Namely, if every node updates its local limit based on its performance (QoS) and the performance of its few neighbors, eventually the system should converge to the state at which performance is equalized across all nodes.

    However, the problem you are facing in CoralCDN with multiple domains sharing finite resources seems way more challenging. Actually, it is not obvious to me what the objective would be and how to formalize the problem of bandwidth sharing in such context. Do you have any thoughts on this? I suspect that for appropriate performance objective, one might not need per node/domain accounting, but could rely on some adaptive decentralized controller to drive the system to the desired state with minimal communication overhead.
  • Mike Freedman · 3 weeks ago
    Rade,

    Thanks for the comment. The website for hamilton.ie seems offline, so I can't currently access your paper (Google HTML cache is a bit hard to read).

    That said, I haven't thought much about formally formulating the problem, much actually solving it, but I could imagine specifying the function something like this:

    For a given node:
    maximize \sum_{\forall_i} u (c_i)
    subject to
    c_i >= 0 // allocated capacity to site i is non-negative
    c_i <= d_i // site i's allocated capacity <= demand
    \sum_{\forall_i} c_i <= C // allocated capacity doesn't exceed node's total capacity

    and model the utility function u as some concave function (say log x).

    Now, this doesn't say anything about performance, but it does say that, for a given node, it's better to allocate some marginal bandwidth to a new domain rather than allocate more resources to one existing one (subject to available capacity), given the concave utility. Now if you extend this over all nodes, reasoning about a site's utility function taking as input \sum capacity c_i,j \forall node's j, subject to all available capacities, that might be a reasonable formulation.

    Your thoughts are welcome.