150 likes | 278 Views
Content Distribution Network. Jesse Szwedko Callen Shaw Heather Friedberg. Motivation. Deliver streams to the most clients while minimizing cost Cost is defined as the tradeoff between client QoS and resource usage of the CDN
E N D
Content Distribution Network Jesse Szwedko Callen Shaw Heather Friedberg
Motivation • Deliver streams to the most clients while minimizing cost • Cost is defined as the tradeoff between client QoS and resource usage of the CDN • Media streaming is a domain in which we can predict exactly what users will need next
Network Topology • Set of front ends, each controlling it’s own cluster of workers
Model - Client • Input parameters define clients and their requests • A client can have multiple streams open at once • Each stream is buffered on the client-side, so the client does not experience lag until this buffer is empty • Lag makes unhappy customers, so we give lag a cost
Model - CDN • Defined number of geographically distributed front ends, which each manage a cluster of local workers • Clients send their request to the closest front end who has a worker server with that file • We pay a fixed cost for every clock tick that a server is online
System Intelligence • Replication • Replicate “hot” files to other clusters and workers under the same front end • Deletion • Clear space by removing infrequently accessed replicas • Load Balancing • Relieve servers who aren’t able to keep client streams from lagging
Replication • Replicas are made within a cluster whenever possible • Files with hotness > a certain threshold are replicated to other clusters as well • While streams are consumed from first block to last, replication happens in reverse • Allows load balancing to offload a request mid-stream, without the receiver needing the entire file
Load Balancing • Load balancing initiated when a server’s load is “too high” • Server is too loaded when clients cannot keep data in their buffers. Formula is: • Request_queue_length / time_to_consume_block • Look at all requests, and move any that can be serviced by a less-loaded worker • Worker must have the associated file, but only needs blocks remaining in stream
Front End Types Static Front End Dynamic Front End Each front end starts with enough servers to hold its initial files Front end may spin up or down new instances of worker servers (for a cost) to decrease lag • Each front end starts with a set number of workers • Front end may move files and requests among these workers, but no new workers can be added
Experiments • Compared static and dynamic front ends while varying parameters • Default Parameters: