Polling protocol for automatic load limiting
AssigneeMicrosoft Corporation
InventorShital Shah
Life of this patent
Estimating the term…
Abstract
A client-specific or client-independent polling interval is provided to each client dynamically based on server load. The polling interval can be provided in the server polling response sent in response to a client polling request. The polling interval can be determined using a feedback control system or using a Bucket Reservation Method. The server uses a next polling interval and a flag that indicates if the previous polling request was ignored. Using these two parameters the server can continuously control the polling frequency from the client to achieve optimal performance.
Claims20
A system comprising:
- a processor and a memory;
- and
- a module configured to cause the processor to repeatedly adapt rate of polling by a plurality of clients on a server based on current utilization of the server by:
- calculating a next polling interval for a client of the plurality of clients, the next polling interval being calculated by a bucket reservation mechanism in which a first request received by the server from the plurality of clients is assigned a first bucket of a plurality of buckets and a second request is assigned a second bucket of the plurality of buckets, and each bucket of the plurality of buckets is associated with a time interval, such that when the plurality of buckets is utilized, a desired refresh rate is maintained regardless of a number of the plurality of clients making polling requests to the server;
- and
- sending the calculated next polling interval to the client in a server polling response sent by the server to the client.
A method comprising:
- receiving by a server module executing on a server computer a request from a client executing on a client computer;
- calculating a next polling interval for a plurality of clients polling the server computer, to continuously adapt a rate of polling requests received on the server computer based on current server utilization, using a bucket reservation mechanism in which a first request received on the server from the plurality of clients is assigned a first bucket and a second request from the plurality of clients is assigned a second bucket of a plurality of buckets, and the plurality of buckets are each associated with a time interval, such that when the plurality of buckets is utilized, a desired refresh rate is maintained regardless of a number of the plurality of clients making polling requests to the server;
- and
- sending the next polling interval for a client of the plurality of clients to the client computer in a server polling response.
A computer-readable storage device having computer-executable instructions recorded thereon which when executed cause at least one processor to:
- continuously adapt rate of polling of a server based on current utilization of the server by causing the at least one processor to:
- calculate a next polling interval for a client of the plurality of clients using a bucket reservation mechanism in which a first client of the plurality of clients is assigned a first bucket of a plurality of buckets and a second client of the plurality of clients is assigned a second bucket of the plurality of buckets, and the plurality of buckets is associated with an interval of time such that when the plurality of buckets is utilized, a desired refresh rate is maintained regardless of a number of the plurality of clients making polling requests to the server;
- and
- send the calculated next polling interval to the client in a server polling response sent by the server to the client.
Dependencies are inferred from the claim text.