US-20260129251-A1 - SYSTEMS AND METHODS FOR REDUCING SERVER LOAD
Abstract
Methods and systems for reducing server load are disclosed. At least one server may receive a request from a client device for a first segment of a plurality of segments of a content item. A first randomly selected quantity of additional segments of the plurality of segments may be determined based on a manifest associated with the content item. The first segment and the first randomly selected quantity of additional segments may be sent to the client device.
Inventors
- Alexander Giladi
- Johnathon Wesley BENTON
- Alexander Leo BALK
Assignees
- COMCAST CABLE COMMUNICATIONS, LLC
Dates
- Publication Date
- 20260507
- Application Date
- 20251024
Claims (20)
- 1 . A method comprising: receiving, by a client device, a manifest associated with a content item, wherein the content item comprises a plurality of segments; determining, based on the manifest, a first randomly selected quantity of segments of the plurality of segments; and sending, to a server, at least one request for the first randomly selected quantity of segments.
- 2 . The method of claim 1 , wherein determining, based on the manifest, the first randomly selected quantity of segments comprises: determining, based on the manifest, a predetermined range of quantities; and determining the first randomly selected quantity of segments based on randomly selecting a quantity from the predetermined range of quantities.
- 3 . The method of claim 1 , wherein determining, based on the manifest, the first randomly selected quantity of segments comprises determining, based on the manifest, network location information associated with each segment in the first randomly selected quantity of segments, and wherein the at least one request for the first randomly selected quantity of segments comprises the network location information associated with each segment in the first randomly selected quantity of segments.
- 4 . The method of claim 3 , wherein the manifest indicates a uniform resource locator (URL) associated with each of the plurality of segments, and wherein the network location information associated with each segment in the first randomly selected quantity of segments comprises the URL associated with each segment in the first randomly selected quantity of segments.
- 5 . The method of claim 1 , wherein sending, to the server, the at least one request for the first randomly selected quantity of segments comprises sending a single request for the first randomly selected quantity of segments.
- 6 . The method of claim 1 , wherein sending, to the server, the at least one request for the first randomly selected quantity of segments comprises sending a plurality of requests to the server, wherein each of the plurality of requests comprises a request for an individual segment of the first randomly selected quantity of segments.
- 7 . The method of claim 1 , further comprising: receiving, from the server, the requested first randomly selected quantity of segments; and causing output of the first randomly selected quantity of segments.
- 8 . The method of claim 1 , wherein receiving, from the server, the requested first randomly selected quantity of segments comprises: individually receiving, from the server, each segment of the first randomly selected quantity of segments.
- 9 . The method of claim 8 , wherein individually receiving, from the server, each segment of the first randomly selected quantity of segments comprises: receiving, at a first time and based on a first segment of the first randomly selected quantity of segments becoming available to the server, the first segment; and receiving, at a second time and based on a second segment of the first randomly selected quantity of segments becoming available to the server, the second segment, wherein the second time occurs after the first time.
- 10 . The method of claim 1 , further comprising: based on receiving the first randomly selected quantity of segments from the server, determining a second randomly selected quantity of segments of the plurality of segments, wherein the second randomly selected quantity of segments comprises a different quantity of segments than the first randomly selected quantity of segments; and causing output of the second randomly selected quantity of segments based on sending, to the server, at least one request for the second randomly selected quantity of segments.
- 11 . A method comprising: receiving, by at least one server and from a client device, a request for a first segment of a plurality of segments of a content item; determining, based on a manifest associated with the content item, a first randomly selected quantity of additional segments of the plurality of segments; and sending, to the client device, the first segment and the first randomly selected quantity of additional segments.
- 12 . The method of claim 11 , wherein determining, based on the manifest, the first randomly selected quantity of additional segments comprises: determining, based on the manifest, a predetermined range of quantities; and determining the first randomly selected quantity of additional segments based on randomly selecting a quantity from the predetermined range of quantities.
- 13 . The method of claim 11 , wherein sending, to the client device, the first segment and the first randomly selected quantity of additional segments comprises: sending, at a first time and based on the first segment becoming available to the at least one server, the first segment; and sending, at a second time and based on a second segment of the first randomly selected quantity of additional segments becoming available to the at least one server, the second segment, wherein the second time occurs after the first time.
- 14 . The method of claim 11 , further comprising: based on sending, to the client device, the first segment and the first randomly selected quantity of additional segments, sending a message to the client device, wherein the message indicates to the client device that transfer of the first segment and the first randomly selected quantity of additional segments is complete.
- 15 . The method of claim 14 , further comprising: based on sending the message, receiving, from the client device, a request for a second segment of the plurality of segments of the content item; determining, based on the manifest associated with the content item, a second randomly selected quantity of additional segments of the plurality of segments, wherein the second randomly selected quantity of additional segments is different from the first randomly selected quantity of additional segments; and sending, to the client device, the second segment and the second randomly selected quantity of additional segments.
- 16 . The method of claim 11 , wherein the first segment and the first randomly selected quantity of additional segments comprise consecutive segments of the plurality of segments.
- 17 . A method comprising: receiving, by at least one server and from a first client device, a request for a first segment of a plurality of segments of a content item; determining a first randomly selected time within a predetermined time window; and sending, to the first client device and at the first randomly selected time, the first segment.
- 18 . The method of claim 17 , further comprising: receiving, by the at least one server and from a second client device, a request for the first segment; determining a second randomly selected time within the predetermined time window, wherein the second randomly selected time is different from the first randomly selected time; and sending, to the second client device and at the second randomly selected time, the first segment.
- 19 . The method of claim 18 , further comprising: based on sending the first segment to the first client device at the first randomly selected time, receiving, from the first client device and at a first time, a request for a second segment of the plurality of segments; and based on sending the first segment to the second client device at the second randomly selected time, receiving, from the second client device and at a second time, a request for the second segment, wherein the first time is different from the second time.
- 20 . The method of claim 17 , wherein the predetermined time window comprises a period of time in between the first client device sending the request for the first segment and a scheduled output time associated with the first segment.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Patent Application No. 63/715,451, filed Nov. 1, 2024, and U.S. Patent Application No. 63/738,263, filed Dec. 23, 2024, both of which are hereby incorporated by reference in their entireties for any and all purposes. BACKGROUND A large quantity of users may want to simultaneously view the same content item. A client device associated with each of the users may request segments of the content item from a server, thereby causing the server to receive a large quantity of simultaneous requests for the same segment(s). This flood of simultaneous requests may degrade performance of the server. SUMMARY Methods and systems for reducing server load are disclosed. A large quantity of users simultaneously may be viewing the same content item. Instead of the client devices associated with the users all requesting the same segment of the content item from a server at the same time, each of the client devices may request a different, random number of future segments of the content item, together with the nearest segment, from the server. Randomizing the quantity of segments requested by each client device may prevent the server from receiving a large quantity of simultaneous requests for the same content segment, thereby decreasing the load on the server. Alternatively, or in addition to, each of the client devices requesting a different, random number of future segments of the content item, together with the nearest segment, from the server, the client devices may all request a first segment of the content item from a server at the same time. Instead of sending only the first segment to each of the client devices, the server may send a different, random number of future segments of the content item, together with the requested first segment, to each of the client devices. Randomizing the quantity of segments sent to each client device may prevent the client devices from simultaneously requesting the next segment (e.g., the segment immediately following the first segment), thereby preventing the server from receiving a large quantity of simultaneous requests for the next content segment. Alternatively, or in addition to, simultaneously sending a first requested segment of the same content item to a large quantity of users that are simultaneously viewing the content item, the server may send the first segment to each of the client devices at a random, different time. Randomizing the time at which the first segment is sent to each client device may cause the client devices to request the next segment (e.g., the segment immediately following the first segment) at slightly different times, thereby preventing the server from receiving a large quantity of simultaneous requests for the next content segment. This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to limitations that solve any or all disadvantages noted in any part of this disclosure. Additional advantages will be set forth in part in the description which follows or may be learned by practice. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments and together with the description, serve to explain the principles of the methods and systems. FIG. 1 shows an example system. FIG. 2 shows an example method. FIG. 3 shows an example method. FIG. 4 shows an example method. FIG. 5 shows an example method. FIG. 6 shows an example method. FIG. 7 shows an example method. FIG. 8 shows an example method. FIG. 9 shows an example method. FIG. 10 shows an example method. FIG. 11 shows an example method. FIG. 12 shows an example computing device. DETAILED DESCRIPTION Methods and systems for reducing server load are disclosed. The rising demand for live low-latency streaming puts a significant strain on servers (e.g., Hypertext Transfer Protocol (HTTP) servers). If a large quantity of users attempt to simultaneously stream the same content item, a server may receive a large quantity of tightly synchronized requests for the same content segment. This flood of simultaneous requests may degrade the performance of the server. To prevent the server from receiving a flood of simultaneous requests, the quantity of content segments being requested by client devices (e.g., playback device, output device, etc.) may be randomized, such that each client device may request a different, randomly selected quantity of content s