Regulating client requests in an electronic messaging environment
First Claim
1. At a computer system that is network connectable to a messaging server, the computer system configured to provide user access to data stored at the messaging server, a method for requesting data that provides an improved user experience when the messaging server is experiencing increased load, the method comprising:
- an act of computer system sending a data request to the messaging server, the data request requesting that message related data for a user of the computer system be returned from the messaging server to the computer system;
an act of receiving a buffer from the messaging server, the buffer responsive to the data request from the messaging server, the buffer having plurality of data fields, including a error code field and a response data field, the error code field containing a server busy error code, the server busy error code indicating that the messaging server did not process the data request, the response data field containing an adaptively generated wait hint generated at the messaging server, the adaptively generated wait hint being an indication that the messaging server was unable to process the data request and indicating that the computer system is to wait a specified wait time before re-sending the data request, the adaptively generated wait hint generated by a wait hint generation algorithm at the messaging server, the wait hint generation algorithm configured to;
adaptively generate a wait hint each time the data request is received at the messaging server but not processed, each wait hint generated by the messaging server based on the message server tracking how many times the data request was previously received at the messaging server but not processed, up to a specified number of times the messaging server detects that the data request is received at the messaging server but not processed at the messaging server, after which the messaging server processes the data request to return the message related data in response to the data request such that the message server controls when delayed data requests are eventually processed even when the messaging server is busy;
an act of waiting the specified wait time before resending the data request requesting message related data for the user to thereby reduce the load on the messaging server; and
an act of resending the data request subsequent to waiting the specified wait time.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention is directed to regulating client requests in an electronic messaging environment. A client sends a data request to a messaging server. The messaging server receives the client data request and determines that the messaging server is unable to process the client data request. The messaging server adaptively generates a wait hint and sends a server response that includes the adaptively generated wait hint. The client receives the server response including the adaptively generated wait hint. The client waits a specified wait time in accordance with the adaptively generated wait hint to reduce the load on the messaging server. The client resends the data request subsequent to waiting the specified wait time.
-
Citations
27 Claims
-
1. At a computer system that is network connectable to a messaging server, the computer system configured to provide user access to data stored at the messaging server, a method for requesting data that provides an improved user experience when the messaging server is experiencing increased load, the method comprising:
-
an act of computer system sending a data request to the messaging server, the data request requesting that message related data for a user of the computer system be returned from the messaging server to the computer system; an act of receiving a buffer from the messaging server, the buffer responsive to the data request from the messaging server, the buffer having plurality of data fields, including a error code field and a response data field, the error code field containing a server busy error code, the server busy error code indicating that the messaging server did not process the data request, the response data field containing an adaptively generated wait hint generated at the messaging server, the adaptively generated wait hint being an indication that the messaging server was unable to process the data request and indicating that the computer system is to wait a specified wait time before re-sending the data request, the adaptively generated wait hint generated by a wait hint generation algorithm at the messaging server, the wait hint generation algorithm configured to; adaptively generate a wait hint each time the data request is received at the messaging server but not processed, each wait hint generated by the messaging server based on the message server tracking how many times the data request was previously received at the messaging server but not processed, up to a specified number of times the messaging server detects that the data request is received at the messaging server but not processed at the messaging server, after which the messaging server processes the data request to return the message related data in response to the data request such that the message server controls when delayed data requests are eventually processed even when the messaging server is busy; an act of waiting the specified wait time before resending the data request requesting message related data for the user to thereby reduce the load on the messaging server; and an act of resending the data request subsequent to waiting the specified wait time. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 27)
-
-
13. At a computer system that is network connectable to a plurality of different clients, the computer system configured to process client data requests for user messaging data maintained at the computer system and return appropriate user messaging data to corresponding requesting clients, a method for regulating client requests so as to provide an improved user experience when the messaging server is experiencing increased load, the method comprising:
-
an act of receiving a client data request from a client, the client data request requesting that message related data for a user of the client be returned to the client; an act of determining that the computer system is unable to process the client data request based on the current load of computer system, the current load indicative of resource consumption at the computer system as a result of the computer system sending message related data to other clients from among the plurality of different clients, the determination made subsequent to receiving the client data request; an act of adaptively generating a wait hint for return to the client, the adaptively generated wait hint including an indicated wait time, the wait time indicating an amount of time to the client that the client is to wait before resending the client data request to thereby reduce the load at the computer system, the adaptively generated wait hint generated by a wait hint generation algorithm, the wait hint generation algorithm configured to; adaptively generate a wait hint each time the client data request is received at the messaging server but not processed based on the messaging server tracking how many times the client data request was previously received but not processed, up to a specified number of times the messaging server detects that the data request is received at the message but not processed at the messaging server, after which the messaging server processes the client data request to return the message related data in response to the client data request such that the message server controls when delayed client data requests are eventually processed even when the messaging server is busy; and an act of sending a buffer to the client, the buffer responsive to the client data request, the buffer having a plurality of data fields including an error code field and a response data field, the error code field containing a server busy error code, the server busy error coding indicating that the messaging server did not process the client data request, the response data field containing the adaptively generated wait hint, the adaptively generated wait hint indicating to the client to wait the indicated wait time before resending the client data request. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer program product for use at a computer system that is network connectable to a messaging server, the computer system configured to provide user access to data stored at the messaging server, the computer program product for implementing a method for requesting data that provides an improved user experience when the messaging server is experiencing increased load, the computer program product comprising one or more computer storage media having stored thereon computer-executable instructions that, when executed by a processor, cause the computer system to perform the following:
-
send a data request to the messaging server, the data request requesting that message related data for a used of the computer system be returned from the messaging server to the computer system; receive data responsive to the data request in a Remote Procedure Call (RPC) response buffer from the messaging server, the RPC response buffer having a plurality of data fields, including an error code field and a response data field, the error code field containing a server busy error code, the server busy error code indicating that the messaging server did not process the data request, the response data field containing an adaptively generated wait hint, the response data field included in a variable length operation specific response data portion of the RPC response buffer, the adaptively generated wait hint generated at the messaging server, the adaptively generated wait hint being an indication that the messaging server was unable to process the data request and indicating that the computer system is to wait a specified wait time before sending another data request requesting the message related data for the user, the adaptively generated wait hint generated by a wait hint generation algorithm at the server, the wait hint generation algorithm configured to; refer to external configuration data to adaptively generate a wait hint each time the data request is received at the messaging server but not processed, each wait hint generated by the messaging server based on the message server tracking how many times the data request was previously received at the messaging server but not processed, up to a specified number times the messaging server detects that the data request is received at the messaging server but not processed at the messaging server, after which the messaging server processes the data request to return message related data in response to the data request such that the message server controls when data requests are processed even when the messaging server is busy, the specified number of times being stored in the external configuration data; wait the specified wait time before resending the data request requesting message related data for the user to thereby reduce the load on the messaging server; and resend the data request subsequent to waiting the specified wait time.
-
-
26. A computer program product for use at a computer system that is network connectable to a plurality of clients, the computer system configured to process client data requests for data maintained at the computer system and return appropriate data to corresponding requesting clients, the computer program product for implementing a method for regulating client requests so as to provide an improved user experience when the messaging server is experiencing increased load, the computer program product comprising one or more computer storage media having stored thereon computer-executable instructions that, when executed by a processor, cause the computer system to perform the following:
-
receive a client data request from a client, the client data request requesting that message related data for a user of the client be returned to the client; determine that the computer system is unable to process the client data request, subsequent to receiving the client data request based on the current load of computer system, the current load indicative of resource consumption at the computer system as a result of the computer system sending message related data to other clients from among the plurality of different clients, the determination made subsequent to receiving the client data request; adaptively generate a wait hint for return to the client, the adaptively generated wait hint including an indicated wait time, the wait time indicating an amount of time that to the client that the client is to wait before resending the client data request to thereby reduce the load at the computer system, the adaptively generated wait hint generated by a wait hint generation algorithm, the wait hint generation algorithm configured to; refer to external configuration data to adaptively generate a wait hint each time the client data request is received at the messaging server but not processed at the messaging server based on the messaging server tracking how many times the client data request was previously received but not processed, up to a specified number of times the messaging server detects that the client data request is received at the messaging server but not processed at the messaging server, after which the messaging server processes the client data request to return the message related data in response to the client data request such that the message server controls when delayed client data requests are eventually processed even when the messaging server is busy, the specified number of times being stored in the external configuration data; and send data responsive to the client data request in a Remote Procedure Call (RPC) response buffer to the client, the RPC response buffer having a plurality of data fields, including an error code field and a response data field, the error code field containing a server busy error code, the server busy error code indicating that the messaging server did not process the client data request, the response data field containing the adaptively generated wait hint, the response data field included in a variable length operation specific response data portion of the RPC response buffer, the adaptively generated wait hint indicating to the client to wait the indicated wait time before resending the client data request.
-
Specification