Processing search requests
The present invention relates to request and messaging technology and in particular to mechanisms of efficiently processing such requests. A computing device receives, from the client, a plurality of requests, the plurality of requests including multiple first requests and multiple second requests, each of the first and second requests comprising request data. The computing device assigns, based on the request data, a respective request processing priority to each of the first and second requests, processes the first requests based on the assigned processing priorities, while the second requests remain pending for processing and determines whether to adapt the priorities of the second requests based on the request data of the second requests and/or response data generated for the multiple first requests. If the determination is affirmative, the computing device adapts the priorities in accordance with the tech-nicely data and/or the response data generated and processes the second requests based on the adapted priorities.
1 . A method for processing requests from at least one requesting client, the method comprising, at a computing device forming part of a distributed network of data centers:
receiving from the at least one client, at a data center, of the distributed network of data centers, a plurality of requests, the plurality of requests including multiple first requests and multiple second requests, each of the first and second requests comprising request data;
assigning, at the data center, based on the request data, a respective processing priority to each of the first and second requests;
processing, at the data center, the first requests based on the assigned processing priorities, while the second requests remain pending for processing;
determining, at the data center, whether to adapt the processing priorities of the second requests based on one or more of the request data of the second requests and response data generated for the first requests, and including: timestamps indicating when the first and the second requests have been generated; and geographical locations from which the second requests originated;
when the determination is affirmative, adapting, at the data center, the processing priorities of the second requests in accordance with one or more of the request data of the second requests and the response data generated for the first requests, such that given second requests originating from a geographical location associated with the data center are assigned a higher processing priority than other second requests originating from respective geographical locations associated with other data centers of the distributed network of data centers, wherein the geographical locations associated with the other data centers are different from the geographical location associated with the data center; and
processing the second requests based on the adapted processing priorities.
2 . The method of claim 1 , wherein the request data comprise:
one or more of senders, originators and recipients of the first and the second requests;
an indication of a type of content data being requested by the first and the second requests to be processed;
an indication of a geographical region.
3 . The method of claim 1 , wherein the request data is included in one or more of a message header, in one or more data fields of the first and second requests and in a separate data structure associated with the first and second requests.
4 . The method of claim 1 , wherein adapting the processing priorities is further based on:
processing prior requests received at the computing device prior to the reception of the first and the second requests;
timestamps at which the first and the second requests are received at the computing device.
5 . The method of claim 1 , wherein the determination whether to adapt the processing priorities is triggered by:
a predefined first time period;
a maximum number of the further requests received at the computing device over a predefined second time period.
6 . The method of claim 1 , wherein the processing priorities are assigned by using a set of rules maintained at the computing device.
7 . The method of claim 6 , wherein the processing priorities comprise a score generated by the set of rules.
8 . The method of claim 7 , wherein the score comprises a numerical range.
9 . The method of claim 6 , wherein the rules are adapted based on statistical data generated in response to processing the first and the second requests and to the processing of prior requests received prior to the reception of the first and the second requests.
10 . The method of claim 9 , wherein adapting the rules comprises one or more of activating and deactivating one or more rules of the set of rules.
11 . The method of claim 1 , wherein processing the second requests comprises a selection of at least one of one or more further computing devices for processing a subset of the second requests, the one or more further computing devices forming a distributed network with the computing device.
12 . A computing device for processing requests from at least one requesting client, the computing device being arranged to execute the method of claim 1 .
13 . A computer program product comprising a non-transitory computer-readable medium storing program code which executes the method of claim 1 when run by a computer.
14 . The method of claim 7 , wherein the rules are adapted based on statistical data generated in response to processing the first and the second requests and to the processing of prior requests received prior to the reception of the first and the second requests.
15 . The method of claim 14 , wherein adapting the rules comprises one or more of activating and deactivating one or more rules of the set of rules.
16 . The method of claim 8 , wherein the rules are adapted based on statistical data generated in response to processing the first and the second requests and to the processing of prior requests received prior to the reception of the first and the second requests.
17 . The method of claim 16 , wherein adapting the rules comprises one or more of activating and deactivating one or more rules of the set of rules.