IP Library Granted Patent US 9,063,772
Granted Patent B2
US 9,063,772 · App. 14/485,435 · Granted Jun 23, 2015

Automated caching and mirroring of immutable data in distributed virtual machines via native interface components

Inventors: Michael H. Dawson (Ottawa, CA); Graeme D. Johnson (Ottawa, CA)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/465G06F9/46G06F9/466G06F9/54G06F9/44
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,063,772
App. No.
14/485,435
Granted
Jun 23, 2015
Kind
B2
Abstract

An initial request for a reference to a data container is sent to a distributed enhanced virtual machine native interface component of a distributed virtual machine in response to receiving, from a remote execution container, the initial request for the reference to the data container at a distributed enhanced remote execution container native interface component of the distributed virtual machine. A data mirror data structure including immutable data and the reference to the data container is received. The received data mirror data structure including the immutable data and the reference to the data container is stored within a local memory storage area. A reference to the locally-stored data mirror data structure is returned to the remote execution container in response to the initial request for the reference to the data container.

Claims (62)

1. A method, comprising:

at a distributed enhanced remote execution container native interface component of a distributed virtual machine:

sending, in response to receipt of an initial request for a reference to a data container from a remote execution container, the initial request for the reference to the data container to a distributed enhanced virtual machine native interface component of the distributed virtual machine;

receiving a data mirror data structure comprising immutable data and the reference to the data container in response to the initial request for the reference to the data container;

storing the received data mirror data structure comprising the immutable data and the reference to the data container within a local memory storage area; and

returning a reference to the locally-stored data mirror data structure to the remote execution container in response to the initial request for the reference to the data container.

2. The method of claim 1 , further comprising processing a request for an additional item of data associated with the data container using the locally-stored data mirror data structure.

3. The method of claim 2 , where processing the request for the additional item of data associated with the data container using the locally-stored data mirror data structure comprises:

receiving the request for the additional item of data associated with the data container from the remote execution container;

determining whether the request for the additional item of data associated with the data container comprises a request for immutable data that is available within the locally-stored data mirror data structure; and

in response to determining that the request for the additional item of data associated with the data container comprises the request for immutable data that is available within the locally-stored data mirror data structure:

extracting the requested immutable data from the locally-stored data mirror data structure; and

returning the requested immutable data to the remote execution container in response to the request for the additional item of data.

4. The method of claim 1 , further comprising performing lifetime management of the locally-stored data mirror data structure.

5. The method of claim 4 , where performing the lifetime management of the locally-stored data mirror data structure comprises:

detecting an invocation of a call to a DeleteLocalReference routine comprising a reference to the locally-stored data mirror data structure as a parameter; and

freeing memory allocated to the locally-stored data mirror data structure in response to the invocation of the call to the DeleteLocalReference routine using the reference to the locally-stored data mirror data structure.

6. The method of claim 4 , where performing the lifetime management of the locally-stored data mirror data structure comprises:

detecting completion of execution of a native method executing in the remote execution container; and

freeing memory for all remaining non-global locally-stored data mirror data structures within a context of the native method in response to detecting the completion of execution of the native method.

7. The method of claim 4 , where performing the lifetime management of the locally-stored data mirror data structure comprises:

detecting an invocation of a call to a DeleteGlobalRef routine comprising a reference to a new locally-stored global data mirror data structure as a parameter; and

in response to detecting the invocation of the DeleteGlobalRef routine:

extracting a global reference from the new locally-stored global data mirror data structure;

making a call to the remote execution container to delete the global reference to the new locally-stored global data mirror data structure; and

freeing memory allocated to the new locally-stored global data mirror data structure.

8. A computer readable storage medium storing instructions which, when executed on one or more programmed processors, carry out the method according to claim 1 , where the computer readable storage medium is not a transitory signal per se.

9. A method, comprising:

at a distributed enhanced virtual machine native interface component of a distributed virtual machine:

receiving, from a distributed enhanced remote execution container native interface component of the distributed virtual machine, an initial request for a reference to a data container;

identifying immutable data within the data container in response to receipt of the initial request for the reference to the data container;

constructing a data mirror data structure that comprises the identified immutable data and the requested reference to the data container; and

sending the data mirror data structure comprising the identified immutable data and the requested reference to the data container in response to the initial request for the reference to the data container to the distributed enhanced remote execution container native interface component of the distributed virtual machine.

10. The method of claim 9 , where constructing the data mirror data structure that comprises the identified immutable data and the requested reference to the data container comprises constructing the data mirror data structure with a portion of the immutable data.

11. The method of claim 9 , further comprising:

receiving a request for an additional item of data from the data container;

extracting the requested additional item of data from the data container; and

sending the requested additional item of data in response to the request for the additional item of data from the data container.

12. The method of claim 11 , where sending the requested additional item of data in response to the request for the additional item of data within the data container comprises sending an additional item of non-immutable data from the data container.

13. The method of claim 11 , where sending the requested additional item of data in response to the request for the additional item of data within the data container comprises sending an additional item of immutable data.

14. A computer readable storage medium storing instructions which, when executed on one or more programmed processors, carry out the method according to claim 9 , where the computer readable storage medium is not a transitory signal per se.

15. A system, comprising:

a memory; and

a processor programmed to execute a distributed enhanced remote execution container native interface component of a distributed virtual machine configured to:

send, in response to receipt of an initial request for a reference to a data container from a remote execution container, the initial request for the reference to the data container to a distributed enhanced virtual machine native interface component of the distributed virtual machine;

receive a data mirror data structure comprising immutable data and the reference to the data container in response to the initial request for the reference to the data container;

store the received data mirror data structure comprising the immutable data and the reference to the data container within a local memory storage area of the memory; and

return a reference to the locally-stored data mirror data structure to the remote execution container in response to the initial request for the reference to the data container.

16. The system of claim 15 , where the processor is further programmed to process a request for an additional item of data associated with the data container using the locally-stored data mirror data structure.

17. The system of claim 15 , where the processor is further programmed to perform lifetime management of the locally-stored data mirror data structure.

18. A system, comprising:

a communication module; and

a processor programmed to execute a distributed enhanced virtual machine native interface component of a distributed virtual machine configured to:

receive, via the communication module, an initial request for a reference to a data container from a distributed enhanced remote execution container native interface component of the distributed virtual machine;

identify immutable data within the data container in response to receipt of the initial request for the reference to the data container;

construct a data mirror data structure that comprises the identified immutable data and the requested reference to the data container; and

send, via the communication module, the data mirror data structure comprising the identified immutable data and the requested reference to the data container in response to the initial request for the reference to the data container to the distributed enhanced remote execution container native interface component of the distributed virtual machine.

19. The system of claim 18 , where, in being programmed to construct the data mirror data structure that comprises the identified immutable data and the requested reference to the data container, the processor is programmed to construct the data mirror data structure with a portion of the immutable data.

20. The system of claim 18 , where the processor is further programmed to:

receive a request for an additional item of data from the data container;

extract the requested additional item of data from the data container; and

send the requested additional item of data in response to the request for the additional item of data from the data container.

Assignments (2)
CORRECTIVE ASSIGNMENT TO ADD THE SECOND INVENOR PREVIOUSLY RECORDED AT REEL: 033734 FRAME: 0421. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 3, 2014
From: DAWSON, MICHAEL H.; JOHNSON, GRAEME D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033888/0579 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2014
From: DAWSON, MICHAEL H.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033734/0421 →
Continuity (2)
Continuation 13312246 · Dec 6, 2011
Related Publication 20150026684A1 · Jan 22, 2015