Mitigation of failures in an online advertising network
AssigneeOath Inc.
InventorGian-Paolo Musumeci
Life of this patent
Estimating the term…
Abstract
Access requests to a database are monitored for average time taken to fulfill the requests and whether a queue of unfulfilled requests is building up beyond an acceptable threshold. When the queue has built up beyond the acceptable threshold and/or when the average time taken to fulfill the requests has exceeded a delay threshold value, database access requests may be rejected. In one advantageous aspect, a graceful degradation in performance may be achieved by selectively rejecting access requests of a lower priority and favoring access requests of a higher priority for execution.
Claims20
A computer-implemented method, comprising:
- receiving, with a processor, one or more data access requests, wherein each request has a request type associated therewith;
- tracking, with the processor, a response performance of received requests having a same request type;
- receiving, with the processor, a current request for data;
- checking, with the processor, for a number of previously received requests having the same request type that have yet to be fulfilled at a time when the current request is received;
- computing, with the processor, based on the tracking, a probable execution time delay for fulfilling the current request;
- extracting, from the current request, a time period within which fulfillment of the current request is useful;
- predicting whether the current request is going to fail based upon the probable execution time delay, the time period within which fulfillment of the current request is useful and the number of previously received requests having the same request type;
- and
- deciding, with the processor, whether to reject the current request without fulfilling based upon the predicting.
A computer system, comprising:
- a storage device that stores data;
- a server configured to control access to the data stored in the storage device;
- and
- a client configured to send one or more requests to the server to access data stored in the storage,
- wherein the server is further configured to:
- receive the one or more data access requests, wherein each request has a request type associated therewith;
- track a response performance of received requests having a same request type;
- receive a current request for data from the client;
- check for a number of previously received requests having the same request type that have yet to be fulfilled at a time when the current request is received;
- compute, based on the tracking, a probable execution time delay for fulfilling the current request;
- extract, from the current request, a time period within which fulfillment of the current request is useful;
- predict whether the current request is going to fail based upon the probable execution time delay, the time period within which fulfillment of the current request is useful and the number of previously received requests having the same request type;
- and
- decide whether to reject the current request without fulfilling based upon the predicting.
A non-transitory computer-readable medium storing computer executable instructions that when executed by a processor cause the processor to perform a method comprising:
- receiving one or more data access requests, wherein each request has a request type associated therewith;
- tracking a response performance of received requests having a same request type;
- receiving a current request for data;
- checking for a number of previously received requests having the same request type that have yet to be fulfilled at a time when the current request is received;
- computing based on the tracking, a probable execution time delay for fulfilling the current request;
- extracting, from the current request, a time period within which fulfillment of the current request is useful;
- predicting whether the current request is going to fail based upon at least one of the probable execution time delay, the time period within which fulfillment of the current request is useful or the number of previously received requests having the same request type;
- and
- deciding whether to reject the current request without fulfilling based upon the predicting.
Dependencies are inferred from the claim text.