Fault-tolerant patching system
First Claim
1. A computer-implemented method of preparing to patch files, comprising:
- interacting with two or more computers to identify two or more file portions of a target program residing on the two or more computers that are targeted for update by a patch, wherein the interacting comprises comparing contents of the patch with contents of the target program residing on the two or more computers;
instructing the two or more computers to make copies of the identified two or more file portions that are targeted for update by the patch, wherein at least two of the two or more file portions reside on different computers of the two or more computers;
determining whether at least one computer of the two or more computers was unable to make a copy of a file portion that resides on that computer, wherein the two or more computers include a first computer and a second computer that is different than the first computer;
determining that the first computer was unable to make a copy of a file portion that resides on the first computer;
determining that the second computer was able to make a copy of a file portion that resides on the second computer;
in response to determining that the first computer was unable to make a copy of a file portion that resides on the first computer, then;
(a) instructing the first computer to abort a patching operation before any of the two or more file portions has been updated by the patch, and(b) instructing the second computer to abort the patching operation;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques that promote a fault-tolerant patching system are described. According to one such technique, a patching operation is performed in two phases. During the first phase, before the updates specified in the patching operation are actually applied, an attempt is made to backup files, or portions thereof, which are going to be updated by the patching operation. If a failure is detected during the first phase, then the patching operation aborts without proceeding to the second phase. During the second phase, an attempt is made to perform the updates that the patching operation specifies. If a failure is detected during the second phase, then all of the updated files, or portions thereof, are restored; those files or file portions are replaced with their corresponding backed-up copies, which were made during the first phase. The foregoing technique is extensible to a system in which prospectively affected files are distributed among nodes.
16 Citations
22 Claims
-
1. A computer-implemented method of preparing to patch files, comprising:
-
interacting with two or more computers to identify two or more file portions of a target program residing on the two or more computers that are targeted for update by a patch, wherein the interacting comprises comparing contents of the patch with contents of the target program residing on the two or more computers; instructing the two or more computers to make copies of the identified two or more file portions that are targeted for update by the patch, wherein at least two of the two or more file portions reside on different computers of the two or more computers; determining whether at least one computer of the two or more computers was unable to make a copy of a file portion that resides on that computer, wherein the two or more computers include a first computer and a second computer that is different than the first computer; determining that the first computer was unable to make a copy of a file portion that resides on the first computer; determining that the second computer was able to make a copy of a file portion that resides on the second computer; in response to determining that the first computer was unable to make a copy of a file portion that resides on the first computer, then; (a) instructing the first computer to abort a patching operation before any of the two or more file portions has been updated by the patch, and (b) instructing the second computer to abort the patching operation; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 5, 6, 7, 11)
-
-
3. A volatile or non-volatile computer-readable storage medium storing instructions which, when executed by one or more processors, causes:
-
interacting with two or more computers to identify two or more file portions of a target program residing on the two or more computers that are targeted for update by a patch, wherein the interacting comprises comparing contents of the patch with contents of the target program residing on the two or more computers; instructing the two or more computers to make copies of the identified two or more file portions that are targeted for update by the patch, wherein at least two of the two or more file portions reside on different computers of the two or more computers; determining whether at least one computer of the two or more computers was unable to make a copy of a file portion that resides on that computer, wherein the two or more computers include a first computer and a second computer that is different than the first computer; determining that the first computer was unable to make a copy of a file portion that resides on the first computer; determining that the second computer was able to make a copy of a file portion that resides on the second computer; in response to determining that the first computer was unable to make a copy of a file portion that resides on (a) instructing the first computer to abort a patching operation before any of the two or more file portions has been updated by the patch, and (b) instructing the second computer to abort the patching operation. - View Dependent Claims (4, 8, 9, 10, 12)
-
-
13. A method for performing a distributed patching operation, the method comprising, as part of the distributed patching operation:
-
instructing a plurality of nodes of a multi-node system to patch a plurality of files that reside on the plurality of nodes; wherein a first file of the plurality of files resides on a first node of the plurality of nodes; wherein a second file of the plurality of files resides on a second node, of the plurality of nodes, that is different than the first node; determining whether a failure of the distributed patching operation occurred at two or more of the plurality of nodes; determining that a failure of the distributed patching operation occurred at the first node; determining that a failure of the distributed patching operation did not occur at the second node; in response to determining that a failure of the distributed patching operation occurred at the first node; (a) instructing the first node to abort the distributed patching operation, and (b) instructing the second node to abort the distributed patching operation; wherein the method is performed by two or more computing devices. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A volatile or non-volatile computer-readable storage medium for performing a distributed patching operation, the medium storing instructions which, when executed by one or more processors, cause, as part of the distributed patching operation:
-
instructing a plurality of nodes of a multi-node system to patch a plurality of files that reside on the plurality of nodes; wherein a first file of the plurality of files resides on a first node of the plurality of nodes; wherein a second file of the plurality of files resides on a second node, of the plurality of nodes, that is different than the first node; determining whether a failure of the distributed patching operation occurred at any of the plurality of nodes; determining that a failure of the distributed patching operation occurred at the first node; determining that a failure of the distributed patching operation did not occur at the second node; in response to determining that a failure of the distributed patching operation occurred at the first node; (a) instructing the first node to abort the distributed patching operation, and (b) instructing the second node to abort the distributed patching operation. - View Dependent Claims (19, 20, 21, 22)
-
Specification