Web server constraint support
AssigneeNetflix, Inc.
InventorsJohn Funge, Mark Watson
Life of this patent
Estimating the term…
Abstract
Techniques are disclosed for a web server to support constraints specified by a client. In one embodiment, the web server receives, from the client, a request for one or more blocks of data. The request includes one or more constraints provided by the client. The web server may perform an action responsive to an increase in network congestion, based on the one or more constraints. Accordingly, the web server may handle the request in a manner that more closely meets the needs of the client.
Claims20
A computer-implemented method of responding to a request to stream data from a server to a client, based on constraints specified by the client and based further on network congestion, the computer-implemented method comprising:
- receiving, from the client, one or more requests for a first plurality of data blocks encoded at a first bit rate, wherein the one or more requests comprise one or more client-specified constraints for streaming the requested data blocks to the client, including a timing constraint specifying an expiration time associated with the first plurality of data blocks;
- subsequent to receiving the one or more requests, detecting an increase in network congestion, wherein the server is configured to temporarily reduce, responsive to the increase in network congestion and by a predefined amount, bandwidth for sending data to the client;
- in response to detecting an increase in network congestion, servicing the one or more requests by streaming a second plurality of data blocks encoded at a second bit rate to the client rather than streaming the first plurality of data blocks to the client, wherein the second bit rate is less than the first bit rate;
- determining that the one or more client-specified constraints cannot be satisfied in servicing the one or more requests using the reduced bandwidth and streaming the second plurality of data blocks;
- and
- in response, temporarily reducing the bandwidth by a lesser amount than the predefined amount, to provide bandwidth sufficient to satisfy the one or more client-specified constraints when servicing the one or more requests.
A computer-readable storage device containing a program which, when executed, performs an operation for responding to a request to stream data from a server to a client, based on constraints specified by the client and based further on network congestion, the operation comprising:
- receiving, from the client, one or more requests for a first plurality of data blocks encoded at a first bit rate, wherein the one or more requests comprise one or more client-specified constraints for streaming the requested blocks of data to the client, including a timing constraint specifying an expiration time associated with the one or more blocks of data;
- subsequent to receiving the one or more requests, detecting an increase in network congestion, wherein the server is configured to temporarily reduce, responsive to the increase in network congestion and by a predefined amount, bandwidth for sending data to the client;
- in response to detecting an increase in network congestion, servicing the one or more requests by streaming a second plurality of data blocks encoded at a second bit rate to the client rather than streaming the first plurality of data blocks to the client, wherein the second bit rate is less than the first bit rate;
- determining that the one or more client-specified constraints cannot be satisfied in servicing the one or more requests using the reduced bandwidth and streaming the second plurality of data blocks;
- and
- in response, temporarily reducing the bandwidth by a lesser amount than the predefined amount, to provide bandwidth sufficient to satisfy the one or more client-specified constraints when servicing the one or more requests.
A system to respond to a request to stream data to a client, based on constraints specified by the client and based further on network congestion, the system comprising:
- one or more computer processors;
- a memory containing a program, which when executed by the one or more computer processors performs an operation comprising:
- receiving, from the client, one or more requests for a first plurality of data blocks encoded at a first bit rate, wherein the one or more requests comprise one or more client-specified constraints for streaming the requested blocks of data to the client, including a time constraint specifying an expiration time associated the one or more blocks of data;
- subsequent to receiving the one or more requests, detecting an increase in network congestion, wherein the system is configured to temporarily reduce, responsive to the increase in network congestion and by a predefined amount, bandwidth for sending data to the client;
- in response to detecting an increase in network congestion, servicing the one or more requests by streaming a second plurality of data blocks encoded at a second bit rate to the client rather than streaming the first plurality of data blocks to the client client, wherein the second bit rate is less than the first bit rate;
- determining that the one or more client-specified constraints cannot be satisfied in servicing a first request included in the one or more requests using the reduced bandwidth and streaming the second plurality of data blocks;
- and
- in response, temporarily reducing the bandwidth by a lesser amount than the predefined amount, to provide bandwidth sufficient to satisfy the one or more client-specified constraints when servicing the first request.
Dependencies are inferred from the claim text.