Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
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 (i.e., changing from AIA to pre-AIA ) 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, 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.
Claim(s) 1,3-6,8,10-15,17-21 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20190065323 A1 (Dhamdhere) in view of US 20220206902 A1 (Hoang).
Regarding claim 1, Dhamdhere teaches,
A method comprising:
storing in a memory, (par 32 “a user requests the creation of an application instance object by creating a resource object that specifies source configuration files used to deploy the application, pre- and post-snapshot scripts to be run in container(s), and a snapshot order. Such a resource object that the user creates is also referred to herein as an application instance request object …”) setup data specifying that each action of a set of actions is to be performed with respect to a corresponding container of a set of components upon receipt of a manual snapshot command with respect to a first component of a user application hosted on a cloud infrastructure;(par 43 “At step 450, container cluster service 120 runs pre-snapshot script(s) specified in an application instance object. As described, the application instance object corresponding to an application instance may specify pre- and post-snapshot script(s) to run in container(s), as well as an order in which a snapshot should be taken.”; par 18 “Particular configuration information specified by application instance object 112 and/or the configuration files may include components of the application such as services of the application ( e.g., a containerized application can include a number of services running in different containers), persistent data volumes, a deployment location such as a container pod, and so on. … A user may further add customized information to an application instance object, such as pre- and post-snapshot scripts to run in container(s) prior to and after taking an application consistent snapshot, respectively, and/or an order in which to take such a snapshot, among other things. For example, the pre- and post-snapshot scripts may be used to override certain data or configuration information, and the snapshot order may indicate which service(s) of the application instance to process first during the snapshot.”; par 18 “Particular configuration information specified by application instance object 112 and/or the configuration files may include components of the application such as services of the application ( e.g., a containerized application can include a number of services running in different containers), persistent data volumes, a deployment location such as a container pod, and so on.”)
wherein the user application comprises a plurality of components including the set of components and the first component, wherein each component of the set of components is hosted on respective virtual machine of a plurality of virtual machines in the cloud infrastructure;( par 18 “Particular configuration information specified by application instance object 112 and/or the configuration files may include components of the application such as services of the application ( e.g., a containerized application can include a number of services running in different containers), persistent data volumes, a deployment location such as a container pod, and so on.” … “For example, the pre- and post-snapshot scripts may be used …, and the snapshot order may indicate which service(s) of the application instance to process first during the snapshot.”; par 65 “The hardware abstraction layer thus provides benefits of resource isolation and allocation among the contexts. In the foregoing embodiments, virtual machines are used as an example for the contexts and hypervisors as an example for the hardware abstraction layer. As described above, each virtual machine includes a guest operating system in which at least one application runs.”)
receiving, by a management server, after the storing of the setup data, the manual snapshot command to capture a current state of the first component;(par 38 “As shown, method 400 begins at step 410, where container cluster service 120 receives a request to create a snapshot of the application instance. Similar to step 310 of method 300, a user may request the creation of an application instance snapshot by creating a resource object, such as a Kubemetes object, that requests the snapshot of a particular application instance.”)
upon receipt of the manual snapshot command for the first component:(fig 4:410; par 38 “As shown, method 400 begins at step 410, where container cluster service 120 receives a request to create a snapshot of the application instance. Similar to step 310 of method 300, a user may request the creation of an application instance snapshot by creating a resource object, such as a Kubemetes object, that requests the snapshot of a particular application instance.”)
inspecting, by the management server, the setup data in said memory to identify the set of actions to be performed, (fig 4:440,450; par 42 “container cluster service 120 parses configuration information that is stored for the application instance specified in the snapshot request to identify data volume(s) therein to snapshot.”) and each container of the set of components with respect to which each action of the set of actions is to be performed,(par 14 “The snapshot operation may also be performed in an order specified in the application instance object, and pre and post-snapshot scripts specified in the application instance object may be run as part of the snapshot operation.”; par 18 “A user may further add customized information to an application instance object, such as pre- and post-snapshot scripts to run in container(s) prior to and after taking an application consistent snapshot, respectively, and/or an order in which to take such a snapshot, among other things. For example, the pre- and post-snapshot scripts may be used to override certain data or configuration information, and the snapshot order may indicate which service(s) of the application instance to process first during the snapshot.”)
wherein said setup data indicates that a first action of the set of actions is to be performed with respect to the first component, and that a second action of the set of actions is to be performed with respect to a second container of the set of components, the first component being different from the second component; (par 14 “The snapshot operation may also be performed in an order specified in the application instance object, and pre and post-snapshot scripts specified in the application instance object may be run as part of the snapshot operation.”; par 18 “A user may further add customized information to an application instance object, such as pre- and post-snapshot scripts to run in container(s) prior to and after taking an application consistent snapshot, respectively, and/or an order in which to take such a snapshot, among other things. For example, the pre- and post-snapshot scripts may be used to override certain data or configuration information, and the snapshot order may indicate which service(s) of the application instance to process first during the snapshot.”)
capturing, by the management server, the current state of the first component by executing a set of copy actions(fig 4:460; par 44 “Then, at step 460, container cluster service 120 takes snapshot(s) of the determined data volume(s). In one embodiment, container cluster service 120 may first connect to the container cluster where the application instance is running, as specified in the application instance object, and then invoke snapshot(s) on the data volume(s) associated with the application instance as determined at step 440.”) to store data representing the current state to a non-volatile storage(par 23 “Illustratively, application snapshot object 114 and snapshot volume 155 are copied by container cluster service 112 from container cluster 1001 to container cluster 1002 and from storage system 1401 to storage system 1402 , respectively.”); and
performing, by the management server, the set of actions in addition to the set of copy actions for capturing the current state of the first component(fig 4:460; par 44 “Then, at step 460, container cluster service 120 takes snapshot(s) of the determined data volume(s). In one embodiment, container cluster service 120 may first connect to the container cluster where the application instance is running, as specified in the application instance object, and then invoke snapshot(s) on the data volume(s) associated with the application instance as determined at step 440.”), wherein the management server performs the first action with respect to the first component hosted on a first virtual machine, and performs the second action with respect to the second component hosted on a second virtual machine.( fig 4:450; par 43 “At step 450, container cluster service 120 runs pre-snapshot script(s) specified in an application instance object. As described, the application instance object corresponding to an application instance may specify pre- and post-snapshot script(s) to run in container(s), as well as an order in which a snapshot should be taken.”; par 18 “Particular configuration information specified by application instance object 112 and/or the configuration files may include components of the application such as services of the application ( e.g., a containerized application can include a number of services running in different containers), persistent data volumes, a deployment location such as a container pod, and so on.”; par 65 “The hardware abstraction layer thus provides benefits of resource isolation and allocation among the contexts. In the foregoing embodiments, virtual machines are used as an example for the contexts and hypervisors as an example for the hardware abstraction layer. As described above, each virtual machine includes a guest operating system in which at least one application runs.”)
However, although Dhamdhere teaches pre- and post-snapshot scripts executed with respect to containers corresponding to application services, Dhamdhere could use a more direct description on tying scripts to a corresponding component.
On the other hand, Hoang teaches,
A method comprising: storing in a memory, setup data specifying that each action of a set of actions is to be performed with respect to a corresponding component of a set of components upon receipt of a received snapshot command with respect to a first component of a user application hosted on a cloud infrastructure,(par 42 “… the application template process 112 specifies the label used in all pods of the application and the multiple actions for Kubernetes resource types. Each action contains hooks ( commands being executed on the specific resource type) and selectors to serialize backup of resource instances in specific order. A prehook (DO) command suspends the application activities …, so that application consistency is maintained during the backup process. In the action for Kubernetes pods, the database quiesce command will be specified in the prehook … .”)
wherein the user application comprises a plurality of components including the set of components and the first component,(par 18 “Applications, software programs or computer-readable instructions may be referred to as components or modules.”; fig 3, fig 8:802,804; par 60 “As shown in FIG. 8, process 800 begins by defining an application template 700 that specifies the application type and label selectors used by all resources of the application, 802. In the Kubernetes cluster example, the resources can be pods having data to be backed up and controlled by a backup controller to backup storage, as shown in FIGS. 4 and 5. The resources and/or processes that are to be suspended during operation of the application (backup) are selected and defined in the Actions 706 portion of the application template, 804. Depending on the network topography and application structure, these resources may be embodied in different levels or layers of the system, such as at the overall application level, one or more middle levels, and a bottom (e.g., pod) level, as shown in FIG. 3.”) wherein each component of the set of components is hosted on respective virtual machine of a plurality of virtual machines in the cloud infrastructure; (Par 65 “The network of FIG. 1 may comprise any number of individual client-server networks including virtual machines coupled over the Internet or similar large-scale network or portion thereof.”; par 3 “Containerization technology has been developed as a lightweight alternative to full machine virtualization that involves encapsulating an application in a container with its own operating environment. This provides many of the benefits of loading an application onto a virtual machine (VM), as the application can be run on any suitable physical machine without any concern about dependencies.”)
receiving, by a management server, after the storing of the setup data, the received snapshot command to capture a current state of the first component; (par 30 “The kubelet service communicates with the control plane components to receive commands and work. Work is received in the form of a "manifest" which defines the workload and the operating parameters.”; par 41 “The application template allows a user to efficiently suspend (quiesce) and restart certain operations for the execution of backup ( or other admin) tasks based on common operation or characteristics of nodes or groups of nodes.”)
upon receipt of the received snapshot command for the first component:
inspecting, by the management server, the setup data in said memory to identify the set of actions to be performed, and each component of the set of components with respect to which each action of the set of actions is to be performed,(fig 8:806,808; par 60 “The prehook and posthook mechanism is used to annotate the selected resources to provide entry points (hooks) for the execution of appropriate scripts or programs that perform the actual suspension and restart of the resource during execution of the application, 806. For example, quiescing and unquiescing database pods during a backup operation. The application template is then processed or executed to perform the application and suspend/restart the selected resources based on the defined prehook/posthook annotations. Depending on the level structure of the system, this may result in a nested sequence of resource suspension/restart operations, as shown in FIG. 3.”)
wherein said setup data indicates that a first action of the set of actions is to be performed with respect to the first component, and that a second action of the set of actions is to be performed with respect to a second component of the set of components, the first component being different from the second component; (fig 8:806,808; par 60 “The prehook and posthook mechanism is used to annotate the selected resources to provide entry points (hooks) for the execution of appropriate scripts or programs that perform the actual suspension and restart of the resource during execution of the application, 806. For example, quiescing and unquiescing database pods during a backup operation. The application template is then processed or executed to perform the application and suspend/restart the selected resources based on the defined prehook/posthook annotations. Depending on the level structure of the system, this may result in a nested sequence of resource suspension/restart operations, as shown in FIG. 3.”)
capturing, by the management server, the current state of the first component by executing a set of copy actions to store data representing the current state to a non-volatile storage;(fig 6:604,610; par 49 “FIG. 6 is a flowchart that illustrates a preferred backup order for the pods of FIG. 5, under some embodiments. As shown in FIG. 6, the server will first quiesce the secondary pod 522 in step 602, prior to taking a snapshot backup of the secondary pod 522 in step 604. It will then unquiesce the secondary pod 522, step 606. Once the secondary pod is finished, the server will then quiesce the primary pod 512 of the StatefulSet 502 in step 608, prior to taking a snapshot backup of the pod 512 in step 610. It will then unquiesce the pod 512, step 612. The snapshot backups can then be written to the storage ( e.g., DDR appliance 406), step 614.”) and
performing, by the management server, the set of actions in addition to the set of copy actions for capturing the current state of the first component,(fig 6:602,608; par 49 “FIG. 6 is a flowchart that illustrates a preferred backup order for the pods of FIG. 5, under some embodiments. As shown in FIG. 6, the server will first quiesce the secondary pod 522 in step 602, prior to taking a snapshot backup of the secondary pod 522 in step 604. It will then unquiesce the secondary pod 522, step 606. Once the secondary pod is finished, the server will then quiesce the primary pod 512 of the StatefulSet 502 in step 608, prior to taking a snapshot backup of the pod 512 in step 610. It will then unquiesce the pod 512, step 612. The snapshot backups can then be written to the storage ( e.g., DDR appliance 406), step 614.”)
wherein the management server performs the first action with respect to the first component hosted on a first virtual machine, and performs the second action with respect to the second component hosted on a second virtual machine. (fig 6:602,608; par 49 “FIG. 6 is a flowchart that illustrates a preferred backup order for the pods of FIG. 5, under some embodiments. As shown in FIG. 6, the server will first quiesce the secondary pod 522 in step 602, prior to taking a snapshot backup of the secondary pod 522 in step 604. It will then unquiesce the secondary pod 522, step 606. Once the secondary pod is finished, the server will then quiesce the primary pod 512 of the StatefulSet 502 in step 608, prior to taking a snapshot backup of the pod 512 in step 610. It will then unquiesce the pod 512, step 612. The snapshot backups can then be written to the storage ( e.g., DDR appliance 406), step 614.”)
Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to further modify Dhamdhere to incorporate the component stopping technique of Hoang. One of ordinary skill in the art would have been motivated to remedy the shortcomings of Dhamdhere -- a need for a way to consistently prepare the environment for backup(Hoang par 5 “What is needed, therefore, is a process that allows application ( e.g., database) pods to be quiesced and snap shotted in a specific order to ensure application consistency of the cluster deployments not only on a single node but across all the nodes in the cluster.”; Hoang par 4 “A common backup process for database protection involves quiescing databases prior to backups. However, Kubernetes does not currently provide any mechanism to natively specify the order in which pods belonging to an application can be quiesced for snapshot backups. Such quiescing or suspension of operations is often used in other dynamic applications in which data is constantly and quickly accessed and modified during usual user operations.”) -- with Hoang providing a known method to solve a similar problem. Hoang provides “an application template processing system for application consistent backup and restores of database applications in Kubernetes.”(Hoang par 20)
Regarding claim 3, Dhamdhere and Hoang teaches,
The method of claim 1,
Dhamdhere further teaches,
wherein said setup data further indicates that a third action of the set of actions is to be performed with respect to a third component of the set of components, ( par 18 “A user may further add customized information to an application instance object, such as pre- and post-snapshot scripts to run in container(s) prior to and after taking an application consistent snapshot, respectively, and/or an order in which to take such a snapshot, among other things. For example, the pre- and post-snapshot scripts may be used to override certain data or configuration information, and the snapshot order may indicate which service(s) of the application instance to process first during the snapshot.”; table1:”container-prefix: mysql … pre-script: “/etc/vmware/mysql-pre-script.sh…”, table 2:” container -prefix:minio … pre-script:” /etc/vmware/minio-pre-script.sh…”)
wherein the performing comprises executing, by the management server, a script to perform the set of actions, including the first action, the second action and the third action respectively with respect to the first component, the second component and the third component hosted on the respective virtual machines of the plurality of virtual machines.( par 18 “A user may further add customized information to an application instance object, such as pre- and post-snapshot scripts to run in container(s) prior to and after taking an application consistent snapshot, respectively, and/or an order in which to take such a snapshot, among other things. For example, the pre- and post-snapshot scripts may be used to override certain data or configuration information, and the snapshot order may indicate which service(s) of the application instance to process first during the snapshot.”; table1:”container-prefix: mysql … pre-script: “/etc/vmware/mysql-pre-script.sh…”, table 2:” container -prefix:minio … pre-script:” /etc/vmware/minio-pre-script.sh…”. Although Dhamdhere only gives two examples of pre- scripts(mysql-pre-script.sh and minio-pre-script.sh), it would be obvious to one of ordinary skill in the art to use a third script corresponding to a third component.)
Hoang also further teaches,
wherein said setup data further indicates that a third action of the set of actions is to be performed with respect to a third component of the set of components, wherein the performing comprises executing, by the management server, a script to perform the set of actions, including the first action, the second action and the third action respectively with respect to the first component, the second component and the third component hosted on the respective virtual machines of the plurality of virtual machines.(fig 8:806,808; fig 3:302,304,306; par 45 “As shown in FIG. 3, the bottom level is the pod level 305, and this level is controlled by pre-hook 306 and post-hook 316, which can be used to quiesce and un-quiesce the database, or any other pod level operation that needs to be temporarily suspended during backup process 310.” )
Regarding claim 4, Dhamdhere and Hoang teaches,
The method of claim 1,
Dhamdhere further teaches,
wherein the setup data is comprised in a blueprint file provided by an application deployer and the manual snapshot command is received from an operator.(par 32 “a user requests the creation of an application instance object by creating a resource object that specifies source configuration files used to deploy the application, pre- and post-snapshot scripts to be run in container(s), and a snapshot order. Such a resource object that the user creates is also referred to herein as an application instance request object …”)
Regarding claim 5, Dhamdhere and Hoang teaches,
The method of claim 4,
Dhamdhere further teaches,
wherein the setup data further specifies that each action of a second set of restore actions to be performed with respect to a corresponding component of a second set of components upon receipt of a manual restore command with respect to the first component(fig 5:540,550; par 50 “At step 540, container cluster service 120 determines application configuration information and snapshot data volume(s) for the application instance. In one embodiment, container cluster service 120 reads the application snapshot object referenced in the resource object, described above, that requests deployment of the application instance, in order to determine the application configuration information, the volume snapshot(s) in the container cluster, and the actual data volume(s) (e.g., the .vmdk file(s)).”), the method further comprising:
receiving, by the management server, after the storing of the setup data, the manual restore command to restore the first component to a previous state captured in a corresponding snapshot;(fig 5:510;par 47 “As shown, method 500 begins at step 510, where container cluster service 120 receives a request to deploy an application instance from the application snapshot object.” )
inspecting, by the management server, the setup data in said memory to identify the second set of restore actions to be performed, and each component of the second set of components with respect to which each action of the second set of actions is to be performed;(fig 5:540; par 50 “At step 540, container cluster service 120 deter mines application configuration information and snapshot data volume(s) for the application instance. In one embodiment, container cluster service 120 reads the application snapshot object referenced in the resource object, described above, that requests deployment of the application instance, in order to determine the application configuration information, the volume snapshot(s) in the container cluster, and the actual data volume(s) (e.g., the .vmdk file(s)).”)
performing, by the management server, each of the second set of restore actions with respect to the corresponding component in the second set of components along with restoring the first component to the previous state, (fig 5:540,550; par 50 “At step 540, container cluster service 120 determines application configuration information and snapshot data volume(s) for the application instance. In one embodiment, container cluster service 120 reads the application snapshot object referenced in the resource object, described above, that requests deployment of the application instance, in order to determine the application configuration information, the volume snapshot(s) in the container cluster, and the actual data volume(s) (e.g., the .vmdk file(s)).”)
wherein the second set of actions includes a fourth action to start the first component and a fifth action to start the second component,(par 53 “At step 570, container cluster service 120 deploys the new application instance. …”)
wherein the performing further comprises starting the first component prior to starting the second component in view of the setup data indicating that the fourth action is to be performed prior to the fifth action.(par 53 “At step 570, container cluster service 120 deploys the new application instance. Such a deployment of the new application instance may include container cluster service 120 connecting to the target container cluster and deploying the application instance therein, as well as mounting and using the new data volume(s) created at step 560. As described, deploying a containerized application may generally include invoking API(s) provided by, e.g., a container orchestrator that then starts the containers themselves, provisions storage, and so on to effectuate the deployment. In one embodiment, a request may be made for an application instance and steps similar to method 300, described above, performed to deploy the application instance. For example, container cluster service 120 may make a request for an application instance that includes the application configuration information determined at step 540 and a reference to the new data volume(s) created at step 560, such as an application instance request that includes in a body of the request the object specification shown in Table 5.”)
However, Dhamdhere does not specifically go into how dependencies are ordered(limitations “wherein the second set of actions includes a fourth action to start the first component and a fifth action to start the second component, wherein the performing further comprises starting the first component prior to starting the second component in view of the setup data indicating that the fourth action is to be performed prior to the fifth action”).
On the other hand, Hoang further teaches,
wherein the setup data further specifies that each action of a second set of actions to be performed with respect to a corresponding component of a second set of components upon receipt of a manual restore command with respect to the first component,(fig 8:806,808; par 60 “The prehook and posthook mechanism is used to annotate the selected resources to provide entry points (hooks) for the execution of appropriate scripts or programs that perform the actual suspension and restart of the resource during execution of the application, 806. For example, quiescing and unquiescing database pods during a backup operation. The application template is then processed or executed to perform the application and suspend/restart the selected resources based on the defined prehook/posthook annotations. Depending on the level structure of the system, this may result in a nested sequence of resource suspension/restart operations, as shown in FIG. 3.”) the method further comprising:
receiving, by the management server, after the storing of the setup data, the manual restore command to restore the first component to a previous state captured in a corresponding snapshot;(par 61 “Besides database backup operations, the application template and prehook/posthook mechanisms can also be used to provide application consistent restore operations when data is migrated back to the nodes from the storage device. For example, during a restore process, all resource types ( e.g., StatefulSet, Deployment, Replication Controller, etc.) are scaled down to O so that all pods are terminated. All PVCs are restored first, then pods and other resources are restored next.”)
inspecting, by the management server, the setup data in said memory to identify the second set of actions to be performed, and each component of the second set of components with respect to which each action of the second set of actions is to be performed;(par 61 “Besides database backup operations, the application template and prehook/posthook mechanisms can also be used to provide application consistent restore operations when data is migrated back to the nodes from the storage device. For example, during a restore process, all resource types ( e.g., StatefulSet, Deployment, Replication Controller, etc.) are scaled down to O so that all pods are terminated. All PVCs are restored first, then pods and other resources are restored next.”)
performing, by the management server, each of the second set of actions with respect to the corresponding component in the second set of components along with restoring the first component to the previous state,( par 61 “Besides database backup operations, the application template and prehook/posthook mechanisms can also be used to provide application consistent restore operations when data is migrated back to the nodes from the storage device. For example, during a restore process, all resource types ( e.g., StatefulSet, Deployment, Replication Controller, etc.) are scaled down to O so that all pods are terminated. All PVCs are restored first, then pods and other resources are restored next.”)
wherein the second set of actions includes a fourth action to start the first component and a fifth action to start the second component,(par 62 “This pair-ordered sequence of suspending and restarting selected resources allows the application operation to proceed as intended, and brings back system resources in an ordered and controlled manner so that the resources maintain consistency during the application operation.”)
wherein the performing further comprises starting the first component prior to starting the second component in view of the setup data indicating that the fourth action is to be performed prior to the fifth action. (par 62 “This pair-ordered sequence of suspending and restarting selected resources allows the application operation to proceed as intended, and brings back system resources in an ordered and controlled manner so that the resources maintain consistency during the application operation.”)
Regarding claim 6, Dhamdhere and Hoang teaches,
The method of claim 5,
Hoang further teaches,
wherein all of the set of actions are performed before performing the capturing of the current state of the first component,(fig 3:306; par 45 “As shown in FIG. 3, the bottom level is the pod level 305, and this level is controlled by pre-hook 306 and post-hook 316, which can be used to quiesce and un-quiesce the database, or any other pod level operation that needs to be temporarily suspended during backup process 310.”)
wherein all of the second set of actions are performed after performing the restoring of the first component to the previous state.(fig 3:314; par 44 “The middle layer 303 represents any tasks within the application that may need to be temporarily suspended. For example, if the application is composed of multiple StatefulSet processes, such as data processes, management processes, or client I/O processes, these processes may need to be suspended. In this case, pre-hook 304 and post-hook 314 pairs can be used for each StatefulSet operations to suspend the state prior to the backup 310 and then resume the state after the backup. Other Kubernetes collector resource types such as Deployment, DaemonSet, ReplicationController, and so on, can also be used in middle layer. Similar to the top layer, the selectors of middle layer can also be used to arrange operations of pod layer in a specific order.”)
Regarding claims 8,10,11 they are the non-transitory machine-readable medium storing one or more sequences of instructions, wherein execution of the one or more instructions by one or more processors contained in a digital processing system causes the digital processing system to perform the actions of the method of claims 1,3,4, and are rejected for the same reasons.
Regarding claim 12, it is the machine-readable medium storing instructions to implement the method of claim 5, but with the last two limitations removed (“wherein the second set of actions includes a fourth action to start the first component and a fifth action to start the second component, wherein the performing further comprises starting the first component prior to starting the second component in view of the setup data indicating that the fourth action is to be performed prior to the fifth action”). Claim 12 is rejected for the same reasons as claim 5.
Regarding claim 13, it is the non-transitory machine-readable medium storing one or more sequences of instructions, wherein execution of the one or more instructions by one or more processors contained in a digital processing system causes the digital processing system to perform the actions of the method of claim 6 and is rejected for the same reasons.
Regarding claim 14, Dhamdhere and Hoang teaches,
The non-transitory machine-readable medium of claim 13,
Hoang further teaches,
wherein the second component dependent on the first component as a base component in that the first component is required to be executing for appropriate operation of the second component,(fig 3:301,303,305; par 57 “The defined application template allows specifying quiesce and unquiesce commands for each type of database application and template selectors to select resources to sequence dependent resources to ensure application consistency of the backup operation in a cluster configuration.”; par 42 “In an embodiment, the application template process 112 specifies the label used in all pods of the application and the multiple actions for Kubernetes resource types. Each action contains hooks ( commands being executed on the specific resource type) and selectors to serialize backup of resource instances in specific order.”)
wherein the setup data specifies that the first action is to stop the first component and that the second action is to stop the second component, wherein the setup data also specifies that said second action is to be performed prior to said first action,( par 42 “In an embodiment, the application template process 112 specifies the label used in all pods of the application and the multiple actions for Kubernetes resource types. Each action contains hooks ( commands being executed on the specific resource type) and selectors to serialize backup of resource instances in specific order.”; fig 3:302,304,306,310; par 44 “The middle layer 303 represents any tasks within the application that may need to be temporarily suspended. For example, if the application is composed of multiple StatefulSet processes, such as data processes, management processes, or client I/O processes, these processes may need to be suspended. In this case, pre-hook 304 and post-hook 314 pairs can be used for each StatefulSet operations to suspend the state prior to the backup 310 and then resume the state after the backup. …. Similar to the top layer, the selectors of middle layer can also be used to arrange operations of pod layer in a specific order.”;)
wherein the performing comprises stopping the second component followed by stopping the first component prior to the set of copy actions.(par 48 “Before the controller 408 backs up a namespace, it will use application template process 409 to generate hook annotations on all application pods that have label matching with the label specified in the application template. The controller 408 will then use selectors of each resource type to sequence these pods within such resource. After such a sequence generated, the controller will proceed with backup procedure based on this sequence. In this manner, the application pods will be backed up in that specific order.”)
Regarding claims 15,17-18, they are the digital processing system comprising: a random access memory (RAM) to store instructions; and one or more processors to retrieve and execute the instructions, wherein execution of the instructions causes the digital processing system to perform the method of claims 1,3-4 and are rejected for the same reasons.
Regarding claim 19, it is the system that implements the method of claim 5, but with the last two limitations removed (“wherein the second set of actions includes a fourth action to start the first component and a fifth action to start the second component, wherein the performing further comprises starting the first component prior to starting the second component in view of the setup data indicating that the fourth action is to be performed prior to the fifth action”). Claim 19 is rejected for the same reasons as claim 5.
Regarding claim 20, it is the system that performs the method of claim 6 and is rejected for the same reasons.
Regarding claim 21, it is the system that performs the instructions stored on the computer readable medium of claim 14 and is rejected for the same reasons.
Response to Arguments
Applicant’s arguments, see remarks , filed 12/24/2025, with respect to the rejections under 35 USC 101 have been fully considered and are persuasive. The rejection under 35 USC 101 of 9/24/2025 has been withdrawn.
Applicant’s arguments, see remarks pg. 13-17, filed 12/24/2025, with respect to the rejection(s) of claim(s) 1, 3, 8, 10-11, 15, and 17-18 under 35 U.S.C. § 103 as being unpatentable over US 20190065323 A1 (Dhamdhere) in view of US 20220291998 A1 (Devaraj) have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of 35 U.S.C. 103 as being unpatentable over US 20190065323 A1 (Dhamdhere) in view of US 20220206902 A1 (Hoang).
With respect to the independent claims, the applicant has argued that Dhamdhere does not teach limitations A:“setup data specifying that each action of a set of actions is to be performed with respect to a corresponding component of a set of components”, B: “said setup data indicates that a first action of the set of actions is to be performed with respect to the first component, and that a second action of the set of actions is to be performed with respect to a second component of the plurality of components, the first component being different from the second component”, and C:” wherein the performing performs the first action with respect to the first component hosted on a first virtual machine, and performs the second action with respect to the second component hosted on a second virtual machine”. The examiner respectfully disagrees. Dhamdhere teaches in the cited (par 18 “Particular configuration information specified by application instance object 112 and/or the configuration files may include components of the application such as services of the application ( e.g., a containerized application can include a number of services running in different containers), persistent data volumes, a deployment location such as a container pod, and so on. … A user may further add customized information to an application instance object, such as pre- and post-snapshot scripts to run in container(s) prior to and after taking an application consistent snapshot, respectively, and/or an order in which to take such a snapshot, among other things. For example, the pre- and post-snapshot scripts may be used to override certain data or configuration information, and the snapshot order may indicate which service(s) of the application instance to process first during the snapshot.”;) Dhamdhere also shows that application services can run in different containers that have different corresponding scripts in the cited (table1:”container-prefix: mysql … pre-script: “/etc/vmware/mysql-pre-script.sh…”, table 2:” container -prefix:minio … pre-script:” /etc/vmware/minio-pre-script.sh…”). The examiner interprets this as limitations A:“setup data specifying that each action of a set of actions is to be performed with respect to a corresponding component of a set of components”, B: “said setup data indicates that a first action of the set of actions is to be performed with respect to the first component, and that a second action of the set of actions is to be performed with respect to a second component of the plurality of components, the first component being different from the second component”, and C:” wherein the performing performs the first action with respect to the first component hosted on a first virtual machine, and performs the second action with respect to the second component hosted on a second virtual machine”.
With respect to the independent claims, the applicant has further argued that Hoang does not teach limitations A:“setup data specifying that each action of a set of actions is to be performed with respect to a corresponding component of a set of components”, B: “said setup data indicates that a first action of the set of actions is to be performed with respect to the first component, and that a second action of the set of actions is to be performed with respect to a second component of the plurality of components, the first component being different from the second component”, and C:” wherein the performing performs the first action with respect to the first component hosted on a first virtual machine, and performs the second action with respect to the second component hosted on a second virtual machine”. The examiner respectfully disagrees. Hoang teaches in the cited (par 42 “… the application template process 112 specifies the label used in all pods of the application and the multiple actions for Kubernetes resource types. Each action contains hooks ( commands being executed on the specific resource type) and selectors to serialize backup of resource instances in specific order. A prehook (DO) command suspends the application activities …, so that application consistency is maintained during the backup process. In the action for Kubernetes pods, the database quiesce command will be specified in the prehook … .” and fig 8:806,808; par 60 “The prehook and posthook mechanism is used to annotate the selected resources to provide entry points (hooks) for the execution of appropriate scripts or programs that perform the actual suspension and restart of the resource during execution of the application, 806. For example, quiescing and unquiescing database pods during a backup operation. The application template is then processed or executed to perform the application and suspend/restart the selected resources based on the defined prehook/posthook annotations. Depending on the level structure of the system, this may result in a nested sequence of resource suspension/restart operations, as shown in FIG. 3.”). The examiner interprets this as limitations A:“setup data specifying that each action of a set of actions is to be performed with respect to a corresponding component of a set of components”, B: “said setup data indicates that a first action of the set of actions is to be performed with respect to the first component, and that a second action of the set of actions is to be performed with respect to a second component of the plurality of components, the first component being different from the second component”, and C:” wherein the performing performs the first action with respect to the first component hosted on a first virtual machine, and performs the second action with respect to the second component hosted on a second virtual machine”.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US 20220114059 A1 - Zhang - preflight check when restoring from snapshot to ensure that the restored image is working properly.
US 20210374011 A1 - Fitzsimons - data object backup, has instructions for how to do the backup. More like dependency and location instructions on how to back up.
US 20210365330 A1 - Kushnir - rehydrate OS disk - re-arrange point in time backups in the correct order to recover.
US 20210232420 A1 - Dhruvakumar - starting paused VMs and the re-build process.
US 20210224166 A1 - Luo - database periodic snapshots and transaction logs to restore to specific points.
US 20210200603 A1 - Battiprolu - identifies hanging thread and restores from snapshot with an identified script for resolving the match stuck thread scenario.
US 20210011816 A1 - Mitkar - prepares containerized applications for backup using a backup services container in a container orchestration pod. Figure 8 element 806. - Commvault
US 20190163578 A1 - Anami - places VM in a backup state before taking the snapshot.
US 20210014333 A1 - Singh - setup data is prepared before deploying applications. From Nutanix - restore script is run before execution starts.
US 20160110267 A1 - Earl - post restore operations when recovering. See fig 14 "OnPostRestore"
US 20230106269 A1 - Mitkar - has scripts that prepare the containerized application for backup operations.
US 20210011812 A1 - Mitkar - prepares containerized applications for backup using a backup services container.
US 20220121526 A1 - Kumar - backup copy of federated application.
US 20080229142 A1 - Anand – runs extra scripts after restoring from snapshot.
US 20220291998 A1 – Devaraj - backs up application data from cloud native applications
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MICHAEL XU whose telephone number is (571)272-5688. The examiner can normally be reached Monday-Friday 8:00am - 5:00pm.
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, Bryce Bonzo can be reached at (571) 272-3655. 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.
/MICHAEL XU/ Examiner, Art Unit 2113