IP Library Granted Patent US 9,832,268
Granted Patent B2
US 9,832,268 · App. 14/471,088 · Granted Nov 28, 2017

System, method, and medium for managing priority in requests to in-memory data grid (IMDG)

Inventor: Gagan Mehra (Oakland, CA)
Assignee: Software AG USA Inc.
H04L67/1097H04L67/10H04L67/1091H04L67/322H04L67/42
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,832,268
App. No.
14/471,088
Granted
Nov 28, 2017
Kind
B2
Abstract

An in-memory data grid (IMDG) server includes an i/o interface for transmitting and receiving data over a network. A random access memory (RAM) is configured with the IMDG which stores plural different data sets that may be requested for retrieval by applications that can connect to the IMDG server through the network. A processor receives requests for retrieval of data from the IMDG data sets, and sends the requested data to the requesting application. The IMDG server also includes a request prioritizer that determines, when two or more applications, which are competing applications that defined as having requests co-pending at the IMDG server to retrieve one or more of the data sets, which of the competing applications has the highest priority relative to the other competing applications. The request prioritizer causes a data set requested by the application with the highest priority to be handled before requests from the applications.

Claims (65)

1. An in-memory data grid (IMDG) server comprising:

an input/output (i/o) interface for transmitting and receiving data over a network;

a random access memory (RAM) configured with an IMDG storing a plurality of different data sets; and

a processor, which is cooperatively operable with the i/o interface and the RAM, and is configured to:

receive from one or more of a plurality of applications, configured to be connected to the IMDG server through the network, requests for retrieval of data in one or more of the plurality of different data sets;

determine whether at least two of the plurality of applications are competing applications, which have requests for retrieval of data in the one or more of the plurality of data sets simultaneously pending at the IMDG server

when it is determined that there are competing applications, further:

determine a highest priority application, which of the competing applications with simultaneously pending requests, is the application having a highest priority relative to other ones of the competing applications, and

cause a simultaneously pending request which was requested by the highest priority application to be responded to, by sending requested data to the highest priority application, before responding to other simultaneously pending requests requested by the other ones of the competing applications;

determine whether a totality of all requests from the plurality of applications, for retrieval of data in the plurality of different data sets, is greater than a threshold over a given time frame;

when it is determined that the totality of all requests is greater than the threshold over the given time frame, limit transmission of requested data sent to the highest priority application to a pre-determined limit; and

when it is determined that a totality of all requests is not greater than the threshold over the given time frame, refrain from limiting transmission of requested data sent to the highest priority application to the pre-determined limit.

2. The IMDG server according to claim 1 , wherein

the processor determines the highest priority application of the competing applications based on an explicit request by an IMDG client that coordinates the competing applications, the explicit request further establishing internal rules for determining which of the competing applications should be the highest priority application.

3. The IMDG server according to claim 1 , wherein

the processor determines the highest priority application of the competing applications based on an internal predetermined priority policy of the IMDG server.

4. The IMDG server according to claim 1 , wherein

the processor determines the highest priority application of the competing applications based on a frequency of requests, by the highest priority application, for retrieval of data in the plurality of different data sets, exceeding a pre-determined threshold over a predetermined period of time.

5. The IMDG server according to claim 4 , wherein the processor is further configured to:

determine whether there is a diminishment in the frequency of requests, by the highest priority application, for the retrieval of data in the plurality of different data sets, to below the pre-determined threshold over the predetermined period of time, and

when it is determined that there is the diminishment, deassign the highest priority application so it is no longer the highest priority application.

6. The IMDG server according to claim 1 , wherein the processor is further configured to:

recognize a predetermined time of day or an entire predetermined day as being a peak time for a particular application to predictably make a high number of requests for retrieval of data in the plurality of different data sets, and

when the competing applications have requests for retrieval of data in the one or more of the plurality of data sets simultaneously pending at the peak time, determine the highest priority application to be the particular application likely to make an exceedingly high number of requests for retrieval of data.

7. A method, implemented in an in-memory data grid (IMDG) server comprising a random access memory (RAM) configured with an IMDG, an input/output (i/o) interface for transmitting and receiving data over a network, and a processor which is cooperatively operable with the i/o interface and the RAM, the method comprising:

storing, by the processor, in the IMDG, a plurality of different data sets;

receiving, by the processor, from one or more of a plurality of applications configured to be connected to the IMDG server through the network, requests for retrieval of data in one or more of the plurality of different data sets;

determining, by the processor, whether at least two of the plurality of applications are competing applications, which have requests for retrieval of data in the one or more of the plurality of data sets simultaneously pending at the IMDG server;

when it is determined that there are competing applications, further:

determining, by the processor, a highest priority application, which of the competing applications with simultaneously pending requests, is the application having a highest priority relative to other ones of the competing applications, and

causing, by the processor, a simultaneously pending request, which was requested by the highest priority application, to be responded to, by sending requested data to the highest priority application, before responding to other simultaneously pending requests requested by the other ones of the competing applications;

determining, by the processor, whether a totality of all requests from the plurality of applications, for retrieval of data in the plurality of different data sets, is greater than a threshold over a given time frame;

when it is determined that the totality of all requests is greater than the threshold over the given time frame, limiting, by the processor, transmission of requested data sent to the highest priority application to a pre-determined limit; and

when it is determined that a totality of all requests is not greater than the threshold over the given time frame, refraining from limiting, by the processor, transmission of requested data sent to the highest priority application to the pre-determined limit.

8. The method according to claim 7 , wherein

determining the highest priority application of the competing applications is based on an explicit request by an IMDG client that coordinates the competing applications, the explicit request further establishing internal rules for determining which of the competing applications should be the highest priority application.

9. The method according to claim 7 , wherein

determining the highest priority application of the competing applications is based on an internal predetermined priority policy of the IMDG server.

10. The method according to claim 7 wherein

determining the highest priority application of the competing applications is based on a frequency of requests, by the highest priority application, for retrieval of data in the plurality of different data sets, exceeding a pre-determined threshold over a predetermined period of time.

11. The method according to claim 10 , further comprising:

determining, by the processor, whether there is a diminishment in the frequency of requests by the highest priority application, for the retrieval of data in the plurality of different data sets, to below the pre-determined threshold over the predetermined period of time, and

when it is determined that there is the diminishment, deassigning, by the processor, the highest priority application so it is no longer the highest priority application.

12. The method according to claim 11 , further comprising:

recognizing, by the processor, a predetermined time of day or an entire predetermined day as being a peak time for a particular application to predictably make a high number of requests for retrieval of data in the plurality of different data sets, and

when the competing applications have requests for retrieval of data in the one or more of the plurality of data sets simultaneously pending at the peak time, determining, by the processor, the particular application likely to make an exceedingly high number of requests for retrieval of data.

13. A non-transitory, computer-readable storage medium with instructions stored thereon, which when executed by a processor in an in-memory data grid (IMDG) server that has an input/output (i/o) interface that transmits and receives data over a network, and that has a random access memory (RAM) that stores an IMDG, the processor being cooperatively operable with the RAM and the i/o interface, performs a method comprising:

storing, by the processor, in the IMDG, a plurality of different data sets;

receiving, by the processor, from one or more of a plurality of applications configured to be connected to the IMDG server though the network, requests for retrieval of data in one or more of the plurality of different data sets;

determining, by the processor, whether at least two of the plurality of applications are competing applications, which have requests for retrieval of data in the one or more of the plurality of data sets simultaneously pending at the IMDG server;

when it is determined that there are competing applications, further:

determining, by the processor, a highest priority application, which of the competing applications with simultaneously pending requests, is the application having a highest priority relative to other ones of the competing applications; and

causing, by the processor, a simultaneously pending request, which was requested by the highest priority application, to be responded to, by sending requested data to the highest priority application, before responding to other simultaneously pending requests requested by the other ones of the competing applications;

determining, by the processor, whether a totality of all requests from the plurality of applications, for retrieval of data in the plurality of different data sets, is greater than a threshold over a given time frame;

when it is determined that the totality of all requests is greater than the threshold over the given time frame, limiting, by the processor, transmission of requested data sent to the highest priority application to a pre-determined limit; and

when it is determined that a totality of all requests is not greater than the threshold over the given time frame, refraining from limiting, by the processor, transmission of requested data sent to the highest priority application to the pre-determined limit.

14. The non-transitory, computer-readable storage medium according to claim 13 , wherein:

determining the highest priority application of the competing applications is based on an explicit request by an IMDG client that coordinates the competing applications, the explicit request further establishing internal rules for determining which of the competing applications should be the highest priority application.

15. The non-transitory, computer-readable storage medium according to claim 13 , wherein:

determining the highest priority application of the competing applications is based on an internal predetermined priority policy of the IMDG server.

16. The non-transitory, computer-readable storage medium according to claim according to claim 13 , wherein:

determining the highest priority application of the competing applications is based on a frequency of requests, by the highest priority application, for retrieval of data in the plurality of different data sets, exceeding a pre-determined threshold over a predetermined period of time.

17. The non-transitory, computer-readable storage medium according to claim 16 , comprising further instructions such that the method further comprises:

determining, by the processor, whether there is a diminishment in the frequency of requests by the highest priority application, for the retrieval of data in the plurality of different data sets, to below the pre-determined threshold over the predetermined period of time, and

when it is determined that there is a diminishment, deassigning, by the processor, the highest priority application so it is no longer the highest priority application.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2024
From: SUPER IPAAS INTEGRATION LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 069440/0958 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2024
From: SOFTWARE AG, LLC
To: SUPER IPAAS INTEGRATION LLC
Reel/Frame 069319/0220 →
CHANGE OF NAME Recorded Oct 31, 2024
From: SAG 1, LLC
To: SOFTWARE AG, LLC
Reel/Frame 069287/0635 →
CHANGE OF NAME Recorded Sep 26, 2024
From: SOFTWARE AG, INC.
To: SAG 1, LLC
Reel/Frame 069064/0575 →
MERGER Recorded Sep 25, 2024
From: SOFTWARE AG USA, INC.
To: SOFTWARE AG, INC.
Reel/Frame 068693/0619 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2014
From: MEHRA, GAGAN
To: SOFTWARE AG USA INC.
Reel/Frame 033627/0663 →
Continuity (1)
Related Publication 20160065673A1 · Mar 3, 2016