Systems and methods for streaming media content during unavailability of content server
Systems and methods are described herein for streaming during unavailability of a content server. Upon determining that there are conditions indicating buffering issues during delivery of a media asset, a server determines a first group of devices suitable for receiving the media asset from the server and sharing the media asset on a peer-to-peer network. Then, the server determines a second group of devices suitable for receiving the media asset on a peer-to-peer network from a first group device. The server then determines groupings within which to share and receive the media asset. Next, the server transmits instructions to the devices in the first group to maintain in buffer and share certain portions of the media asset with the second group devices within their grouping. Finally, the server updates information detailing the media asset portions the devices are maintaining in buffer and sharing.
1 . A method comprising:
determining that an edge server is overloaded;
identifying a plurality of devices connected to the edge server;
assigning one or more first devices of the plurality of devices to a device cluster, wherein the one or more first devices are capable of receiving a media asset from the edge server and distributing the media asset to at least one other device of the plurality of devices;
assigning one or more second devices of the plurality of devices to the device cluster, wherein the one or more second devices are capable of receiving the media asset from the one or more first devices;
assigning a respective weight, based on device type, to each of the one or more first devices and the one or more second devices, wherein the respective weights are used by one or more weighted load balancing algorithms;
transmitting one or more instructions configured to cause the one or more first devices to distribute the media asset to the one or more second devices in the device cluster; and
distributing upload traffic from the one or more first devices to the one or more second devices based on the respective weights.
2 . The method of claim 1 , wherein a first sum of respective weights associated with the one or more first devices is equal to a second sum of respective weights associated with the one or more second devices.
3 . The method of claim 1 , further comprising:
based on determining that at least one device of the plurality of devices is consuming a first portion of the media asset while at least one other device of the plurality of devices is consuming a second portion of the media asset different from the first portion,
reassigning at least one of the one or more first devices or at least one of the one or more second devices to a second device cluster.
4 . The method of claim 1 , wherein the one or more first devices and the one or more second devices in the device cluster are interconnected via a peer-to-peer network.
5 . The method of claim 1 , wherein the transmitting one or more instructions configured to cause the one or more first devices to distribute the media asset to the one or more second devices in the device cluster comprises transmitting an instruction configured to cause the one or more first devices to maintain a portion of the media asset in a buffer for distributing the portion to the one or more second devices.
6 . The method of claim 1 , wherein the transmitting one or more instructions configured to cause the one or more first devices to distribute the media asset to the one or more second devices in the device cluster reduces a network load of the edge server.
7 . The method of claim 1 , wherein the one or more weighted load balancing algorithms comprises a round robin algorithm configured to evenly distribute upload traffic from the one or more first devices to the one or more second devices in the device cluster, based on the respective weights.
8 . The method of claim 1 , wherein the one or more first devices are equal in number to the one or more second devices in the device cluster.
9 . The method of claim 1 , wherein the one or more first devices are fewer in number than the one or more second devices in the device cluster.
10 . The method of claim 1 , wherein the determining that the edge server is overloaded comprises determining that one or more conditions at the edge server indicate buffering issues during delivery of the media asset to at least one device of the plurality of devices connected to the edge server.
11 . A system comprising:
control circuitry configured to:
determine that an edge server is overloaded;
identify a plurality of devices connected to the edge server;
assign one or more first devices of the plurality of devices to a device cluster, wherein the one or more first devices are capable of receiving a media asset from the edge server and distributing the media asset to at least one other device of the plurality of devices;
assign one or more second devices of the plurality of devices to the device cluster, wherein the one or more second devices are capable of receiving the media asset from the one or more first devices; and
assign a respective weight, based on device type, to each of the one or more first devices and the one or more second devices, wherein the respective weights are used by one or more weighted load balancing algorithms;
input/output circuitry configured to:
transmit one or more instructions configured to cause the one or more first devices to distribute the media asset to the one or more second devices in the device cluster; and
wherein the control circuitry is further configured to:
distribute upload traffic from the one or more first devices to the one or more second devices based on the respective weights.
12 . The system of claim 11 , wherein a first sum of respective weights associated with the one or more first devices is equal to a second sum of respective weights associated with the one or more second devices.
13 . The system of claim 11 , wherein the control circuitry is further configured to:
based on determining that at least one device of the plurality of devices is consuming a first portion of the media asset while at least one other device of the plurality of devices is consuming a second portion of the media asset different from the first portion,
reassign at least one of the one or more first devices or at least one of the one or more second devices to a second device cluster.
14 . The system of claim 11 , wherein the one or more first devices and the one or more second devices in the device cluster are interconnected via a peer-to-peer network.
15 . The system of claim 11 , wherein the transmitting one or more instructions configured to cause the one or more first devices to distribute the media asset to the one or more second devices in the device cluster comprises transmitting an instruction configured to cause the one or more first devices to maintain a portion of the media asset in a buffer for distributing the portion to the one or more second devices.
16 . The system of claim 11 , wherein the transmitting one or more instructions configured to cause the one or more first devices to distribute the media asset to the one or more second devices in the device cluster reduces a network load of the edge server.
17 . The system of claim 11 , wherein the one or more weighted load balancing algorithms comprises a round robin algorithm configured to evenly distribute upload traffic from the one or more first devices to the one or more second devices in the device cluster, based on the respective weights.
18 . The system of claim 11 , wherein the one or more first devices are equal in number to the one or more second devices in the device cluster.
19 . The system of claim 11 , wherein the one or more first devices are fewer in number than the one or more second devices in the device cluster.
20 . The system of claim 11 , wherein the determining that the edge server is overloaded comprises determining that one or more conditions at the edge server indicate buffering issues during delivery of the media asset to at least one device of the plurality of devices connected to the edge server.