Prosecution Insights
Last updated: July 05, 2026
Application No. 17/730,883

VIRTUAL MACHINE CLUSTER PLACEMENT IN A CLOUD ENVIRONMENT

Non-Final OA §103
Filed
Apr 27, 2022
Examiner
LI, HARRISON
Art Unit
2195
Tech Center
2100 — Computer Architecture & Software
Assignee
ORACLE INTERNATIONAL Corporation
OA Round
4 (Non-Final)
68%
Grant Probability
Favorable
4-5
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 68% — above average
68%
Career Allowance Rate
15 granted / 22 resolved
+13.2% vs TC avg
Strong +53% interview lift
Without
With
+52.8%
Interview Lift
resolved cases with interview
Typical timeline
3y 11m
Avg Prosecution
17 currently pending
Career history
50
Total Applications
across all art units

Statute-Specific Performance

§101
6.8%
-33.2% vs TC avg
§103
89.6%
+49.6% vs TC avg
§112
3.7%
-36.3% vs TC avg
Black line = Tech Center average estimate • Based on career data from 22 resolved cases

Office Action

§103
DETAILED ACTION 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 . Claims 1-4 and 22-37 are pending. Claims 5-21 are cancelled. Response to Arguments Regarding: Claim Objections: Applicant’s amendments regarding claim numbering for claims 23 and 33-37 are accepting. The objections to claims 23 and 33-37 are withdrawn. Regarding: Prior Art Rejections: Applicant’s arguments and amendments regarding the rejection of claims 1-4 and 22-37 under 35 U.S.C. 103 have been fully considered and are moot due to new grounds of rejection necessitated by amendment. Claim Rejections - 35 USC § 103 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. Claims 1, 4, 22, 25, 26, 27, 30, 31, 32, 35, 36, and 37 are rejected as being unpatentable over Wang et al. US 20160380905 A1 in view of Tsai et al. US 20180095776 A1 in view of Watanabe et al. US 20230305898 A1. Wang and Tsai are cited in a previous action. Regarding claim 1, Wang teaches the invention substantially as claimed including: A computer-implemented method comprising: provisioning a virtual machine (VM) cluster to execute a software application ([0022] The clusters of host computers are used to support or host clients that can execute various applications), the VM cluster comprising a plurality of VMs, within a computing system that comprises a particular set of computing devices (Fig. 8; [0029] clients, e.g., VMs, running on the host computers in the respective cluster; Fig. 1, 100, C-1, H-1 to H-M; [0030] each cluster management server includes a cluster resource management module (CRMM) 114, which can be enabled by a user, to perform resource allocations and load balancing in the respective cluster; [0036] Processes, such as VMs, can be balanced based on allocation policies, resource demand, and the availability of resources provided by the host computer clusters) by: identifying a plurality of constraint-satisfying computing devices, of the particular set of computing devices, that individually satisfy one or more constraints for the VM cluster ([0024] The number of VMs supported by the host computer can be anywhere from one to more than one thousand. The exact number of VMs supported by the host computer is only limited by the physical resources of the host computer. [0038] Resources allocated to clients (e.g., VMs), host computers, or resource pools (RPs) can be controlled by adjusting resource allocation/control settings, which may include reservation, limit and shares parameters. In one embodiment, a reservation is the minimum amount of physical resources guaranteed to be available to a VM; Examiner notes: adjusting resource reservations to meet a minimum physical resource guarantee identifies constraint-satisfying computing devices); wherein: each combination of a plurality of combinations of computing devices, within the plurality of constraint-satisfying computing devices, satisfies one or more combination constraints for the VM cluster ([0027] The local resource allocation module in each host computer can cooperatively operate with the local resource allocation modules in the other host computers of the network computer system 100 to generate resource allocation settings and perform resource scheduling, which includes balancing the loads of software processes and/or storage resource scheduling, among the host computers H-1, H-2 ... H-M of the host computer clusters C-1, C-2 ... C-N. [0046] the resource allocation module 108 can allow a client to inherit the resource allocation priority of a parent resource pool that contains the client and guarantee a client a minimum amount of resources); producing a plurality of combination-specific sets of optimization criteria (OC) metrics by, for each combination of computing devices of the plurality of combinations of computing devices: producing a combination-specific set of OC metrics by, for each OC of a set of OCs applicable to the VM cluster, computing a metric that represents said each OC based on one or more characteristics of said each combination of computing devices ([0039] The resource allocation settings of a resource node may include a resource allocation weight score that indicates the relative priority or importance of the resource node, which may be … a resource pool … Resource allocation weight scores can be specific to a particular resource, such as CPU resource and memory resource; [0049] a resource allocation weight score of a resource node (e.g., a resource pool or a client) based on the number of powered-on client (e.g., a VM) or clients (e.g., VMs) in the resource node; [0051] a resource allocation weight score of a resource node (e.g., a resource pool or a client) based on the sizes of one or more child nodes of the resource node… a resource allocation weight score of a resource node (e.g., a resource pool or a client) by multiplying a base allocation weight score with the total number of vCPU of powered-on clients in the resource node, which is also referred to as “shares per vCPU” method; [0052] a resource allocation weight score of a resource node (e.g., a resource pool or a client) based on user inputs … the resource allocation module provides a user interface that allows a user or an administrator to set the “expandable” tag, which indicates that resource allocation weight scores for resource nodes are determined based on the number of powered-on clients in the resource nodes, and “shares per vCPU” or “shares per VM,” which can be “high,” “normal,” “low,” or a custom value); wherein a particular OC, from the set of OCs applicable to the VM cluster, is based on a maximum number of VMs that can be placed on each computing device of the plurality of constraint-satisfying computing devices ([0024] The exact number of VMs supported by the host computer is only limited by the physical resources of the host computer; [0036] Processes, such as VMs, can be balanced based on allocation policies, resource demand, and the availability of resources provided by the host computer clusters. Balancing can be applied to computer resources such as processor time, i.e., CPU cycles, memory space, network bandwidth (including any type of input/output or bus bandwidth), storage space, power consumption, cache space); c) ranking the plurality of combinations of computing devices based on the plurality of combination-specific sets of OC metrics; d) identifying a particular combination of computing devices, of the particular set of computing devices, as an optimal combination of computing devices for placement of the VM cluster ([0048] The resource allocation unit 606 allocates a resource to the resource nodes in the cluster resource allocation hierarchy based on the resource allocation weight scores of the resource nodes and/or the size of the client (e.g., the number of vCPUs and the memory size of the client); and e) automatically provisioning the VM cluster on the particular combination of computing devices ([0048] resource allocation unit 606 allocates a resource to the resource nodes in the cluster resource allocation hierarchy based on the resource allocation weight scores of the resource nodes and/or the size of the client (e.g., the number of vCPUs and the memory size of the client)); and executing, by the VM cluster, the software application ([0022] The clusters of host computers are used to support or host clients that can execute various applications). Wang does not explicitly teach: ranking the plurality of combinations of computing devices based on the plurality of combination-specific sets of OC metrics and identifying a particular combination of computing devices, of the particular set of computing devices, as an optimal combination of computing devices for placement of the VM cluster based on the particular combination of computing devices being a highest-ranked of the plurality of combinations of computing devices. However, Tsai teaches ranking the plurality of combinations of computing devices based on the plurality of combination-specific sets of OC metrics ([0094] The set of queues 418 is a set of priority queues including an ordered list of hosts from the plurality of hosts. The set of queues 418 includes two or more queues providing an ordered list of hosts based on the resource shapes of the hosts; [0095] The CPU+memory queue is a queue for a combination of resources), and identifying a particular combination of computing devices, of the particular set of computing devices, as an optimal combination of computing devices for placement of the VM cluster based on the particular combination of computing devices being a highest-ranked of the plurality of combinations of computing devices ([0103] During the VM placement phase, the selection component 412 selects a predetermined number “K” of hosts 416 from each queue based on a multiqueue-K algorithm 414. The pre-determined number of hosts 416 is a fixed number of hosts taken from each queue. In a non-limiting example, if the predetermined number of hosts 416 is three (3), the selection component 412 selects three hosts from queue 420, three hosts from queue 424, and three hosts from queue 428 for a candidate set of hosts 432 that includes nine (9) hosts. In operation, the multiqueue-K algorithm 414 selects the hosts from each queue, where “K” is the number of hosts the coarse-grained scheduler 400 pops from each priority queue in the set of queues 418 for one VM placement optimization). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Tsai’s ranking system of candidate hosts for VM’s with the VM Cluster allocation system of Wang. A person of ordinary skill in the art would have been motivated to make this combination to improve the resource allocation of a VM cluster by selectively allocating the resources optimal for a set of VM’s from queues of predetermined rankings of host systems according to resource allocation weight scores (Tsai [0001] if a VM is placed on a host with insufficient resources available to meet the resource demands of the VMs, the host becomes overloaded; [0002] these placement and relocation decisions are frequently made based on insufficient information regarding resource demands of the VMs and resource availability of the hosts. This frequently results in sub-optimal placement of VMs, unbalanced hosts, network saturation, overloading of network links, and/or overall inefficient utilization of available cluster resources). Wang and Tsai do not explicitly teach the plurality of combinations of computing devices includes two combinations that contain a same computing device. However, Watanabe teaches the plurality of combinations of computing devices includes two combinations that contain a same computing device (Fig 4; Candidates (1) and (2) appear multiple times in each device combination). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Watanabe’s repeating devices in combinations with the existing system. A person of ordinary skill in the art would have been motivated to make this combination to provide the resulting system with the advantage of opting for the most excellent resource allocation of available candidate devices (see Watanabe [0012] the search unit searches for a combination of which the score is excellent, and the output unit outputs resource allocation corresponding to the excellent score found by the search unit; [0031] The search unit 23 searches for a combination of any of the resource allocation candidate (1) or the resource allocation candidate (2) and any of the execution order A and the execution order B. The score calculation unit 24 calculates a score, which is a score in each combination. It is assumed that the shorter the execution time, the higher the score, and the lower the price, the higher the score). Regarding claim 4, Wang, Tsai, and Watanabe teach the computer-implemented method of Claim 1. Wang further teaches wherein: the VM cluster is a first VM cluster with a first cardinality of VMs, the method further comprises provisioning a second VM cluster, comprising a second plurality of VMs with a second cardinality that is different than the first cardinality, within the computing system (Fig 1 clusters C-1 (as first VM cluster), C-2 (as second VM cluster); Fig 3 VM1-VM5 (as first cardinality of VM’s); Fig 4 VM1-VM25 (as second cardinality); [0024] FIG. 2, components of a host computer 200 that is representative of the host computers H-1, H-2 . . . H-M in the clusters C-1, C-2 . . . C-N in accordance with an embodiment of the invention are shown. In FIG. 2, the physical connections between the various components of the host computer are not illustrated. In the illustrated embodiment, the host computer is configured to support a number of clients 220A, 220B . . . 220L (where L is a positive integer), which are VMs in this embodiment. The number of VMs supported by the host computer can be anywhere from one to more than one thousand). Regarding claim 25, Wang, Tsai, and Watanabe teach the computer-implemented method of Claim 1. Wang further teaches wherein the particular OC is based on a standard deviation of a measurement of density of resources within computing devices of the particular set of computing devices ([0050] the resource allocation weight score generation unit 604 computes a resource allocation weight score of a resource node (e.g., a resource pool or a client) by multiplying a base allocation weight score with the number of powered-on clients in the resource node, which is also referred to as “shares per VM” method; [0044] The root RP includes hierarchically organized RPs, “RP1,” “RP2,” and VMs, “VM1”-“VM25.” In particular, the resources available in the root RP are divided into resource pools RP1, RP2, which are located in a first level or tier that is directly underneath the root RP. The resources in RP1 are shared by VM1-VM20, which are located in a second level or tier that is underneath the first level. The resources in RP2 are used by VM21-VM25, which are located in the second level. In the root RP 400, RP1 has “high” shares for both CPU and memory (i.e., 8000 CPU shares and 327680 memory shares). RP2 has “low” shares for CPU and memory (i.e., 2000 CPU shares and 81920 memory shares). Consequently, RP1 and RP2 are entitled to/allocated 80% and 20% of the total resources in the root RP, respectively. A user expects that a VM in RP1 has higher priority of resource allocation than a VM in RP2. However, because RP1 has 20 child VMs and RP2 has only 5 child VMs, each VM in RP1 is entitled to/allocated the same amount of resources as each VM in RP2 (assuming VM1-VM25 have equal sizes and are equally active). Regarding claim 26, Wang, Tsai, and Watanabe teach the computer-implemented method of Claim 1. Wang further teaches each OC of the set of OCs applicable to the VM cluster is associated with the VM cluster based on the type of the application associated with the VM cluster ([0036] the resource allocation module may maintain requirements and preferences for the clients with respect to the host computers and the datastores. These requirements and preferences may include affinity or anti-affinity rules for some of the clients, which may be mandatory or preferential. For example, these affinity or anti-affinity rules may include rules that specify which clients should run on the same host computer or be kept on separate host computers. As another example, these affinity or anti-affinity rules may include rules that specify which host computers are acceptable to clients and which host computers are not). Tsai further teaches wherein: each constraint of the one or more constraints for the VM cluster is associated with the VM cluster based on a type of an application associated with the VM cluster ([0057] Exemplary application(s) include, without limitation, mail application programs, web browsers, calendar application programs, address book application programs, messaging programs, media applications, location-based services, search programs, and the like; [0058] Each component of such distributed applications are packed into individual VMs and deployed in clusters of physical machines, such as, but not limited to, VMware vSphere clusters. In these examples, each component has different resource demands. Each of the VMs running a component of a distributed application may also have highly diverse resource requirements. The two-tiered scheduler 132 shown in FIG. 1 in some examples, performs an infrastructure optimization such that the application(s) running inside one or more VMs is allotted the necessary resources to run). Regarding claim 27, Wang, Tsai, and Watanabe teach the computer-implemented method of Claim 1. Tsai further teaches wherein each constraint of the one or more constraints for the VM cluster is based on a type of an application associated with the VM cluster ([0058] Each component of such distributed applications are packed into individual VMs and deployed in clusters of physical machines, such as, but not limited to, VMware vSphere clusters. In these examples, each component has different resource demands. Each of the VMs running a component of a distributed application may also have highly diverse resource requirements. The two-tiered scheduler 132 shown in FIG. 1 in some examples, performs an infrastructure optimization such that the application(s) running inside one or more VMs is allotted the necessary resources to run). Regarding claim 30, Wang, Tsai, and Watanabe teach the computer-implemented method of Claim 1. Wang further teaches wherein: at the time of said provisioning the VM cluster, a first computing device of the computing system hosts a particular VM of a second VM cluster ([0029] Turning back to FIG. 1, each of the cluster management servers 112 in the clusters C-1, C-2 (as second VM cluster) . . . C-N operates to monitor and manage the host computers H-1, H-2 . . . H-M in the respective cluster. Each cluster management server may be configured to monitor the current configurations of the host computers and the clients, e.g., VMs, running on the host computers in the respective cluster); said provisioning the VM cluster comprises moving the particular VM of the second VM cluster to a second computing device ([0036] To effectively balance the computing resources, a running VM can be migrated from one host computer cluster to another, in a process that is known as live VM migration). Regarding claim 31, Wang, Tsai, and Watanabe teach the computer-implemented method of Claim 1. Wang further teaches provisioning a second VM cluster comprising a second plurality of VMs that were established within the particular set of computing devices at the time of said provisioning the second VM cluster ([0036] To effectively balance the computing resources, a running VM can be migrated from one host computer cluster to another, in a process that is known as live VM migration; Examiner notes: migrating a VM across clusters involves provisioning the destination cluster to include the VM in addition to the existing VM’s in the destination cluster), wherein said provisioning the second VM cluster comprises changing an amount of resources allocated to one or more VMs of the second plurality of VMs ([0038] Resources allocated to clients (e.g., VMs), host computers, or resource pools (RPs) can be controlled by adjusting resource allocation/control settings, which may include reservation, limit and shares parameters). Regarding claim 32, it is the one or more non-transitory computer-readable media of claim 1. Therefore, it is rejected for the same reasons as claim 1. Wang further teaches one or more non-transitory computer-readable media storing instructions that, when executed by one or more processors ([0063] computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disc, and an optical disc. Current examples of optical discs include a compact disc with read only memory (CD-ROM), a compact disc with read/write (CD-R/W), a digital video disc (DVD), and a Blu-ray disc). Regarding claim 35, Wang, Tsai, and Watanabe teach the one or more non-transitory computer-readable media of Claim 32. Wang further teaches wherein: first hardware, of a first computing device of the particular combination of computing devices, is heterogeneous from second hardware of a second computing device of the particular combination of computing devices ([0029] The monitored configurations may include hardware configuration of each of the host computers, such as CPU type and memory size, and/or software configurations of each of the host computers, such as operating system (OS) type and installed applications or software programs; Examiner notes: monitoring the hardware configuration of CPU type and software configuration of OS type indicates a heterogenous computing system); and computing at least one metric of the combination-specific set of OC metrics for the particular combination of computing devices comprises determining a first performance metric based on the first hardware and a second performance metric based on the second hardware ([0036] Balancing can be applied to computer resources such as processor time, i.e., CPU cycles … network bandwidth (including any type of input/output or bus bandwidth) … power consumption). Regarding claim 36, it is the one or more non-transitory computer-readable media of claim 25. Therefore, it is rejected for the same reasons as claim 25 respectively. Claims 2 and 33 are rejected as being unpatentable over Wang et al. US 20160380905 A1 in view of Tsai et al. US 20180095776 A1 in view of Watanabe et al. US 20230305898 A1 in further view of Ciano et al. US 20140143773 A1. Ciano is cited in a previous office action. Regarding claim 2, Wang, Tsai, and Watanabe teach the computer-implemented method of Claim 1. Wang further teaches wherein the computing system comprises a plurality of sets of computing devices that includes the particular set of computing devices (Fig 1 Clusters C-1, C-N, Host Computers H-1, H-M; [0022] As shown in FIG. 1, the computer system includes a network 102, clusters C-1, C-2 . . . C-N (where N is a positive integer) of host computers, storage 104 and a management computer 106 with a resource allocation module 108 and a resource allocation setting storage module 110. The clusters of host computers are used to support or host clients that can execute various applications). Tsai further teaches identifying a plurality of set-optimal combinations of computing devices by, identifying a set-optimal combination of computing devices based on the set-optimal combination of computing devices being a highest-ranked combination of computing devices based on combination-specific sets of OC metrics determined for combinations of computing devices within said each set of computing devices (Fig 4 Set of Queues 418, Queues 420, 424, 428, List of Hosts 422, 426, 430; [0103] During the VM placement phase, the selection component 412 selects a predetermined number “K” of hosts 416 from each queue based on a multiqueue-K algorithm 414. The pre-determined number of hosts 416 is a fixed number of hosts taken from each queue. In a non-limiting example, if the predetermined number of hosts 416 is three (3), the selection component 412 selects three hosts from queue 420, three hosts from queue 424, and three hosts from queue 428 for a candidate set of hosts 432 that includes nine (9) hosts. In operation, the multiqueue-K algorithm 414 selects the hosts from each queue, where “K” is the number of hosts the coarse-grained scheduler 400 pops from each priority queue in the set of queues 418 for one VM placement optimization; Examiner notes: the method recited in Tsai is able to be repeated for each cluster in Wang to determine an optimal cluster); identifying a plurality of optimal combinations of computing devices by, for each set of computing devices of the plurality of sets of computing devices, identifying a highest-ranked combination of computing devices based on combination-specific sets of OC metrics determined for combinations of computing devices within said each set of computing devices (Fig 4 Set of Queues 418, Queues 420, 424, 428, List of Hosts 422, 426, 430; [0103] During the VM placement phase, the selection component 412 selects a predetermined number “K” of hosts 416 from each queue based on a multiqueue-K algorithm 414. The pre-determined number of hosts 416 is a fixed number of hosts taken from each queue. In a non-limiting example, if the predetermined number of hosts 416 is three (3), the selection component 412 selects three hosts from queue 420, three hosts from queue 424, and three hosts from queue 428 for a candidate set of hosts 432 that includes nine (9) hosts. In operation, the multiqueue-K algorithm 414 selects the hosts from each queue, where “K” is the number of hosts the coarse-grained scheduler 400 pops from each priority queue in the set of queues 418 for one VM placement optimization; Examiner notes: the method recited in Tsai is able to be repeated for each cluster in Wang to determine an optimal cluster); wherein the particular combination of computing devices is the optimal combination of computing devices for the particular set of computing devices ([0103] a candidate set of hosts 432 that includes nine (9) hosts). While Tsai teaches ranking device combinations in a set, Wang, Tsai, and Watanabe do not explicitly teach identifying the particular optimal combination of computing devices as a, from the plurality of optimal combinations of computing devices, a highest-ranked combination of computing devices based on combination-specific sets of OC metrics determined for the plurality of optimal combinations of computing devices; and wherein said automatically provisioning the VM cluster on the particular combination of computing devices is performed responsive to identifying the particular combination of computing devices. However, Ciano teaches identifying the particular combination of computing devices, from the plurality of optimal combinations of computing devices, as a highest-ranked combination of computing devices based on combination-specific sets of OC metrics determined for the plurality of optimal combinations of computing devices ([0063] the determining the second set of resources comprises: determining a group of resource sets that satisfy the constraints; assigning to each of the group of resource sets a ranking value; sorting by ranking value the group of resource sets; and selecting from the group of resource sets the second set of resources as the set having the highest ranking value. The ranking value may be for example the inverse number of CPU that satisfies the constraints, and the second set of resources being selected has the lowest number of CPUs. This may be advantageous as it may provide the best resource combination that may run the virtual appliance while still satisfying the constraints; Examiner notes: when using optimal combinations as group of resource sets, the method of Ciano determines the particular optimal combination); and wherein said automatically provisioning the VM cluster on the particular combination of computing devices is performed responsive to identifying the particular combination of computing devices ([0065] the deploying of the second set of resources to the virtual appliance and allocating of the second set of resources is automatically performed. This may be advantageous as it may not require external interventions to update the resources, and may thus solve any issue in time). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Ciano’s method of comparing resource sets with the VM cluster provisioning system of Wang, Tsai and Watanabe. A person of ordinary skill in the art would have been motivated to make this combination to improve the resource provisioning process by identifying the optimal devices to provision VM’s to according to some optimization criteria (Ciano [0051] These features may be advantageous, as they may provide an efficient method for dynamically managing the resources allocated to the virtual appliance and the virtual machines (VM) deployed for the virtual appliance. This may avoid an eventual congestion in the distributed computing system and/or underutilization of the allocated resources, and thus, minimizing of resource consumption and freeing up resources). Regarding claim 33, it is the one or more non-transitory computer-readable media of claim 2. Therefore, it is rejected for the same reasons as claim. Claims 3 and 34 are rejected as being unpatentable over Wang et al. US 20160380905 A1 in view of Tsai et al. US 20180095776 A1 in view of Watanabe et al. US 20230305898 A1 in view of Ciano et al. US 20140143773 A1 in further view of Dawkins et al. US 20020124127 A1. Dawkins is cited in a previous office action. Regarding claim 3, Wang, Tsai, Watanabe, and Ciano teach the computer-implemented method of Claim 2. Wang further teaches wherein: for each set of computing devices, of the plurality of sets of computing devices: said each set of computing devices is a set of tightly-interconnected computing devices (Fig 1 Network 102; [0022] As shown in FIG. 1, the computer system includes a network 102, clusters C-1, C-2 . . . C-N (where N is a positive integer) of host computers; [0024] The network interface is an interface that allows the host computer to communicate with other devices connected to the network 102), Wang, Tsai, Watanabe, and Ciano do not explicitly teach connections between devices of said each set of computing devices are configured to allow remote direct memory access (RDMA) requests; and connections between sets of computing devices, of the plurality of sets of computing devices, are configured to disallow RDMA requests. However, Dawkins teaches connections between devices of said each set of computing devices are configured to allow remote direct memory access (RDMA) requests; and connections between sets of computing devices, of the plurality of sets of computing devices, are configured to disallow RDMA requests ([0007] The DMA address checking component receives direct-memory-access requests and prohibits requests for addresses not within the same logical partition as the requesting device from being completed. Requests with addresses corresponding to the same logical partition as the requesting device are placed on the primary PCI bus by the DMA address checking component for delivery to the system memory). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Dawkins’ method of validating direct-memory-access requests with the VM cluster provisioning system of Wang, Tsai, Watanabe, and Ciano. A person of ordinary skill in the art would have been motivated to make this combination to improve system security by controlling system resource accessibility to restrain direct memory access limited to devices within an environment (Dawkins [0005] This is provided by allocating a disjoint set of platform resources to be directly managed by each OS image and by providing mechanisms for ensuring that the various images cannot control any resources that have not been allocated to it. Furthermore, software errors in the control of an OS's allocated resources are prevented from affecting the resources of any other image. Thus, each image of the OS (or each different OS) directly controls a distinct set of allocatable resources within the platform). Regarding claim 34, it is the one or more non-transitory computer-readable media of claim 3. Therefore, it is rejected for the same reasons as claim. Claims 22 and 37 are rejected as being unpatentable over Wang et al. US 20160380905 A1 in view of Tsai et al. US 20180095776 A1 in view of Watanabe et al. US 20230305898 A1 in view of Chawla et al. US 8555274 B1. Regarding claim 22, Wang, Tsai, and Watanabe teach the computer-implemented method of Claim 1. Wang further teaches a metric is computed for each OC of the set of OCs applicable to the VM cluster based on a formula that represents the OC, the formula using one or more of: one or more attributes of the VM cluster or more attributes of the particular set of computing devices ([0050] “shares per VM” method: the resource allocation weight score generation unit 604 computes a resource allocation weight score of a resource node (e.g., a resource pool or a client) by multiplying a base allocation weight score with the number of powered-on clients in the resource node; [0051] “shares per vCPU” method: the resource allocation weight score generation unit 604 computes a resource allocation weight score of a resource node (e.g., a resource pool or a client) by multiplying a base allocation weight score with the total number of vCPU of powered-on clients in the resource node). Wang, Tsai, and Watanabe do not explicitly teach each OC of the set of OCs applicable to the VM cluster represents an optimization goal for a customer associated with the VM cluster. However, Chawla teaches each OC of the set of OCs applicable to the VM cluster represents an optimization goal for a customer associated with the VM cluster (The QoS parameters thus specify the maximum load of the system, and the resource pool parameters specify the resources that are guaranteed to a user of VM. Requiring that the QoS parameters and the resource pool parameters are met may ensure acceptable performance of the system, Col 8 65-Col 9 2; The administrative console may also be used to set user permissions, such as, for example, specifying a "lease" (the amount of time that a user has access to VMs), and to set other user parameters and QoS parameters, such as the number of virtualized desktops that may be allocated to a given user, the resources that are available to the user, or the types of VMs that a user may access, Col 10 5-10); It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Chawla’s acceptability parameters with the existing system. A person of ordinary skill in the art would have been motivated to make this combination to provide the resulting system with the advantage of defining criteria to evaluate a user’s resource allocation (see Chawla col 16 28-48 … When the user wishes to open a new desktop session or perform an action using an existing desktop session, it is first determined whether any of the resource pool parameters would be exceeded. If so, the user may be unable to open the new desktop session or perform the action.). Regarding claim 37, it is the one or more non-transitory computer-readable media of claim 22. Therefore, it is rejected for the same reasons as claim 22 respectively. Claim 23 is rejected as being unpatentable over Wang et al. US 20160380905 A1 in view of Tsai et al. US 20180095776 A1 in view of Watanabe et al. US 20230305898 A1 in view of Chawla et al. US 8555274 B1 in further view of Li et al. US 20060277549 A1. Regarding claim 23, Wang, Tsai, Watanabe, and Chawla teach the computer-implemented method of Claim 22. Wang further teaches wherein the formula (a) represents the particular OC of the set of OCs applicable to the VM cluster, (b) is used to compute a particular metric for the particular OC ([0050] the resource allocation weight score generation unit 604 computes a resource allocation weight score of a resource node (e.g., a resource pool or a client) by multiplying a base allocation weight score with the number of powered-on clients in the resource node (as first formula), which is also referred to as “shares per VM” method); Wang, Tsai, Watanabe, and Chawla do not explicitly teach selecting the formula to compute the particular metric for the particular OC based on the formula being associated with the customer associated with the VM cluster. However, Li teaches selecting the formula to compute the particular metric for the particular OC based on the formula being associated with the customer associated with the VM cluster (Claim 1: said algorithm optimizing usage of said particular computing resource, constrained by said performance levels, by grouping said plurality of customer workloads into groups, each group being served by a different cluster of one or more instances of said particular computing resource; Claim 5 said algorithm is selected by a user from a dialog displaying alternatives for said optimizing; Claim 7 for each algorithm there is displayed a choice between optimizing the number of clusters or optimizing the total capacity of the instances of the particular computing resource; Examiner notes: from choice, customers are able to favor more weight to some aspects of allocation by providing different selections of algorithms/goals). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Li’s user selection of an optimization algorithm with the system of Wang, Tsai, and Chawla. A person of ordinary skill in the art would have been motivated to make this combination to provide Wang, Tsai, and Chawla’s system with the advantage of allowing customers to define their service levels so that service providers are able to best serve available resources (see Li [0007] It is therefore an object of the present invention to provide a system and method for optimally grouping multiple workloads and determining the best set of servers and other computing resources (e.g. memory, disk drives) to handle them). Claims 24 and 29 are rejected as being unpatentable over Wang et al. US 20160380905 A1 in view of Tsai et al. US 20180095776 A1 in view of Watanabe et al. US 20230305898 A1 in further view of Mankad et al. US 20220067061 A1. Mankad is cited to in a previous office action. Regarding claim 24, Wang, Tsai, and Watanabe teach the computer-implemented method of Claim 1. Wang, Tsai, and Watanabe do not explicitly teach wherein the VM cluster is configured to host a shared database cluster application, and the particular OC is applicable to the VM cluster based on the type of the shared database cluster application. However, Mankad teaches wherein the VM cluster is configured to host a shared database cluster application ([0021] The present disclosure is generally directed to a virtual computing system having a plurality of clusters, with each of the plurality of clusters having a plurality of nodes. Each of the plurality of nodes includes one or more virtual machines … The virtual computing system may be configured as a database system for providing database management services), and the particular OC is applicable to the VM cluster based on the type of the shared database cluster application ([0061] The database engine type may identify the type of database management system (e.g., Oracle, PostgreSQL, etc.) of a particular database. By virtue of creating or registering a database with a particular database engine type, that database is managed in accordance with the rules of that database engine type. Thus, the database management system 205 is configured to be operable with and manage databases associated with a variety of database engine types; [0098] A network profile may be needed for provisioning a database on the new cluster being registered. For example, different networks may be associated with different database engine types. Thus, depending upon the database engine type that the user desires for a database being provisioned, the network profile may vary. In some embodiments, each cluster may be associated with a network profile. Further, in some embodiments, the network profile of one cluster may not be replicated to another cluster. Thus, for each cluster being registered, the server 405 may request a default network profile for that cluster. In some embodiments, a default network profile may be provided as part of registering the new cluster. In other embodiments, a network profile may be provided at the time of provisioning a database. Thus, if the server 405 receives an indication at the operation 730 that the user desires to set up a default network profile, the process 700 proceeds to operation 735 where the server receives inputs from a user to create a default network profile). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Mankad’s database cluster application with the VM cluster provisioning system of Wang, Tsai, and Watanabe. A person of ordinary skill in the art would have been motivated to make this combination to improve the efficiency of database VM clusters by optimizing the provisioning of database VM’s according to allocation goals corresponding to different types of databases and their requirements (Mankad [0022] Database provisioning services involve creating new databases. Creating a new database may be a complex and long drawn process. A user desiring to create a new database with a provider of the database management system may make a new database creation request with the database provider. The user request may pass through multiple entities (e.g., people, teams, etc.) of the database provider before a database satisfying the user request may be created. For example, the user may be required to work with a first entity of the database provider to specify the configuration (e.g., database engine type, number of storage disks needed, etc.) of the database that is desired. Upon receiving the database configuration, another entity of the database provider may configure a database server virtual machine for hosting the database, while yet another entity may configure the networking settings to facilitate access to the database upon creation. Yet another entity of the database provider may configure database protection services to backup and protect the database. All of these tasks may take a few to several days). Regarding claim 29, Wang, Tsai, and Watanabe teach the computer-implemented method of Claim 1. Wang further teaches provisioning a second VM cluster comprising a second plurality of VMs that were established within the particular set of computing devices at the time of said provisioning the second VM cluster ([0036] To effectively balance the computing resources, a running VM can be migrated from one host computer cluster to another, in a process that is known as live VM migration; Examiner notes: migrating a VM across clusters involves provisioning the destination cluster to include the VM in addition to the existing VM’s in the destination cluster), Wang, Tsai, and Watanabe do not explicitly teach wherein said provisioning the second VM cluster comprises provisioning one or more VMs, other than the second plurality of VMs, for the second VM cluster. However, Mankad teaches wherein said provisioning the second VM cluster comprises provisioning one or more VMs, other than the second plurality of VMs, for the second VM cluster ([0081] To enable the multi-cluster configuration, a user may provide network information (e.g., IP address, VLAN, Domain Name System (DNS), gateway, subnet mask, etc.) for creating a new agent virtual machine on the cluster 410 for the agent 415). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Mankad’s creating of a new virtual machine on a cluster with the VM Cluster provisioning system of Wang, Tsai, and Watanabe. A person of ordinary skill in the art would have been motivated to make this combination to improve the scalability of database VM clusters by allowing for new database virtual machines to be provisioned in VM clusters with existing VM’s (Mankad [0021] A distributed storage system, for providing storage and protection capabilities, may be associated with the virtual computing system and shared at least partially by each of the plurality of nodes. The virtual computing system may be configured as a database system for providing database management services). Allowable Subject Matter Claim 28 objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims. Conclusion Applicant's amendment necessitated the new ground(s) 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. Any inquiry concerning this communication or earlier communications from the examiner should be directed to HARRISON LI whose telephone number is (703) 756-1469. The examiner can normally be reached Monday-Friday 9:00am-5:30pm ET. 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, Aimee Li can be reached on 571-272-4169. 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. /H.L./ Examiner, Art Unit 2195 /Aimee Li/Supervisory Patent Examiner, Art Unit 2195
Read full office action

Prosecution Timeline

Show 8 earlier events
Aug 26, 2025
Request for Continued Examination
Sep 01, 2025
Response after Non-Final Action
Jan 09, 2026
Non-Final Rejection mailed — §103
Feb 10, 2026
Applicant Interview (Telephonic)
Feb 10, 2026
Examiner Interview Summary
Feb 18, 2026
Response Filed
Apr 10, 2026
Final Rejection mailed — §103
May 19, 2026
Response after Non-Final Action

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12670020
SYSTEMS AND METHODS FOR GENERATING RUNTIME PREDICTIONS IN DISTRIBUTED COMPUTER ARCHITECTURES
3y 11m to grant Granted Jun 30, 2026
Patent 12657045
VIRTUAL MACHINE MEMORY MANAGEMENT METHOD AND DEVICE
4y 2m to grant Granted Jun 16, 2026
Patent 12639126
LOAD DISTRIBUTION IN A DATA STORAGE SYSTEM
4y 1m to grant Granted May 26, 2026
Patent 12632291
CONTROLLING JOB PACKING PROCESSING UNIT CORES FOR GPU SHARING
4y 3m to grant Granted May 19, 2026
Patent 12547428
PAGE TRANSITION DETECTION USING SCREEN OPERATION HISTORY
4y 1m to grant Granted Feb 10, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

4-5
Expected OA Rounds
68%
Grant Probability
99%
With Interview (+52.8%)
3y 11m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 22 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month