Fault-tolerant java virtual machine
First Claim
Patent Images
1. A method for providing a first Java Virtual Machine (“
- JVM”
) with mechanisms to support fault-tolerant operation, comprising the steps of;
(a) modifying the first JVM to use information maintained by the first JVM to identify objects that are created, modified, and/or discarded during a process of responding to an event of a transaction, such objects that are created, modified, and/or discarded during a process of responding to an event of a transaction defining at least a portion of a checkpoint;
(b) delivering to at least one second JVM the at least a portion of a checkpoint; and
(c) storing in the at least one second JVM the at least a portion of a checkpoint for use by the at least one second JVM in the processing of subsequent events of the transaction.
10 Assignments
0 Petitions
Accused Products
Abstract
A method for providing a first JVM with support for fault tolerance by using information maintained by the first JVM to checkpoint objects that are created, modified, and/or deleted during the process of responding to an event of a transaction. The checkpointed objects are sent to and stored in a second JVM such that the second JVM is fully capable of continuing the processing of the transaction in the event of the failure of the first JVM.
-
Citations
33 Claims
-
1. A method for providing a first Java Virtual Machine (“
- JVM”
) with mechanisms to support fault-tolerant operation, comprising the steps of;(a) modifying the first JVM to use information maintained by the first JVM to identify objects that are created, modified, and/or discarded during a process of responding to an event of a transaction, such objects that are created, modified, and/or discarded during a process of responding to an event of a transaction defining at least a portion of a checkpoint;
(b) delivering to at least one second JVM the at least a portion of a checkpoint; and
(c) storing in the at least one second JVM the at least a portion of a checkpoint for use by the at least one second JVM in the processing of subsequent events of the transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
(a) garbage collecting objects stored on the first JVM prior to the step of delivering; and
(b) modifying the first JVM to use information maintained by the first JVM to identify objects that are created, modified, and/or discarded during the step of garbage collection.
- JVM”
-
5. The method of claim 1 wherein the first JVM comprises a first checkpoint environment, the at least one second JVM comprises at least one second checkpoint environment, and the step of modifying further comprises storing the at least a portion of a checkpoint in the first checkpoint environment, and the step of delivering further comprises delivering the at least a portion of a checkpoint to the at least one second checkpoint environment of the at least one second JVM, and the step of storing further comprises the step of transferring the at least a portion of a checkpoint from the at least one second checkpoint environment to a memory of the at least one second JVM.
-
6. The method of claim 1 further comprising, substantially immediately subsequent to the step of storing, the step of processing the at least a portion of a checkpoint so that substantially the same transaction state is maintained in the memories of the first JVM and the at least one second JVM at substantially all times.
-
7. The method of claim 1 further comprising, subsequent to the step of delivering, storing the at least a portion of a checkpoint into a checkpoint environment of the at least a second JVM and, upon a failure of the first JVM, transferring the at least a portion of a checkpoint into memory of the at least one second JVM and replicating in the memory of the at least one second JVM the transaction state of the first JVM prior to failure of the first JVM so that the at least one second JVM is enabled to process subsequent events of the transaction.
-
8. The method of claim 1 wherein the at least a portion of a checkpoint further comprises administrative data for managing the at least a portion of a checkpoint.
-
9. The method of claim 1 wherein the step of delivering further comprises encoding and decoding objects and/or portions of objects.
-
10. The method of claim 1 wherein the step of delivering further comprises encoding and decoding objects and/or portions of objects, and the steps of encoding and decoding further comprises the steps of tracking pointers in the first JVM and adjusting pointers within the at least one second JVM to replicate in the at least one second JVM the relationships created between objects in the memory of the first JVM.
-
11. The method of claim 1 wherein the step of modifying further comprises determining within the first JVM the necessary content of the at least a portion of a checkpoint to permit replication in the at least one second JVM of the transaction state in the first JVM subsequent to the processing of an event of a transaction.
-
12. A method for providing a first Java Virtual Machine (“
- JVM”
) with mechanisms to support fault-tolerant operation, comprising the steps of;(a) modifying the first JVM to use information maintained by the first JVM to identify objects that are created, modifications that are made to objects, and/or objects that are discarded during a process of responding to an event of a transaction, such objects that are created, modifications that are made to objects, and/or objects that are discarded during a process of responding to an event of a transaction defining at least a portion of a checkpoint;
(b) delivering to at least one second JVM the at least a portion of a checkpoint; and
(c) storing in the at least one second JVM the at least a portion of a checkpoint for use by the at least one second JVM for processing subsequent events of the transaction. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
(a) garbage collecting objects stored on the first JVM prior to the step of delivering; and
(b) modifying the first JVM to use information maintained by the first JVM to identify objects that are created, modifications that are made to objects, and/or objects that are discarded during the step of garbage collection.
- JVM”
-
16. The method of claim 12 wherein the first JVM comprises a first checkpoint environment, the at least one second JVM comprises at least one second checkpoint environment, and the step of modifying further comprises storing the at least a portion of a checkpoint in the first checkpoint environment, and the step of delivering further comprises delivering the at least a portion of a checkpoint to the at least one second checkpoint environment of the at least one second JVM, and the step of storing further comprises the step of transferring the at least a portion of a checkpoint from the at least one second checkpoint environment to a memory of the at least one second JVM.
-
17. The method of claim 12 further comprising, substantially immediately subsequent to the step of storing, the step of processing the at least a portion of a checkpoint so that substantially the same transaction state is maintained in the memories of the first JVM and the at least one second JVM at substantially all times.
-
18. The method of claim 12 further comprising, subsequent to the step of delivering, storing the at least a portion of a checkpoint into a checkpoint environment of the at least a second JVM and, upon a failure of the first JVM, transferring the at least a portion of a checkpoint into memory of the at least one second JVM and replicating in the memory of the at least one second JVM the transaction state of the first JVM prior to failure of the first JVM so that the at least one second JVM is enabled to process subsequent events of the transaction.
-
19. The method of claim 12 wherein the at least a portion of a checkpoint further comprises administrative data for managing the at least a portion of a checkpoint.
-
20. The method of claim 12 wherein the step of delivering further comprises encoding and decoding objects and/or portions of objects.
-
21. The method of claim 12 wherein the step of delivering further comprises encoding and decoding objects and/or portions of objects, and the steps of encoding and decoding further comprises the steps of tracking pointers in the first JVM and adjusting pointers within the at least one second JVM to replicate in the at least one second JVM the relationships created between objects in the memory of the first JVM.
-
22. The method of claim 12 wherein the step of modifying further comprises determining within the first JVM the necessary content of the at least a portion of a checkpoint to permit replication in the at least one second JVM of the transaction state in the first JVM subsequent to the processing of an event of a transaction.
-
23. A method for providing a first Java Virtual Machine (“
- JVM”
) with mechanisms to support fault-tolerant operation, comprising the steps of;(a) modifying the first JVM to use information maintained by the first JVM to identify objects that are created, modified, and/or discarded during a process of responding to an event of a transaction, such objects that are created, modified, and/or discarded during a process of responding to an event of a transaction defining at least a portion of a checkpoint; and
(b) storing the at least a portion of a checkpoint in a checkpoint memory accessible by the at least one second JVM for use by the at least one second JVM in the processing of subsequent events of the transaction. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
(a) garbage collecting objects stored on the first JVM prior to the step of delivering; and
(b) modifying the first JVM to use information maintained by the first JVM to identify objects that are created, modified, and/or discarded during the step of garbage collection.
- JVM”
-
27. The method of claim 23 wherein the first JVM comprises a first checkpoint environment, the at least one second JVM comprises at least one second checkpoint environment, and the step of modifying further comprises saving the at least a portion of a checkpoint in the first checkpoint environment, and the step of storing further comprises storing the at least a portion of a checkpoint to the at least one second checkpoint environment of the at least one second JVM, and transferring the at least a portion of a checkpoint from the at least one second checkpoint environment to a memory of the at least one second JVM.
-
28. The method of claim 23 further comprising, substantially immediately subsequent to the step of storing, the step of processing the at least a portion of a checkpoint so that substantially the same transaction state is maintained in the memories of the first JVM and the at least one second JVM at substantially all times.
-
29. The method of claim 23 further comprising, subsequent to the step of storing, saving the at least a portion of a checkpoint into a checkpoint environment of the at least a second JVM and, upon a failure of the first JVM, transferring the at least a portion of a checkpoint into memory of the at least one second JVM and replicating in the memory of the at least one second JVM the transaction state of the first JVM prior to failure of the first JVM so that the at least one second JVM is enabled to process subsequent events of the transaction.
-
30. The method of claim 23 wherein the at least a portion of a checkpoint further comprises administrative data for managing the at least a portion of a checkpoint.
-
31. The method of claim 23 wherein the step of delivering further comprises encoding and decoding objects and/or portions of objects.
-
32. The method of claim 23 wherein the step of delivering further comprises encoding and decoding objects and/or portions of objects, and the steps of encoding and decoding further comprises the steps of tracking pointers in the first JVM and adjusting pointers within the at least one second JVM to replicate in the at least one second JVM the relationships created between objects in the memory of the first JVM.
-
33. The method of claim 23 wherein the step of modifying further comprises determining within the first JVM the necessary content of the at least a portion of a checkpoint to permit replication in the at least one second JVM of the transaction state in the first JVM subsequent to the processing of an event of a transaction.
Specification