Fault-tolerant patching system
First Claim
1. A computer-implemented method of patching a computer program, comprising:
- determining, automatically, which portions of the computer program are going to be updated by a patch;
in response to determining which portions of the computer program are going to be updated, automatically making a copy of one or more portions that are going to be updated;
after making the copy, attempting to apply the patch to the computer program;
determining, automatically, whether a failure occurred during the attempt to apply the patch to the computer program; and
in response to determining that a failure occurred during the attempt to apply the patch to the computer program, automatically restoring the computer program to a previous state by replacing one or more previously copied portions of the computer program with the copy.
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.
41 Citations
18 Claims
-
1. A computer-implemented method of patching a computer program, comprising:
-
determining, automatically, which portions of the computer program are going to be updated by a patch;
in response to determining which portions of the computer program are going to be updated, automatically making a copy of one or more portions that are going to be updated;
after making the copy, attempting to apply the patch to the computer program;
determining, automatically, whether a failure occurred during the attempt to apply the patch to the computer program; and
in response to determining that a failure occurred during the attempt to apply the patch to the computer program, automatically restoring the computer program to a previous state by replacing one or more previously copied portions of the computer program with the copy. - View Dependent Claims (2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15)
-
-
7. A computer-implemented method of preparing to patch a computer program, comprising:
-
determining, automatically, which portions of the computer program are going to be updated by a patch;
in response to determining which portions of the computer program are going to be updated, automatically attempting to make a copy of one or more portions that are going to be updated;
determining, automatically, whether a failure occurred during the attempt to make the copy of the one or more portions; and
in response to determining that a failure occurred during the attempt to make the copy of the one or more portions, aborting a patching operation before the patching operation modifies any of the one or more portions. - View Dependent Claims (16)
-
-
8. A computer-implemented method of preparing to patch files, comprising:
-
instructing two or more nodes to make copies of two or more file portions that are going to be updated by a patch, wherein at least two of the two or more file portions reside on different nodes of the two or more nodes;
determining whether any of the two or more nodes was unable to make a copy of a file portion that resides on that node;
if any of the two or more nodes was unable to make a copy of a file portion that resides on that node, then instructing the two or more nodes to abort a patching operation before any of the two or more file portions has been updated by the patch; and
if none of the two or more nodes was unable to make a copy of a file portion that resides on that node, then instructing the two or more nodes to proceed with the patching operation. - View Dependent Claims (9, 17, 18)
-
Specification