IP Library Granted Patent US 9,462,077
Granted Patent B2
US 9,462,077 · App. 11/070,752 · Granted Oct 4, 2016

System, method, and circuit for servicing a client data service request

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,462,077
App. No.
11/070,752
Granted
Oct 4, 2016
Kind
B2
Abstract

One or more parameters of a received data service request may be compared against a lookup table. Based on one or more priority values stored in the lookup table and associated with the one or more request parameters, the data service request may be assigned a priority level.

Claims (101)

1. A computer-implemented method for servicing a data service request received at a server in communication with a buffer, comprising:

determining if the server includes sufficient resources to immediately service the data service request, wherein:

the server includes insufficient resources to immediately service the data service request when a plurality of pending data service requests for the server are in a queue in the buffer for servicing by the server,

each pending data service request includes a respective priority level of a plurality of priority levels, and

each pending data service request includes a position in the queue based on each respective priority level;

assigning a first priority level for the data service request if the server includes insufficient resources to immediately service the data service request, wherein assigning the first priority level for the data service request comprises:

comparing, by the server, a plurality of parameters of the data service request against a lookup table; and

assigning, by the server, the first priority level based on a plurality of priority values stored in the lookup table and associated with the plurality of request parameters;

wherein at least one of the request parameters of the received request is correlated with a particular time interval in which the data service request is received;

if the server includes sufficient resources to immediately service the data service request, performing the data service request without storing the data service request in the buffer;

if the server includes insufficient resources to immediately service the data service request:

storing the data service request in the buffer;

determining, for the data service request, a first position in the queue based on the first priority level compared to the priority level for each respective pending data service request in the queue;

determining a first length of time that the data service request is in the queue; and

if the first length of time that the data service request is in the queue is greater than a threshold length of time, repositioning the data service request in the queue to a higher position in the queue that is ahead of at least one other data service request that includes:

a.) a higher priority level than the data service request, and

b.) a second length of time in the queue that is less than the threshold length of time.

2. The method according to claim 1 , wherein the lookup table further includes one or more priority values relating to one or more particular logical units, and

wherein said assigning further comprises assigning the received data service request with a higher priority level based on the logical unit associated with the data service request.

3. The method according to claim 2 , wherein the parameters of the received data service request associated with one or more particular logical units are primary parameters and are assigned with a priority level based on the logical unit associated with the data service request, regardless of any other service request parameters.

4. The method according to claim 1 , wherein at least one of the parameters of the received request is associated with an application that generated the request.

5. The method according to claim 1 , wherein at least one of the parameters of the received request is correlated with performance data associated with the performance of a client who issued the service request.

6. The method according to claim 1 , wherein at least one of the parameters of the received request is correlated with performance data associated with the performance of a server that received the service request.

7. The method according to claim 1 , wherein at least one of the parameters of the received request is correlated with a time value relating to the occurrence of one or more events associated with the service request.

8. The method according to claim 1 , wherein at least one of the parameters of the received request is correlated with an interface through which the service request has been received.

9. The method according to claim 1 , wherein said storing further comprises positioning the data service request within a specific segment of the buffer in accordance with the first priority level assigned to the data service request.

10. The method according to claim 1 , further comprising immediately servicing the data request if the server includes sufficient resources to immediately service the data request, wherein the server includes sufficient resources to immediately service the data request when the queue is empty.

11. The method according to claim 1 , further comprising servicing each data service request from the queue in accordance with each respective priority level.

12. The method according to claim 1 , wherein the first position is a higher position in the queue than a second position for a first different data service request.

13. The method according to claim 12 , wherein the first position is a lower position in the queue than a third position for a second different data service request.

14. The method according to claim 1 , wherein the data service request is stored in the first position in the queue within the buffer, the method further comprising:

receiving a new data service request;

determining that the server includes insufficient resources to immediately service the new data service request;

determining a second priority level for the new data service request;

storing the new data service request in the buffer; and

determining, for the new data service request, a second position in the queue based on the second priority level compared to the first priority level.

15. The method according to claim 14 , wherein the second position for the new data service request is a higher position in the queue than the first position for the data service request.

16. The method according to claim 15 , wherein the second position is a lower position in the queue than a third position for a previously queued data service request.

17. The method according to claim 1 , further comprising:

determining that the data service request has remained in the first position for greater than a predetermined amount of time; and

changing the data service request from the first position to a second position in response to determining that the data service request has remained in the first position for greater than the predetermined amount of time.

18. A system for servicing a data service request, comprising:

a buffer configured for including a queue;

a processor in communication with the buffer; and

a memory in communication with the processor, the memory comprising computer code that, when executed by the processor, cause the processor to perform a method comprising:

determining if the system includes sufficient resources to immediately service the data service request, wherein:

the system includes insufficient resources to immediately service the data service request when a plurality of pending data service requests for the system are in the queue for servicing by the system,

each pending data service request includes a respective priority level of a plurality of priority levels, and

each pending data service request includes a position in the queue based on each respective priority level;

assigning a first priority level for the data service request if the system includes insufficient resources to immediately service the data service request, wherein assigning the first priority level for the data service request comprises:

comparing, by the processor, a plurality of parameters of the data service request against a lookup table, and

assigning, by the processor, the first priority level based on a plurality of priority values stored in the lookup table and associated with the plurality of request parameters,

wherein at least one of the request parameters of the received request is correlated with a particular time interval in which the data service request is received,

if the server includes sufficient resources to immediately service the data service request, performing the data service request without storing the data service request in the buffer;

if the server includes insufficient resources to immediately service the data service request:

storing the data service request in the buffer; determining, for the data service request, a first position in the queue based on the first priority level compared to the priority level for each respective pending data service request in the queue;

determining a first length of time that the data service request is in the queue; and

if the first length of time that the data service request is in the queue is greater than a threshold length of time, repositioning the data service request in the queue to a higher position in the queue that is ahead of at least one other data service request that includes:

a.) a higher priority level than the data service request, and

b.) a second length of time in the queue that is less than the threshold length of time.

19. The system according to claim 18 , wherein the computer code further causes the processor to perform a method comprising servicing each data service request from the queue in accordance with each respective priority level.

20. The system according to claim 18 , wherein the first position is a higher position in the queue than a second position for a first different data service request.

21. The system according to claim 20 , wherein the first position is a lower position in the queue than a third position for a second different data service request.

22. The system according to claim 18 , wherein the data service request is stored in the first position in the queue within the buffer, the computer code causing the processor to perform the method further comprising:

receiving a new data service request;

determining that the server includes insufficient resources to immediately service the new data service request;

determining a second priority level for the new data service request;

storing the new data service request in the buffer; and

determining, for the new data service request, a second position in the queue based on the second priority level compared to the first priority level.

23. The system according to claim 22 , wherein the second position for the new data service request is a higher position in the queue than the first position for the data service request.

24. The system according to claim 23 , wherein the second position is a lower position in the queue than a third position for a previously queued data service request.

25. A computer-readable memory comprising:

computer code for determining if a server includes sufficient resources to immediately service the data service request, wherein:

the server includes insufficient resources to immediately service the data service request when a plurality of pending data service requests for the system are in the queue for servicing by the server,

each pending data service request includes a respective priority level of a plurality of priority levels, and

each pending data service request includes a position in the queue based on each respective priority level;

computer code for assigning a first priority level for the data service request if the server includes insufficient resources to immediately service the data service request, wherein assigning the first priority level for the data service request comprises:

comparing a plurality of parameters of the data service request against a lookup table, and

assigning the first priority level based on a plurality of priority values stored in the lookup table and associated with the plurality of request parameters,

wherein at least one of the parameters of the received request is correlated with a client who issued the data service request,

wherein at least one of the parameters of the received data service request is associated with a priority level request requested by the client, and

wherein the first priority level request requested by the client is associated with a particular time interval in which the data service request is received;

if the server includes sufficient resources to immediately service the data service request, computer code for performing the data service request without storing the data service request in the buffer;

if the server includes insufficient resources to immediately service the data service request:

computer code for storing the data service request in a buffer;

computer code for determining, for the data service request, a first position in the queue based on the first priority level compared to the priority level for each respective pending data service request in the queue;

computer code for determining a first length of time that the data service request is in the queue; and

if the first length of time that the data service request is in the queue is greater than a threshold length of time, computer code for repositioning the data service request in the queue to a higher position in the queue that is ahead of at least one other data service request that includes:

a.) a higher priority level that the data service request, and

b.) a second length of time in the queue that is less than the threshold length of time.

26. The computer-readable memory according to claim 25 , further comprising computer code for servicing each data service request from the queue in accordance with each respective priority level.

27. The computer-readable memory according to claim 25 , wherein the first position is a higher position in the queue than a second position for a first different data service request.

28. The computer-readable memory according to claim 27 , wherein the first position is a lower position in the queue than a third position for a second different data service request.

29. The computer-readable memory according to claim 25 , wherein the data service request is stored in the first position in the queue within the buffer, the computer-readable memory further comprising:

computer code for receiving a new data service request;

computer code for determining that the server includes insufficient resources to immediately service the new data service request;

computer code for determining a second priority level for the new data service request;

computer code for storing the new data service request in the buffer; and

computer code for determining, for the new data service request, a second position in the queue based on the second priority level compared to the first priority level.

30. The computer-readable memory according to claim 29 , wherein the second position for the new data service request is a higher position in the queue than the first position for the data service request.

31. The computer-readable memory according to claim 30 , wherein the second position is a lower position in the queue than a third position for a previously queued data service request.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2009
From: XIV LTD.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022159/0949 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2005
From: ZOHAR, OFIR; REVAH, YARON; HELMAN, HAIM; COHEN, DROR; SCHWARTZ, SHEMER
To: XIV LTD.
Reel/Frame 016368/0123 →