IP Library › Granted Patent US 8,364,908
Granted Patent B2
US 8,364,908 · App. 12/110,409 · Granted Jan 29, 2013

Migrating program objects in a multi-node computer system

Inventors: Eric L. Barsness (Pine Island, MN); David L. Darrington (Rochester, MN); Amanda Peters (Rochester, MN); John M. Santosuosso (Rochester, MN)
Assignee: International Business Machines Corporation
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 8,364,908
App. No.
12/110,409
Granted
Jan 29, 2013
Kind
B2
Abstract

Embodiments of the invention enable application programs running across multiple compute nodes of a highly-parallel system to selectively migrate objects from one node to another. For example, when an object becomes too large, a node containing the object may migrate the object to another node, thereby freeing memory space. Whether a large object is migrated can be dependent on how frequently the object is used by the application. Because the memory used by such an object is freed for other uses by the application, overall application performance may be improved. On large parallel systems with thousands of compute nodes, even relatively small improvements in application performance an individual compute node may be magnified many times, resulting in dramatic improvements in overall application performance.

Claims (69)

1. A method for migrating program objects on a multi-node system, comprising:

detecting that an application program being executed by a first compute node of the multi-node system is going to instantiate an object;

allocating a memory space for the object on the first compute node;

monitoring one or more characteristics of the object while executing the application program on the first compute node; and

subsequently, while the application program is executed on the first compute node, migrating the object to a second compute node of the multi-node system, based on an evaluation of the one or more monitored characteristics, wherein the one or more monitored characteristics are one of: (i) a size of the object, wherein the object is migrated when the size of the object exceeds a specified threshold, and (ii) a frequency rate at which the application program accesses the object, wherein the object is migrated when the frequency rate falls below a specified threshold.

2. The method of claim 1 , wherein the one or more characteristics is the size of the object, and wherein the object is migrated when the size of the object exceeds a specified threshold.

3. The method of claim 1 , wherein the one or more characteristics is the frequency rate at which the application program accesses the object, and wherein the object is migrated when the frequency rate falls below a specified threshold.

4. The method of claim 1 , further comprising:

subsequently, migrating the object back to the first node.

5. The method of claim 1 , further comprising:

intercepting a request by the application program to invoke a method call of the object;

redirecting the request to the second compute node; and

invoking the method call of the object on the second compute node;

receiving a result from the invocation of the method call; and

passing the result to the application program running on the first compute node.

6. The method of claim 1 , wherein the first compute node is one of a first plurality of compute nodes configured to execute the application program and wherein the second compute node is one of a second plurality of compute nodes dedicated to storing objects instantiated by the application program executed on the first plurality of compute nodes.

7. The method of claim 1 , wherein the application program is being executed on a virtual machine running on the first compute node.

8. A computer-readable storage medium containing a program which, when executed by a processor, performs an operation for migrating program objects on a multi-node system, the operation comprising:

detecting that an application program being executed by a first compute node of the multi-node system is going to instantiate an object;

allocating a memory space for the object on the first compute node;

monitoring one or more characteristics of the object while executing the application program on the first compute node; and

subsequently, while the application program is executed on the first compute node, migrating the object to a second compute node of the multi-node system, based on an evaluation of the one or more monitored characteristics, wherein the one or more monitored characteristics are one of: (i) a size of the object, wherein the object is migrated when the size of the object exceeds a specified threshold, and (ii) a frequency rate at which the application program accesses the object, wherein the object is migrated when the frequency rate falls below a specified threshold.

9. The computer-readable storage medium of claim 8 , wherein the one or more characteristics is the size of the object, and wherein the object is migrated when the size of the object exceeds a specified threshold.

10. The computer-readable storage medium of claim 8 , wherein the one or more characteristics is the frequency rate at which the application program accesses the object, and wherein the object is migrated when the frequency rate falls below a specified threshold.

11. The computer-readable storage medium of claim 8 , wherein the operation further comprises:

subsequently, migrating the object back to the first node.

12. The computer-readable storage medium of claim 8 , further comprising:

intercepting a request by the application program to invoke a method call of the object;

redirecting the request to the second compute node; and

invoking the method call of the object on the second compute node;

receiving a result from the invocation of the method call; and

passing the result to the application program running on the first compute node.

13. The computer-readable storage medium of claim 8 , wherein the first compute node is one of a first plurality of compute nodes configured to execute the application program and wherein the second compute node is one of a second plurality of compute nodes dedicated to storing objects instantiated by the application program executed on the first plurality of compute nodes.

14. The computer-readable storage medium of claim 8 , wherein the program executed by the processor is a virtual machine program.

15. A system, comprising:

at least one storage node, having a processor and a memory, dedicated to storing objects instantiated by an application program; and

a plurality of compute nodes, each having a processor and a memory, configured to execute the application program and a program configured for migrating objects created by the application program to the at least one storage node by performing the steps of:

detecting that the application program being executed by a compute node is going to instantiate an object;

allocating a memory space for the object on the compute node;

monitoring one or more characteristics of the object while executing the application program on the compute node; and

subsequently, while the application program is executed on the compute node, migrating the object to the at least one storage node, based on an evaluation of the one or more monitored characteristics, wherein the one or more monitored characteristics are one of: (i) a size of the object, wherein the object is migrated when the size of the object exceeds a specified threshold, and (ii) a frequency rate at which the application program accesses the object, wherein the object is migrated when the frequency rate falls below a specified threshold.

16. The system of claim 15 , wherein the one or more characteristics is the size of the object, and wherein the object is migrated when the size of the object exceeds a specified threshold.

17. The system of claim 15 , wherein the one or more characteristics is the frequency rate at which the application program accesses the object, and wherein the object is migrated when the frequency rate falls below a specified threshold.

18. The system of claim 15 , wherein the steps performed by the program further comprise:

subsequently, migrating the object back to the compute node.

19. The system of claim 15 , wherein the steps performed by the program further comprise:

intercepting a request by the application program to invoke a method call of the object;

redirecting the request to the at least one storage node; and

invoking the method call of the object on the at least one storage node;

receiving a result from the invocation of the method call; and

passing the result to the application program running on the compute node.

20. The system of claim 15 , wherein the program configured for migrating the objects created by the application program to the at least one storage node is a virtual machine.

21. A computer-readable storage medium containing a program which, when executed by a processor, performs an operation for migrating program objects on a multi-node system, the operation comprising:

detecting that an application program being executed by a first compute node of the multi-node system is going to instantiate an object;

allocating a memory space for the object on the first compute node;

monitoring one or more characteristics of the object while executing the application program on the first compute node;

subsequently, while the application program is executed on the first compute node, migrating the object to a second compute node of the multi-node system, based on an evaluation of the one or more monitored characteristics;

intercepting a request by the application program to invoke a method call of the object;

redirecting the request to the second compute node; and invoking the method call of the object on the second compute node; receiving a result from the invocation of the method call; and passing the result to the application program running on the first compute node.

22. A computer-readable storage medium containing a program which, when executed by a processor, performs an operation for migrating program objects on a multi-node system, the operation comprising:

detecting that an application program being executed by a first compute node of the multi-node system is going to instantiate an object;

allocating a memory space for the object on the first compute node;

monitoring one or more characteristics of the object while executing the application program on the first compute node;

subsequently, while the application program is executed on the first compute node, migrating the object to a second compute node of the multi-node system, based on an evaluation of the one or more monitored characteristics, wherein the first compute node is one of a first plurality of compute nodes configured to execute the application program and wherein the second compute node is one of a second plurality of compute nodes dedicated to storing objects instantiated by the application program executed on the first plurality of compute nodes.

23. A computer-readable storage medium containing a program which, when executed by a processor, performs an operation for migrating program objects on a multi-node system, the operation comprising:

detecting that an application program being executed by a first compute node of the multi-node system is going to instantiate an object;

allocating a memory space for the object on the first compute node;

monitoring one or more characteristics of the object while executing the application program on the first compute node;

subsequently, while the application program is executed on the first compute node, migrating the object to a second compute node of the multi-node system, based on an evaluation of the one or more monitored characteristics; and subsequently, migrating the object back to the first node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2008
From: BARSNESS, ERIC L; DARRINGTON, DAVID L; PETERS, AMANDA; SANTOSUOSSO, JOHN M
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020862/0434 →
Continuity (1)
Related Publication 20090271588A1 · Oct 29, 2009