DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1-20 are pending for examination. Claims 1, 8, and 15 are independent claims. This Office Action is FINAL.
Claim Interpretation
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as “configured to” or “so that”; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
Claim limitations in this application that use the word “means” (or “step”) are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word “means” (or “step”) are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action.
This application includes multiple claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitations uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitations are recited in claims 1-8, 11 and 15-20 with functional language italicized and generic placeholder and linking phrase in bold for claims 1-8, 11 and 15-20:
1. A system comprising:
a processing device; and
a non-transitory computer-readable memory comprising instructions for causing the processing device to:
detect that a failure has occurred with respect to a node of a plurality of nodes in a distributed computing environment; and
in response to detecting that the failure has occurred:
input characteristics for the node into a trained machine learning model;
receive, from the trained machine learning model in response to the input, a source of the failure with respect to the node;
automatically execute a recovery operation for the node based on the source of the failure; and
subsequent to automatically executing the recovery operation, update the trained machine learning model based on the inputted characteristics for the node and the source of the failure.
2. The system of claim 1, wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to, subsequent to automatically executing the recovery operation:
determine that a threshold amount of time has been exceeded;
in response to determining that the threshold amount of time has been exceeded, input additional characteristics for the node into the trained machine learning model; and
in response to inputting additional characteristics of the node into the trained machine learning model, receive, from the trained machine learning model, an indication of a future failure with respect to the node.
3. The system of claim 2, wherein the recovery operation is a first recovery operation, and wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to:
automatically execute a second recovery operation for the node based on the indication of the future failure of the node.
4. The system of claim 1, wherein the source of the failure is a configuration setting for the node, and wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to automatically execute the recovery operation by:
determining an adjustment to the configuration setting for the node to prevent reoccurrence of the failure with respect to the node;
transmitting a command to the node comprising the adjustment to the configuration setting, wherein the node is configured to execute the adjustment to the configuration setting in response to receiving the command; and
receiving, from the node, confirmation of the adjustment to the configuration setting.
5. The system of claim 1, wherein the source of the failure is a workload for the node, and wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to automatically execute the recovery operation by:
determining, based on the source of the failure, that the workload for the node exceeds a workload threshold;
determining a portion of the workload for the node to be redirected to cause the workload for the node to be below the workload threshold; and
redirecting at least the portion of the workload to another node in the plurality of nodes.
6. The system of claim 1, wherein the non-transitory computer- readable memory further comprises instructions executable by the processing device for causing the processing device to automatically execute the recovery operation by:
determining, based on the source of the failure, a security risk with respect to the node; and
in response to determining the security risk, automatically isolating the node from other nodes in the plurality of nodes by:
preventing the node from accessing shared resources in the distributed computing environment;
transmitting a command to the node to disconnect from a network configured to communicatively couple the plurality of nodes in the distributed computing environment; and
determining that the node has disconnected from the network.
7. The system of claim 1, wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to:
generate the trained machine learning model by training a machine learning model with a database comprising historical characteristics of nodes in the plurality of nodes that experienced failures; and
in response to automatically executing the recovery operation, update the database with the characteristics for the node,
wherein updating the trained machine learning model further comprises training the trained machine learning model using the updated database.
8. A method comprising:
detecting, by a processing device, that a failure has occurred with respect to a node of a plurality of nodes in a distributed computing environment; and
in response to detecting that the failure has occurred:
inputting, by the processing device, characteristics for the node into a trained machine learning model;
receiving, by the processing device, a source of the failure with respect to the node from the trained machine learning model in response to the input;
automatically executing, by the processing device, a recovery operation for the node based on the source of the failure; and
subsequent to automatically executing the recovery operation, updating, by the processing device, the trained machine learning model based on the inputted characteristics for the node and the source of the failure.
11. The method of claim 8, wherein the source of the failure is a configuration setting for the node, and wherein automatically executing the recovery operation further comprises:
determining an adjustment to the configuration setting for the node to prevent reoccurrence of the failure with respect to the node;
transmitting a command to the node comprising the adjustment to the configuration setting, wherein the node is configured to execute the adjustment to the configuration setting in response to receiving the command; and
receiving, from the node, confirmation of the adjustment to the configuration setting.
15. A non-transitory computer-readable medium comprising program code that is executable by a processing device for causing the processing device to:
detect that a failure has occurred with respect to a node of a plurality of nodes in a distributed computing environment; and
in response to detecting that the failure has occurred:
input characteristics for the node into a trained machine learning model;
receive, from the trained machine learning model in response to the input, a source of the failure with respect to the node;
automatically execute a recovery operation for the node based on the source of the failure; and
subsequent to automatically executing the recovery operation, update the trained machine learning model based on the inputted characteristics for the node and the source of the failure.
16. The non-transitory computer-readable medium of claim 15, further comprising program code executable by the processing device for causing the processing device to, subsequent to automatically executing the recovery operation:
determine that a threshold amount of time has been exceeded;
in response to determining that the threshold amount of time has been exceeded, input additional characteristics for the node into the trained machine learning model; and
in response to inputting additional characteristics of the node into the trained machine learning model, receive, from the trained machine learning model, an indication of a future failure with respect to the node.
17. The non-transitory computer-readable medium of claim 16, wherein the recovery operation is a first recovery operation, and wherein the non- transitory computer-readable medium further comprises program code executable by the processing device for causing the processing device to:
automatically execute a second recovery operation for the node based on the indication of the future failure of the node.
18. The non-transitory computer-readable medium of claim 15, wherein the source of the failure is a configuration setting for the node, and wherein the program code is further executable by the processing device for causing the processing device to automatically execute the recovery operation by:
determining an adjustment to the configuration setting for the node to prevent reoccurrence of the failure with respect to the node;
transmitting a command to the node comprising the adjustment to the configuration setting, wherein the node is configured to execute the adjustment to the configuration setting in response to receiving the command; and
receiving, from the node, confirmation of the adjustment to the configuration setting.
19. The non-transitory computer-readable medium of claim 15, wherein the source of the failure is a workload for the node, and wherein the program code is further executable by the processing device for causing the processing device to automatically execute the recovery operation by:
determining, based on the source of the failure, that the workload for the node exceeds a workload threshold;
determining a portion of the workload for the node to be redirected to cause the workload for the node to be below the workload threshold; and
redirecting at least the portion of the workload to another node in the plurality of nodes.
20. The non-transitory computer-readable medium of claim 15, further comprising program code executable by the processing device for causing the processing device to automatically execute the recovery operation by:
determining, based on the source of the failure, a security risk with respect to the node; and
in response to determining the security risk, automatically isolating the node from other nodes in the plurality of nodes by:
preventing the node from accessing shared resources in the distributed computing environment;
transmitting a command to the node to disconnect from a network configured to communicatively couple the plurality of nodes in the distributed computing environment; and
determining that the node has disconnected from the network.
Because these claim limitations are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, they are being interpreted to cover the corresponding structure described in the originally filed specification as performing the claimed function, and equivalents thereof. The portions of the specification that describe the corresponding structure that performs the claimed functions for the claims above are Fig. 2, paragraphs 0024-0026, Figs 1-2, paragraph 0003.
If applicant does not intend to have these limitations interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitations to avoid them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitations recite sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale or otherwise available to the public before the effective filing date of the claimed invention.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1, 8, and 15 are rejected under 35 U.S.C. 102(a)(1) and 35 U.S.C. 102(a)(2) as being anticipated by Rinaldi et al. (U.S. Patent Publn No. 2020/0151060 A1), hereinafter Rinaldi.
Regarding claim 1, Rinaldi teaches:
A system (Rinaldi, Fig. 1 and Fig. 2 computing environment 100 and 200) comprising:
a processing device (Rinaldi, Fig. 1 and Fig. 2 storage controller 102 that is a computational device and includes as described in paragraphs 038 “storage controller 102 … may comprise any suitable computational device including …a processing device, a controller …”. See also Fig. 18, storage controller with processor 1804); and
a non-transitory computer-readable memory comprising instructions for causing the processing device to (Rinaldi, Fig. 1, storage controller computation device includes a recovery mechanism selection application 104 and machine learning module (e.g. Neural Network) 106 that paragraph 0041 teaches “may be implemented in software, hardware, firmware …” Fig. 18 described in paragraph 0102 shows a system 1800 that can be storage controller 102 that includes memory 1806 and storage 1808 and “may include a program logic 1810 including code 1812 that may be loaded into the memory 1806 and executed by the processor 1804 or circuitry 1802.”):
detect that a failure has occurred with respect to a node (Rinaldi, Fig. 14, block 1402 and paragraphs 0079-0081. Block 1402 teaches “In response to an occurrence of a failure in a storage controller …”) of a plurality of nodes (Rinaldi, Fig. 2 shows two nodes server 206 and 208, see paragraph 0045. Paragraph 0003 teaches “The storage controller may include two or more servers, where each server may be referred to as a node…”) in a distributed computing environment (Rinaldi, Fig. 16, paragraph 0088 teaches cloud computing environment with one or more cloud computing nodes 10 (i.e. distributed computing environment) are accessed by cloud consumers. Paragraph 0112 teaches server nodes in storage controller may be implemented in distributed processing environment as shown in Fig. 16.); and
in response to detecting that the failure has occurred (Rinaldi, Fig. 14, block 1402 and paragraphs 0079-0081. Block 1402 teaches “In response to an occurrence of a failure in a storage controller …”):
input characteristics for the node into a trained machine learning model (Rinaldi, Fig. 14, block 1402 and paragraphs 0079-0081. Block 1402 teaches “providing input on a plurality of attributes of the storage controller at a time of occurrence of the failure to a machine learning module.” Fig. 4 shows input characteristics for node.);
receive, from the trained machine learning model in response to the input, a source of the failure with respect to the node (Rinaldi, Fig. 14, block 1404 and paragraphs 0079-0081. Block 1404 teaches “In response to receiving the input, the machine learning module 106 generates (at block 1404) a plurality of output values corresponding to a plurality of recovery mechanisms to recover from the failure in the storage controller 102.” Fig. 5 shows recovery mechanisms output by neural network MLM that shows the source of the failure may be server (block 502 “Server Failover”) or Adapter (block 510 “Device Adapter Failover”) or cache (block 524 “Flush cache”));
automatically execute a recovery operation for the node based on the source of the failure (Rinaldi, Fig. 14, block 1406 and paragraphs 0079-0081. Block 1406 teaches “A recovery is made from the failure in the storage controller 102, by applying (at block 1406) a recovery mechanism whose output value is greatest among the plurality of output values that are generated by the machine learning module.”); and
subsequent to automatically executing the recovery operation, update the trained machine learning model (Rinaldi, Fig. 15 shows training update of MLM as MLM is executing recovery operation shown in Fig. 14. Paragraph 0084, block 1508 “The process adjusts (at block 1508) weights of links that interconnect nodes of the plurality of layers via back propagation to reduce the margin of error, to improve a determination of a recovery mechanism for the failure.”) based on the inputted characteristics for the node (Rinaldi, Fig. 4 shows input characteristics for a node. Fig. 15, block 1502, paragraph 0083 “Control starts at block 1502 in which a machine learning module 106 receives inputs comprising to attributes of a storage controller 102, wherein the attributes affect failures that occur in the storage controller 102.”) and the source of the failure (Rinaldi, Fig. 4 shows input characteristics for a node. Fig. 15, blocks 1504-1508. The actual source of the failure determined in Fig. 14, block 1406 will have lowest margin of error (1018) in calculation of block 1506 (see calculation of margin of error shown in Figs. 9-10, described in paragraphs 0069-0073) (i.e. source of the failure)).
Regarding claim 8, Rinaldi teaches:
A method comprising:
detecting, by a processing device (Rinaldi, Fig. 1 and Fig. 2 storage controller 102 that is a computational device and includes as described in paragraphs 038 “storage controller 102 … may comprise any suitable computational device including …a processing device, a controller …”. See also Fig. 18, storage controller with processor 1804), that a failure has occurred with respect to a node (Rinaldi, Fig. 14, block 1402 and paragraphs 0079-0081. Block 1402 teaches “In response to an occurrence of a failure in a storage controller …”) of a plurality of nodes (Rinaldi, Fig. 2 shows two nodes server 206 and 208, see paragraph 0045. Paragraph 0003 teaches “The storage controller may include two or more servers, where each server may be referred to as a node…”) in a distributed computing environment (Rinaldi, Fig. 16, paragraph 0088 teaches cloud computing environment with one or more cloud computing nodes 10 (i.e. distributed computing environment) are accessed by cloud consumers. Paragraph 0112 teaches server nodes in storage controller may be implemented in distributed processing environment as shown in Fig. 16.); and
in response to detecting that the failure has occurred (Rinaldi, Fig. 14, block 1402 and paragraphs 0079-0081. Block 1402 teaches “In response to an occurrence of a failure in a storage controller …”):
inputting, by the processing device, characteristics for the node into a trained machine learning model (Rinaldi, Fig. 14, block 1402 and paragraphs 0079-0081. Block 1402 teaches “providing input on a plurality of attributes of the storage controller at a time of occurrence of the failure to a machine learning module.” Fig. 4 shows input characteristics for node.);
receiving, by the processing device, a source of the failure with respect to the node from the trained machine learning model in response to the input (Rinaldi, Fig. 14, block 1404 and paragraphs 0079-0081. Block 1404 teaches “In response to receiving the input, the machine learning module 106 generates (at block 1404) a plurality of output values corresponding to a plurality of recovery mechanisms to recover from the failure in the storage controller 102.” Fig. 5 shows recovery mechanisms output by neural network MLM that shows the source of the failure may be server (block 502 “Server Failover”) or Adapter (block 510 “Device Adapter Failover”) or cache (block 524 “Flush cache”));
automatically executing, by the processing device, a recovery operation for the node based on the source of the failure (Rinaldi, Fig. 14, block 1406 and paragraphs 0079-0081. Block 1406 teaches “A recovery is made from the failure in the storage controller 102, by applying (at block 1406) a recovery mechanism whose output value is greatest among the plurality of output values that are generated by the machine learning module.”); and
subsequent to automatically executing the recovery operation, updating, by the processing device, the trained machine learning model (Rinaldi, Fig. 15 shows training update of MLM as MLM is executing recovery operation shown in Fig. 14. Paragraph 0084, block 1508 “The process adjusts (at block 1508) weights of links that interconnect nodes of the plurality of layers via back propagation to reduce the margin of error, to improve a determination of a recovery mechanism for the failure.”) based on the inputted characteristics for the node (Rinaldi, Fig. 4 shows input characteristics for a node. Fig. 15, block 1502, paragraph 0083 “Control starts at block 1502 in which a machine learning module 106 receives inputs comprising to attributes of a storage controller 102, wherein the attributes affect failures that occur in the storage controller 102.”) and the source of the failure (Rinaldi, Fig. 4 shows input characteristics for a node. Fig. 15, blocks 1504-1508. The actual source of the failure determined in Fig. 14, block 1406 will have lowest margin of error (1018) in calculation of block 1506 (see calculation of margin of error shown in Figs. 9-10, described in paragraphs 0069-0073) (i.e. source of the failure)).
Regarding claim 15, Rinaldi teaches:
A non-transitory computer-readable medium comprising program code that is executable by a processing device (Rinaldi, Fig. 1 and Fig. 2 storage controller 102 that is a computational device and includes as described in paragraphs 038 “storage controller 102 … may comprise any suitable computational device including …a processing device, a controller …”. See also Fig. 18, storage controller with processor 1804) for causing the processing device to (Rinaldi, Fig. 1, storage controller computation device includes a recovery mechanism selection application 104 and machine learning module (e.g. Neural Network) 106 that paragraph 0041 teaches “may be implemented in software, hardware, firmware …” Fig. 18 described in paragraph 0102 shows a system 1800 that can be storage controller 102 that includes memory 1806 and storage 1808 and “may include a program logic 1810 including code 1812 that may be loaded into the memory 1806 and executed by the processor 1804 or circuitry 1802.”):
detect that a failure has occurred with respect to a node (Rinaldi, Fig. 14, block 1402 and paragraphs 0079-0081. Block 1402 teaches “In response to an occurrence of a failure in a storage controller …”) of a plurality of nodes (Rinaldi, Fig. 2 shows two nodes server 206 and 208, see paragraph 0045. Paragraph 0003 teaches “The storage controller may include two or more servers, where each server may be referred to as a node…”) in a distributed computing environment (Rinaldi, Fig. 16, paragraph 0088 teaches cloud computing environment with one or more cloud computing nodes 10 (i.e. distributed computing environment) are accessed by cloud consumers. Paragraph 0112 teaches server nodes in storage controller may be implemented in distributed processing environment as shown in Fig. 16.); and
in response to detecting that the failure has occurred (Rinaldi, Fig. 14, block 1402 and paragraphs 0079-0081. Block 1402 teaches “In response to an occurrence of a failure in a storage controller …”):
input characteristics for the node into a trained machine learning model (Rinaldi, Fig. 14, block 1402 and paragraphs 0079-0081. Block 1402 teaches “providing input on a plurality of attributes of the storage controller at a time of occurrence of the failure to a machine learning module.” Fig. 4 shows input characteristics for node.);
receive, from the trained machine learning model in response to the input, a source of the failure with respect to the node (Rinaldi, Fig. 14, block 1404 and paragraphs 0079-0081. Block 1404 teaches “In response to receiving the input, the machine learning module 106 generates (at block 1404) a plurality of output values corresponding to a plurality of recovery mechanisms to recover from the failure in the storage controller 102.” Fig. 5 shows recovery mechanisms output by neural network MLM that shows the source of the failure may be server (block 502 “Server Failover”) or Adapter (block 510 “Device Adapter Failover”) or cache (block 524 “Flush cache”));
automatically execute a recovery operation for the node based on the source of the failure (Rinaldi, Fig. 14, block 1406 and paragraphs 0079-0081. Block 1406 teaches “A recovery is made from the failure in the storage controller 102, by applying (at block 1406) a recovery mechanism whose output value is greatest among the plurality of output values that are generated by the machine learning module.”); and
subsequent to automatically executing the recovery operation, update the trained machine learning model (Rinaldi, Fig. 15 shows training update of MLM as MLM is executing recovery operation shown in Fig. 14. Paragraph 0084, block 1508 “The process adjusts (at block 1508) weights of links that interconnect nodes of the plurality of layers via back propagation to reduce the margin of error, to improve a determination of a recovery mechanism for the failure.”) based on the inputted characteristics for the node (Rinaldi, Fig. 4 shows input characteristics for a node. Fig. 15, block 1502, paragraph 0083 “Control starts at block 1502 in which a machine learning module 106 receives inputs comprising to attributes of a storage controller 102, wherein the attributes affect failures that occur in the storage controller 102.”) and the source of the failure (Rinaldi, Fig. 4 shows input characteristics for a node. Fig. 15, blocks 1504-1508. The actual source of the failure determined in Fig. 14, block 1406 will have lowest margin of error (1018) in calculation of block 1506 (see calculation of margin of error shown in Figs. 9-10, described in paragraphs 0069-0073) (i.e. source of the failure)).
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. §§ 102 and 103 (or as subject to pre-AIA 35 U.S.C. §§ 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. § 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 2-7, 9-14, and 16-20 are rejected under 35 U.S.C. 103 as being unpatentable over Rinaldi et al. (U.S. Patent Publn No. 2020/0151060 A1), hereinafter Rinaldi in view of Murphy et al (U.S. Patent No. 8,140,914 B2), hereinafter Murphy.
Regarding claim 2, Rinaldi teaches all of the limitations of claim 1 as cited above but does not distinctly disclose wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to, subsequent to automatically executing the recovery operation: determine that a threshold amount of time has been exceeded; in response to determining that the threshold amount of time has been exceeded, input additional characteristics for the node into the trained machine learning model; and in response to inputting additional characteristics of the node into the trained machine learning model, receive, from the trained machine learning model, an indication of a future failure with respect to the node. Murphy, in the same field of endeavor, teaches wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to, subsequent to automatically executing the recovery operation (Murphy, Fig. 1 and col. 3, lines 10-25, repair/backup actions 118 performed on node 102 (once through the loop starting at 108 and going to 118) that then “nodes 102 provide node data 108 to the monitoring computing device 110” to generate failure predictions, see Figs. 4-5):
determine that a threshold amount of time has been exceeded (Murphy, col. 3, lines 59-67, “the nodes 102 may each include logic (not shown), such as a monitoring agent, capable of retrieving the node data 108 from the sensors 104 and providing the node data 108 to the monitoring computing device 110. The logic can provide the node data 108 in response to a change in a portion of the node data 108, on a pre-determined basis, such as every n units of time, or in response to receiving a request for the node data 108 from the monitoring computing device 110.”);
in response to determining that the threshold amount of time has been exceeded (Murphy, col. 3, lines 59-67, “the nodes 102 may each include logic (not shown), such as a monitoring agent, capable of retrieving the node data 108 from the sensors 104 and providing the node data 108 to the monitoring computing device 110. The logic can provide the node data 108 … on a pre-determined basis, such as every n units of time, …” The threshold amount that is exceeded is every n units of time.), input additional characteristics for the node into the trained machine learning model (Murphy, Fig. 1, shows additional, new node data is sent from nodes 102 to failure model 112, see col. 4, lines 22-33. See also Fig. 4, block 406, col. 9, lines 19-24 node data is sent to failure machine learning model 406); and
in response to inputting additional characteristics of the node into the trained machine learning model, receive, from the trained machine learning model, an indication of a future failure with respect to the node (Murphy, block 406, col. 9, lines 22-24 “monitoring computing device then uses the failure model to generate failure predictions associated with the received node data, block 406.”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Rinaldi to incorporate the teachings of Murphy and provide for subsequently to automatically executing the recovery operation: determine that a threshold amount of time has been exceeded; in response to determining that the threshold amount of time has been exceeded, input additional characteristics for the node into the trained machine learning model; and in response to inputting additional characteristics of the node into the trained machine learning model, receive, from the trained machine learning model, an indication of a future failure with respect to the node because predicting such future failures with respect to the node allows performing repair, replace and backup actions, reducing interruption of service, and data loss (Murphy, col. 1, lines 24-30).
Regarding claim 3, Rinaldi as modified by Murphy teaches all of the limitations of claim 2 as cited above and Murphy further teaches wherein the recovery operation is a first recovery operation (Murphy, Fig. 1 and col. 3, lines 10-25, repair/backup actions 118 performed on node 102 (once through the loop starting at 108 and going to 118 is the first recovery operation)), and wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to:
automatically execute a second recovery operation for the node based on the indication of the future failure of the node (Murphy, Fig. 4, block 414, col. 9, lines 39-42 “the monitoring computing device then performs a repair or backup action, instructs a node to perform the action, or performs the action in conjunction with the node, block 414.” In Fig. 1, second recovery operation occurs second time through the loop starting at 108 and going to 118).
The motivation to combine for claim 3 is the same as the motivation to combine for claim 2.
Regarding claim 4, Rinaldi teaches all of the limitations of claim 1 as cited above and Murphy further teaches wherein the source of the failure is a configuration setting for the node (Murphy, col. 6, lines 57-64 “the failing node 102 is an element of a data center and the failure type is a disk failure” i.e. configuration setting for a node is disk failure), and wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to automatically execute the recovery operation (Murphy, Fig. 4, block 414, col. 9, lines 39-42) by:
determining an adjustment to the configuration setting for the node to prevent reoccurrence of the failure with respect to the node (Murphy, col. 6, lines 57-64 “remove the node 102 from a listing of data center elements, instruct the node 102 to copy its data and load to another computing device and shut down, instruct the other computing device to receive the data and load and operate as an element of the data center, and add the other computing device to the listing of data center elements” i.e. adjust the configuration setting);
transmitting a command to the node comprising the adjustment to the configuration setting (Murphy, col. 6, lines 57-64 “remove the node 102 from a listing of data center elements, instruct the node 102 to copy its data and load to another computing device and shut down, instruct the other computing device to receive the data and load and operate as an element of the data center” i.e. transmit command to the node), wherein the node is configured to execute the adjustment to the configuration setting in response to receiving the command (Murphy, col. 6, lines 57-64 “remove the node 102 from a listing of data center elements, instruct the node 102 to copy its data and load to another computing device and shut down, instruct the other computing device to receive the data and load and operate as an element of the data center” original failed node complies or new computing node cannot operate as element of data center); and
receiving, from the node, confirmation of the adjustment to the configuration setting (Murphy, col. 6, lines 57-64 “… add the other computing device to the listing of data center elements” logic, after receiving confirmation, add new node to list of data center elements (i.e. confirm adjustment to configuration setting).
The motivation to combine for claim 4 is the same as the motivation to combine for claim 2.
Regarding claim 5, Rinaldi teaches all of the limitations of claim 1 as cited above and Murphy further teaches wherein the source of the failure is a workload for the node (Murphy, col. 3, lines 44-58 “gather performance-related node data 108 from one or more of a storage device (such as disk drives, flash memory, etc.), transmission hardware (such as router/switch components), a file system, an operating system, or an application. …include a load associated with at least one of the one or more nodes 102, an indicator from a performance monitor”), and wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to automatically execute the recovery operation (Murphy, Fig. 4, block 414, col. 9, lines 39-42) by:
determining, based on the source of the failure, that the workload for the node exceeds a workload threshold (Murphy, col. 3, lines 39-58, “…the node data 108 gathered by the sensors 104 can include a load associated with at least one of the one or more nodes 102, an indicator [i.e. workload threshold] from a performance monitor,…”);
determining a portion of the workload for the node to be redirected to cause the workload for the node to be below the workload threshold (Murphy, col. 6, lines 10-21 “the determined repair or backup actions 118 could include … redirecting a load”. Col. 6, lines 60-64 instructs transfer load [i.e. whole portion] to another node and original node shuts down [i.e. below workload threshold] ); and
redirecting at least the portion of the workload to another node in the plurality of nodes (Murphy, col. 6, lines 60-67, “instruct the node 102 to copy its data and load to another computing device and shut down, instruct the other computing device to receive the data and load and operate as an element of the data center”).
The motivation to combine for claim 5 is the same as the motivation to combine for claim 2.
Regarding claim 6, Rinaldi teaches all of the limitations of claim 1 as cited above and Murphy further teaches wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to automatically execute the recovery operation (Murphy, Fig. 4, block 414, col. 9, lines 39-42) by:
determining, based on the source of the failure, a security risk with respect to the node (Murphy, col. 1, lines 10-20, “To prevent computer failures that cause data loss and interruptions of service, computers are often equipped with a number of sensors capable of detecting errors in hardware or software components… . computers are often equipped with antivirus software that detects the presence of security exploits which may threaten loss of data and interruption of service.”); and
in response to determining the security risk, automatically isolating the node from other nodes in the plurality of nodes (Murphy, col. 6, lines 10-21, “the determined repair or backup actions 118 could include … replacing hardware, … or taking a node out of service.” [i.e. isolating the node]) by:
preventing the node from accessing shared resources in the distributed computing environment (Murphy, col. 6, lines 10-21, “the determined repair or backup actions 118 could include … replacing hardware, … or taking a node out of service.” [i.e. preventing node access to shred resources]);
transmitting a command to the node to disconnect from a network configured to communicatively couple the plurality of nodes in the distributed computing environment (Murphy, col. 3, lines 12-14 “nodes 102 are communicatively coupled via one or more networking fabrics 106 to a monitoring computing device 110.” Col. 6, lines 10-21, “the determined repair or backup actions 118 could include … replacing hardware, … or taking a node out of service.” [i.e. disconnects from the network]); and
determining that the node has disconnected from the network (Murphy, Fig. 5, col . 9, lines 59-62 “node then performs the repair or backup action, block 508, specified by the instructions to mitigate, work around, or overcome the likely failure”, col. 6, lines 51-64, “the logic can remove the node 102 from a listing of data center elements, …and add the other computing device to the listing of data center elements.” [i.e. determine node is disconnected from network]).
The motivation to combine for claim 6 is the same as the motivation to combine for claim 2.
Regarding claim 7, Rinaldi teaches all of the limitations of claim 1 as cited above and Murphy further teaches wherein the non-transitory computer-readable memory further comprises instructions executable by the processing device for causing the processing device to:
generate the trained machine learning model by training a machine learning model with a database comprising historical characteristics of nodes in the plurality of nodes that experienced failures (Murphy, Fig. 4, blocks 402-404, col. 9, lines 15-24, provide node data to a failure model [i.e. database] the node data comes from “historical” nodes to initially build the ML model database in block 404. Fig. 2, failure model 112 is located in memory/storage 202.); and
in response to automatically executing the recovery operation, update the database with the characteristics for the node (Murphy, block 408, col. 9, lines 24-30 “the monitoring computing device then compares the failure … to subsequently received node data, block 408 …. The monitoring computing device then uses the results of the comparison to further build the failure model, block 404.” [i.e. node characteristic of occurrence of failure, type of failure, other node data], see col 5),
wherein updating the trained machine learning model further comprises training the trained machine learning model using the updated database (Murphy, Fig. 4, block 404, col. 9, lines 19-24 “Build Machine Learning Model Based on Node Data” and node data is stored in failure model [i.e. updated database]).
The motivation to combine for claim 7 is the same as the motivation to combine for claim 2.
Claims 9-14, the method that implement the system of claims 2-7, respectively, are rejected on the same grounds as claims 2-7, respectively.
Claims 16-20, the non-transitory computer readable medium that implement the system of claims 2-6, respectively, are rejected on the same grounds as claims 2-6, respectively.
Response to Arguments
Applicant’s arguments with respect to claims 1-20 have been considered but are moot because the arguments are directed to the claim amendments that are addressed in the Examiner’s new grounds of rejections given above.
Conclusion
The prior art made of record and not relied upon is considered pertinent to Applicants’ disclosure. Applicants are required under 37 C.F.R. § 1.111(c) to consider these references fully when responding to this action.
Rinaldi et al. (U.S. Patent Publn No. 2020/0151065 A1) teaches in response to an occurrence of a failure in a storage controller, an input on a plurality of attributes of the storage controller at a time of occurrence of the failure is provided to a machine learning module. In response to receiving the input, the machine learning module generates a plurality of output values corresponding to a plurality of recovery mechanisms to recover from the failure in the storage controller. A recovery is made from the failure in the storage controller, by applying a recovery mechanism whose output value is greatest among the plurality of output values that are generated by the machine learning module.
Applicant's amendment necessitated the new grounds of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Inquiry Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to INDRANIL CHOWDHURY whose telephone number is (571)272-0446. The examiner can normally be reached Mon.-Fri. 9:30-7:00 CST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Ashish Thomas can be reached at (571) 272-0631. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/INDRANIL CHOWDHURY/ Examiner, Art Unit 2114
/ASHISH THOMAS/ Supervisory Patent Examiner, Art Unit 2114