IP Library Granted Patent US 9,645,756
Granted Patent B2
US 9,645,756 · App. 15/163,299 · Granted May 9, 2017

Optimization of in-memory data grid placement

Inventors: Nitin Gaur (Round Rock, TX); Kulvir S. Bhogal (Pflugerville, TX); Christopher D. Johnson (Rochester, MN); Todd E. Kaplinger (Raleigh, NC); Douglas C. Berg (Rochester, MN)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0619G06F3/061G06F3/065G06F3/067G06F3/0631G06F3/0644G06F9/5072G06F11/1425G06F11/1464
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,645,756
App. No.
15/163,299
Granted
May 9, 2017
Kind
B2
Abstract

A method, system, and program product for optimizing distribution and availability of data partitions is disclosed. Placement logic is run for data partition distribution which optimizes a configuration of a memory data grid. A determination of a change in performance of the memory data grid after adding new members to the memory data grid is provided. Replication of data partitions in the memory data grid is minimized. Optimum data partition distribution in the memory data grid is determined.

Claims (55)

1. A method for optimizing data partition distribution in a memory data grid which includes a plurality of data partitions, comprising:

synchronizing the plurality of data partitions;

running placement logic for a data partition distribution which optimizes a configuration of a memory data grid;

determining performance change of the memory data grid after adding new members to the memory data grid for adding available space to the memory data grid;

determining whether the memory data grid will become unstable if at least one of the synchronized plurality of data partitions is added, wherein a created data partition replication is shut off when it is determined that the memory data grid will become unstable if the at least one of the synchronized plurality of data partitions is added;

turning the created data partition replication on and off based on availability in the memory data grid to replicate all of the synchronized plurality of data partitions;

creating one or more replica data partitions from the plurality of data partitions;

converting a first one of the replica data partitions to a corresponding primary data partition;

determining an optimal data partition distribution in the memory data grid based on network topology and by observing network latency, disaster recovery parameters, grid size, and grid performance for containers placed in the memory data grid;

creating a plurality of policies for deciding whether synchronization of the optimal data partition distribution should be synchronous or asynchronous;

reducing invalidation traffic by placing the synchronized plurality of data partitions with the containers in the memory data grid; and

dynamically changing a data partition synchronization to an optimal data partition synchronization based on one of the polices.

2. The method of claim 1 , wherein determining optimum partition distribution in the memory data grid includes a policy driven by a service level agreement with a grid transaction response criteria.

3. The method of claim 1 , wherein determining the optimal data partition distribution in the memory data grid includes a data partition distribution algorithm which ensures that primary and replica data partitions are not in a same container.

4. The method of claim 1 , wherein determining the optimal data partition distribution in the memory data grid includes monitoring data partition placements and grid membership changes.

5. The method of claim 1 , wherein determining the optimal data partition distribution in the memory data grid includes monitoring transaction times with a performance management interface.

6. The method of claim 1 , wherein determining the optimal data partition distribution in the memory data grid includes analyzing usage patterns of the synchronized plurality of data partitions.

7. The method of claim 1 , determining optimum data partition distribution in the memory data grid includes determining whether optimal replication of the synchronized plurality of data partitions is synchronous or asynchronous.

8. A computer program product for optimizing data partition distribution in a memory data grid, the computer program product including a non-transitory machine-readable storage medium having computer readable code embodied therewith, the computer readable program code comprising:

computer readable program code that optimizes a data partition distribution in a memory data grid which includes a plurality of data partitions; and

computer readable program code that synchronizes the plurality of data partitions;

computer readable program code that runs placement logic for the data partition distribution which optimizes a configuration of the memory data grid;

computer readable program code that determines a performance change in the memory grid after adding new members to the memory data grid for adding available space to the memory data grid;

computer readable program code that determines whether the memory data grid will become unstable if at least one of the synchronized plurality of data partitions is added, wherein a created data partition replication is shut off when it is determined that the memory data grid will become unstable if the at least one of the synchronized plurality of data partitions is added;

computer readable program code that turns the created data partition replication on and off based on availability in the memory data grid to replicate all of the synchronized plurality of data partitions;

computer readable program code that creates one or more replica data partitions from the synchronized plurality of data partitions;

computer readable program code that converts one of the replica data partitions to a corresponding primary data partition;

computer readable program code that determines an optimal data partition distribution in the memory data grid based on network topology, and by observing network latency, disaster recovery parameters, grid size, and grid performance for containers placed in the memory data grid;

computer readable program code that creates a plurality of policies for deciding whether synchronization of the optimal data partition distribution should be synchronous or asynchronous;

computer readable program code that reduces invalidation traffic by placing the synchronized plurality of data partitions with the containers in the memory data grid; and

computer readable program code that dynamically changes a data partition synchronization to an optimal data partition synchronization based on one of the polices.

9. The computer program product of claim 8 , wherein determining the optimal partition distribution in the memory data grid includes a policy driven by a service level agreement with grid transaction response criteria.

10. The computer program product of claim 8 , wherein determining the optimal data partition distribution in the memory data grid includes a data partition distribution algorithm which ensures that primary and replica data partitions are not in a same container.

11. The computer program product of claim 8 , wherein determining the optimal data partition distribution in the memory data grid includes monitoring data partition placements and grid membership changes.

12. The computer program product of claim 8 , wherein determining the optimal data partition distribution in the memory data grid includes monitoring transaction times with a performance management interface.

13. The computer program product of claim 8 , wherein determining the optimal data partition distribution in the memory data grid includes analyzing usage patterns of the synchronized plurality of data partitions.

14. The computer program product of claim 8 , wherein determining the optimal data partition distribution in the memory data grid includes determining whether optimal replication of the synchronized plurality of data partitions is synchronous or asynchronous.

15. A system comprising:

a computer including a computer processor for optimizing data partition distribution in a memory data grid which includes a plurality of data partitions; and

a data partition optimization engine for synchronizing the plurality of data partitions, the data partition optimization engine being operable to:

run placement logic for data partition distribution which optimizes a configuration of the memory data grid;

determine performance change of the memory data grid after adding new members to the memory data grid for adding available space to the memory data grid;

determine whether the memory data grid will become unstable if at least one of the synchronized plurality of data partitions is added, wherein a created data partition replication is shut off when it is determined that the memory data grid will become unstable if the at least one of the plurality of data partitions is added;

turn a replication of the data partitions on and off based on availability in the memory data grid to replicate all of the synchronized plurality of data partitions; create one or more replica partitions from the synchronized plurality of data partitions;

convert one of the replica data partitions to a corresponding primary data partition;

determine an optimal data partition distribution in the memory data grid based on network topology, and by observing network latency, disaster recovery parameters, grid size, and grid performance for containers placed in the memory data grid;

create a plurality of policies for deciding whether synchronization of the optimal data partition distribution should be synchronous or asynchronous;

reduce invalidation traffic by placing the synchronized plurality of data partitions with the containers in the memory data grid; and

dynamically change a data partition synchronization to an optimal data partition synchronization based on one of the polices.

16. The system of claim 15 , wherein determining the optimal partition distribution in the memory data grid includes a policy driven by a service level agreement with grid transaction response criteria.

17. The system of claim 15 , wherein determining the optimal data partition distribution in the memory data grid includes a data partition distribution algorithm which ensures that primary and replica data partitions are not in a same container.

18. The system of claim 15 , wherein determining the optimal data partition distribution in the memory data grid includes monitoring data partition placements and grid membership changes.

19. The system of claim 15 , wherein determining t h e optimal data partition distribution in the memory data grid includes monitoring transaction times with a performance management interface.

20. The system of claim 15 , wherein determining the optimal data partition distribution in the memory data grid includes analyzing usage patterns of the the synchronized plurality of data partitions.

21. The system of claim 15 , determining the optimal data partition distribution in the memory data grid includes determining whether optimal replication of the synchronized plurality of data partitions is synchronous or asynchronous.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 058213/0912 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2016
From: GAUR, NITIN; BHOGAL, KULVIR S.; JOHNSON, CHRISTOPHER D.; KAPLINGER, TODD E.; BERG, DOUGLAS C.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039880/0418 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2016
From: GAUR, NITIN; BHOGAL, KULVIR S.; JOHNSON, CHRISTOPHER D.; KAPLINGER, TODD E.; BERG, DOUGLAS C.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038728/0563 →
Continuity (2)
Continuation 13154294 · Jun 6, 2011
Related Publication 20160266832A1 · Sep 15, 2016