Prosecution Insights
Last updated: October 22, 2026
Application No. 18/362,587

DISTRIBUTED CONTROL PLANE IN A DEVELOPMENT ENVIRONMENT

Non-Final OA §103
Filed
Jul 31, 2023
Examiner
WU, BENJAMIN C
Art Unit
2195
Tech Center
2100 — Computer Architecture & Software
Assignee
Snowflake Inc.
OA Round
1 (Non-Final)
87%
Grant Probability
Favorable
1-2
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 87% — above average
87%
Career Allowance Rate
473 granted / 541 resolved
+32.4% vs TC avg
Strong +16% interview lift
Without
With
+16.4%
Interview Lift
resolved cases with interview
Typical timeline
2y 11m
Avg Prosecution
18 currently pending
Career history
571
Total Applications
across all art units

Statute-Specific Performance

§101
19.3%
-20.7% vs TC avg
§103
50.6%
+10.6% vs TC avg
§102
0.9%
-39.1% vs TC avg
§112
14.9%
-25.1% vs TC avg
Black line = Tech Center average estimate • Based on career data from 541 resolved cases

Office Action

§103
DETAILED ACTION Notice of Pre-AIA or AIA Status 1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . 2. Claims 1–30 are presented for examination in a non-provisional application filed on Jul. 31, 2023. Drawings 3. The drawings were received on 03/31/2023 (in the filings). These drawings are acceptable. Examiner’s Remarks 4. Examiner refers to and explicitly cites particular pages, sections, figures, paragraphs or columns and lines in the references as applied to Applicant’s claims to the extent practicable to streamline prosecution. Although the cited portions of the references are representative of the best teachings in the art and are applied to meet the specific limitations of the claims, other uncited but related teachings of the references may be equally applicable as well. It is respectfully requested that, in preparing responses to the rejections, the Applicant fully considers not only the cited portions of the references, but also the references in their entirety, as potentially teaching, suggesting or rendering obvious all or one or more aspects of the claimed invention. Abbreviations 5. Where appropriate, the following abbreviations will be used when referencing Applicant’s submissions and specific teachings of the reference(s): i. figure / figures: Fig. / Figs. ii. column / columns: Col. / Cols. iii. page / pages: p. / pp. References Cited 6. (A) Hopper, US 2024/0370306 A1 (“Hopper”). (B) Das et al., US 12,547,626 B1 (“Das”). (C) SINGHAL et al., US 2022/0229687 A1 (“Singhal”). (D) Cai et al., US 2024/0320055 A1 (“Cai”). Notice re prior art available under both pre-AIA and AIA 7. In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. 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 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. A. 8. Claims 1, 6, 11, 16, 21, and 26 are rejected under 35 U.S.C. 103 as being unpatentable over (A) Hopper in view of (B) Das. See “References Cited” section, above, for full citations of references. 9. Regarding claim 1, (A) Hopper teaches/suggests the invention substantially as claimed, including: “A system comprising: at least one hardware processor; and at least one memory storing instructions that cause the at least one hardware processor to perform operations comprising: (Fig. 5 and ¶¶ 69–72: processor and machine-readable (storage) medium for storing, encoding, or carrying a set of instructions for execution by the computing system); decoding a first provisioning request for configuring a control plane environment at a computing node of a … system, the control plane environment corresponding to a control plane of the … system (¶ 43: the system configures the one or more control plane nodes (e.g., nodes 210-1 through 210-3) according to configuration metadata, such as configuration metadata included in the request for generation of the cluster of virtual machines. The configuration metadata can include information regarding the nature and size of the nodes and corresponding containers and/ or virtual machines requested from the cloud services manager. For example, the configuration metadata includes a number of requested control plane nodes; ¶ 39: request that the cloud 202 build out the node group by transmitting a request that the cloud 202 provision at least one additional node (e.g., node 210-2 and/or node 210-3). For example, the cluster management system enables provision of such nodes according to specifications, configuration metadata, and/or other details provided by the user); “instantiating at the computing node, a first virtual machine (VM) cluster and a second VM cluster based on the first provisioning request” (¶ 43: the system configures the one or more control plane nodes (e.g., nodes 210-1 through 210-3) according to configuration metadata, such as configuration metadata included in the request for generation of the cluster of virtual machines. The configuration metadata can include information regarding the nature and size of the nodes and corresponding containers and/ or virtual machines requested from the cloud services manager. For example, the configuration metadata includes a number of requested control plane nodes; ¶ 14: individual VIRTUAL MACHINES (e.g., which can include containerized applications within these virtual machines) are provided for use as control plane nodes and/or worker nodes; ¶ 16: the system enables generation and configuration of control plane nodes based on nodes provisioned by the control plane node. Configured control plane nodes can, subsequently, request nodes for workload processing from the cloud provider based on workloads submitted to the system. By doing so, the system enables flexible deployment of clusters in a modular manner); “instantiating a cluster manager VM within the first VM cluster, the cluster manager VM configured with at least one control plane management function of the control plane environment” (¶ 43: the system configures the one or more control plane nodes (e.g., nodes 210-1 through 210-3) according to configuration metadata, such as configuration metadata included in the request for generation of the cluster of virtual machines); “instantiating at least one foreground VM within the first VM cluster” (¶ 44: (e.g., a cluster management system) for configuring worker nodes within a cluster managed by a cloud provider, using one or more components described herein. For example, the cluster management system can further include a worker node group 222, and one or more nodes 224-1 and/or 224-2 provisioned to process or execute one or more loads 226-1 and/or 226-2. ¶ 45: the control plane node 210-1 (e.g., through an API associated with the node) can submit a request to the cloud 202 ( e.g., an associated cloud services manager) for provisioning of one or more worker nodes within a worker node group; ¶ 46: a workload processing request includes a request, for example, from the user 212, for execution of one or more processes (e.g., workloads) on the container orchestration system). Hopper does not teach “a database system, the control plane environment corresponding to a control plane of the database system; instantiating at least one foreground VM … configured with at least one query processing function; and processing a query received by the computing node, the processing using the at least one query processing function.” (B) Das, in the context of Hopper’s invention, however teach or suggest: “a database system, the control plane environment corresponding to a control plane of the database system; (Col. 13, lines 45–55: Database service 310 may implement control plane 312, which may include various features to manage the database service 310 on behalf of client(s) 350, in some embodiments. For example, control plane 312 may implement various interfaces that transmit information on behalf of the clients 350. Control plane 312 may also implement the pool management 313, which may support various operations to deploy, scale, modify, or terminate one or more of the account cluster pools 316a . .. n of the database service 310); instantiating at least one foreground VM … configured with at least one query processing function; (Col. 7, lines 38–55: to detect whether the computing resource pool 120 should be scaled to provision or incorporate additional computing resources, according to some embodiments. The placement system 130 may be configured to determine a modification to increase the size of the computing resource pool 120, according to some embodiments. In some situations, the placement system 130 may determine that the computing resource pool 120 has been exhausted of available computing resources after a threshold number of attempts to assign the query 152 have been performed. For example, the placement system 130 may detect that scaling the computing resource pool 120 is required after N number of attempts to assign the query 152 have failed. The placement system 130 may be configured to send a request to a pool management service configured to provision additional computing resources for the computing resource pool 120, Col. 13, lines 35–45: Account cluster pools 316a ... n may include respective cluster pools that are assigned or allocated to different accounts of the database service 310 … the account cluster pools 316a ... n may be generally provisioned as cluster pools in a multi-tenant configuration. For example, each of the account cluster pools 316a ... n may be directed to a first client for a first query and directed to a second client for a second query; Col. 23, lines 45–53: pool management service may be configured to manage allocations and deployments of query processing clusters for the database service. For example, the pool management service may be configured to deploy additional query processing clusters to fulfill the query in response to the query placement system being unable to assign the query within a certain number of attempts); processing a query received by the computing node, the processing using the at least one query processing function.” (Fig. 4 and Col. 16, lines 58–63: The query placement system may send an instruction to the selected query processing cluster to initiate performance of the query to retrieve data from the database; Col. 23, lines 1–8: query placement system may be configured to send information pertaining to the query to the selected query processing cluster. The query placement system may send an instruction to the selected query processing cluster to initiate performance of the query to retrieve data from the database). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of (B) Das with those of (A) Hopper to deploy additional worker nodes/clusters for processing database queries. The motivation or advantage to do so is to provide (incorporate) multi-tenant database services to different clients and end users. 10. Regarding claim 6, Hopper and Das teach or suggest: “detecting a second provisioning request for at least one additional foreground VM within the second VM cluster, the second provisioning request generated by the cluster manager VM; and generating the at least one additional foreground VM based on the second provisioning request.” (Hopper, ¶ 39: request that the cloud 202 build out the node group by transmitting a request that the cloud 202 provision at least one additional node (e.g., node 210-2 and/or node 210-3). For example, the cluster management system enables provision of such nodes according to specifications, configuration metadata, and/or other details provided by the user; Fig. 3 and ¶ 61: based on generating an estimate of required resources for the workload processing request, the cluster management system can transmit (e.g., to a cloud provider) a second request for at least one additional node. For example, as discussed above) based on the workload processing request, the system determines resources ( e.g., processors, memory, storage, and/or time-related requirements) that are required or desired for processing of the associated workloads and/or processes; ¶ 64: the system enables dynamic handling and/or redistribution of workloads to additional nodes in cases where resources provisioned to the container orchestration system are insufficient; Das, Col. 7, lines 38–55: to detect whether the computing resource pool 120 should be scaled to provision or incorporate additional computing resources, according to some embodiments. The placement system 130 may be configured to determine a modification to increase the size of the computing resource pool 120, according to some embodiments. In some situations, the placement system 130 may determine that the computing resource pool 120 has been exhausted of available computing resources after a threshold number of attempts to assign the query 152 have been performed. For example, the placement system 130 may detect that scaling the computing resource pool 120 is required after N number of attempts to assign the query 152 have failed. The placement system 130 may be configured to send a request to a pool management service configured to provision additional computing resources for the computing resource pool 120). 11. Regarding claims 11 and 16, they are the corresponding method claims reciting similar limitations of commensurate scope as the system of claims 1 and 6, respectively. Therefore, they are rejected on the same basis as claims 1 and 6 above. 12. Regarding claims 21 and 26, they are the corresponding computer program product claims reciting similar limitations of commensurate scope as the system of claims 1 and 6, respectively. Therefore, they are rejected on the same basis as claims 1 and 6 above. B. 13. Claims 2–4, 12–14, and 22–24 are rejected under 35 U.S.C. 103 as being unpatentable over (A) Hopper in view of (B) Das, as applied to claims 1, 11, and 21 above, and further in view of (C) Singhal. 14. Regarding claim 2, Hopper teaches or suggests: “generate the cluster manager VM and the at least one foreground VM” (¶¶ 14, 16 and 43–46, as applied in rejecting claim 1 above). Hopper and Das do not teach “causing execution of a script of the control plane at the computing node.” (C) Singhal, however teaches or suggests implementing “causing execution of a script of the control plane at the computing node” (¶ 34: The control plane virtual machine 300 includes an operating system 310, a container runtime 320, a data store 330, a set of container orchestration components 340, and a set of scripts 350. ¶ 35: The operating system 310 can be any appropriate operating system that enables the control plane virtual machine 300 to manage workload; ¶ 39: The set of scripts 350 includes one or more scripts that can be executed by the control plane virtual machine 300 to control the virtual execution environment. For example, the scripts 350 can include one or more “bootstrap” scripts for deploying new virtual execution environments on the cluster. As a particular example, the scripts 350 can include one or more scripts related to kubeadm, which is a tool configured to bootstrap a minimum viable cluster of nodes). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of (C) Singhal with those of (A) Hopper and (B) Das to use a set of scripts to deploy and manage virtual machines, clusters and/or workloads. The motivation or advantage to do so is to automate the provisioning, deployment, networking, scaling, availability, and lifecycle management of virtual machines and clusters for executing database services. 15. Regarding claim 3, Hopper and Singhal teaches or suggest: “executing the script of the control plane as an operating system (OS) process associated with the OS of the computing node” (Hopper, ¶ 74: In general, the routines executed to implement examples herein can be implemented as part of an operating system or a specific application, component, program, object, module, or sequence of instructions (collectively referred to as “computer programs”); Singhal, ¶ 34: The control plane virtual machine 300 includes an operating system 310, a container runtime 320, a data store 330, a set of container orchestration components 340, and a set of scripts 350. ¶ 35: The operating system 310 can be any appropriate operating system that enables the control plane virtual machine 300 to manage workload; ¶ 39: The set of scripts 350 includes one or more scripts that can be executed by the control plane virtual machine 300 to control the virtual execution environment. For example, the scripts 350 can include one or more “bootstrap” scripts for deploying new virtual execution environments on the cluster. As a particular example, the scripts 350 can include one or more scripts related to kubeadm, which is a tool configured to bootstrap a minimum viable cluster of nodes; the Examiner notes that scripts are written in a scripting language which renders obvious using an operating system to manage/process and execute the scripts). 16. Regarding claim 4, Hopper and Das teach or suggest: “configuring a first local VM configuration file and a second local VM configuration file in local storage of the computing node, the first local VM configuration file associated with the cluster manager VM, and the second local VM configuration file associated with the at least one foreground VM” (Hopper, ¶ 34: receive a request from a user for configuration of a container orchestration system (e.g., a cluster 204) on the cloud 202; ¶ 39: the cluster management system enables provision of such nodes according to specifications, configuration metadata, and/or other details provided by the user; ¶ 43: system configures the one or more control plane nodes (e.g., nodes 210-1 through 210-3) according to configuration metadata, such as configuration metadata included in the request for generation of the cluster of virtual machines. The configuration metadata can include information regarding the nature and size of the nodes and corresponding containers and/ or virtual machines requested from the cloud services manager. For example, the configuration metadata includes a number of requested control plane nodes. ¶ 63: system tracks node usage over time and determine whether a redistribution or reconfiguration of worker nodes is desirable or required to complete the given workloads; Das, Col. 12, lines 50–54: servers. Control plane traffic generally includes administrative operations, such as system configuration and management ( e.g., resource placement, hardware capacity management, diagnostic monitoring, system state information). 17. Regarding claims 12–14, they are the corresponding method claims reciting similar limitations of commensurate scope as the system of claims 2–4, respectively. Therefore, they are rejected on the same basis as claims 2–4 above. 18. Regarding claims 22–24, they are the corresponding computer program product claims reciting similar limitations of commensurate scope as the system of claims 2–4, respectively. Therefore, they are rejected on the same basis as claims 2–4 above. C. 19. Claims 7, 17, and 27 are rejected under 35 U.S.C. 103 as being unpatentable over (A) Hopper in view of (B) Das, as applied to claims 6, 16, and 26 above, and further in view of (D) Cai. 20. Regarding claim 7, Hopper and Das do not teach “invoking using a cloud provisioning service executing within the at least one foreground VM, a local provisioning driver of an operating system (OS) of the computing node.” (D) Cai, in the context of Hopper and Das’s teachings, however teaches or suggests implementing: “invoking using a cloud provisioning service executing within the at least one foreground VM, a local provisioning driver of an operating system (OS) of the computing node” (¶ 64: for a worker node, a scaleAPI (scaleAPI) is disposed on a node agent of the worker node for invoking by a cloud instance of the worker node, and a bidirectional channel is established between the node agent of the worker node and the cloud instance of the worker node. Therefore, the node agent and the cloud instance can communicate with each other. Specifically, the cloud instance of the worker node may determine, based on status information of the cloud instance, whether scaling needs to be performed. After determining that scaling needs to be performed, the cloud instance initiates an automatic scaling request to the node agent of the worker node; ¶ 80: After determining that scale-up needs to be performed and a quantity of resources required for scaling up the cloud instance, the cloud instance may initiate a scale-up request to a node agent of the first worker node. After receiving the scale-up request from the cloud instance, the node agent may parse the request, to determine that the cloud instance is a to-be-scaled-up cloud instance and determine a quantity of resources required for scaling up the cloud instance). (see also Hopper, ¶ 39: software or controllers installed on the control plane node 210-1 can detect the CRD corresponding to the control plane node group and, accordingly, request that the cloud 202 build out the node group by transmitting a request that the cloud 202 provision at least one additional node (e.g., node 210-2 and/or node 210-3). For example, the cluster management system enables provision of such nodes according to specifications, configuration metadata, and/or other details provided by the user; ¶ 45: At act 266, the control plane node 210-1 (e.g., through an API associated with the node) can submit a request to the cloud 202 ( e.g., an associated cloud services manager) for provisioning of one or more worker nodes within a worker node group; Das, Col. 13, lines 45–55: Database service 310 may implement control plane 312, which may include various features to manage the database service 310 on behalf of client(s) 350, in some embodiments. For example, control plane 312 may implement various interfaces that transmit information on behalf of the clients 350. Control plane 312 may also implement the pool management 313, which may support various operations to deploy, scale, modify, or terminate one or more of the account cluster pools 316a . .. n of the database service 310). It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of (D) Cai with those of (A) Hopper and (B) Das to implement a node/resource scaling service for each worker node. The motivation or advantage to do so is to provide for the automated scaling of resources to ensure uninterrupted client service. 21. Regarding claim 17, it is the corresponding method claim reciting similar limitations of commensurate scope as the system of claim 7. Therefore, it is rejected on the same basis as claim 7 above. 22. Regarding claim 27, it is the corresponding computer program product claim reciting similar limitations of commensurate scope as the system of claim 7. Therefore, it is rejected on the same basis as claim 7 above. Allowable Subject Matter 23. Claims 5, 8–10, 15, 18–20, 25, and 28–30 are objected to as being dependent upon a rejected base claim, but would be allowable if 1) rewritten in independent form including all of the limitations of the base claim and any intervening claims. The following is the Examiner’s statement of reasons for allowance: The prior art of record, when viewed individually or in combination, does not expressly teach nor render obvious the features of dependent claims 5 and 8 when viewed as a whole, specific to the limitation(s) of: “wherein each of the first local VM configuration file and the second local VM configuration file includes an identifier (ID) for the OS process and a port ID for a communication port of the computing node used by the OS process during the executing of the script” and “generating using the local provisioning driver, a system call to a local provisioning script, the system call including at least one argument, the at least one argument associated with the at least one additional foreground VM.” Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. (a) Pandis et al., US 2023/0161792 A1, teaching scaling additional processing clusters for database query processing (b) Mao et al., US 12248818 B1, teaching starting up and maintaining a cluster in a warmed up state, and/or allocating clusters from a warmed up state. Any inquiry concerning this communication or earlier communications from the examiner should be directed to BENJAMIN C WU whose telephone number is (571)270-5906. The examiner can normally be reached Monday through Friday, 8:30 A.M. to 5:00 P.M.. 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 J. Li can be reached on (571)272-4169. 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. /BENJAMIN C WU/Primary Examiner, Art Unit 2195 September 10, 2026
Read full office action

Prosecution Timeline

Jul 31, 2023
Application Filed
Feb 20, 2025
Response after Non-Final Action
Sep 15, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12769585
Offloading Data Storage Device Processing Tasks to a Graphics Processing Unit
3y 3m to grant Granted Oct 20, 2026
Patent 12761975
SYSTEMS AND METHODS FOR DYNAMIC RESOURCE ORCHESTRATION
4y 12m to grant Granted Oct 13, 2026
Patent 12761965
PROGRAM EXECUTION STRATEGIES FOR HETEROGENEOUS COMPUTING SYSTEMS
3y 6m to grant Granted Oct 13, 2026
Patent 12754766
NEURAL NETWORK ACCELERATION VIA GRAPH PARTITION
5y 3m to grant Granted Oct 06, 2026
Patent 12754764
Efficient Container Packing in Host Nodes
2y 8m to grant Granted Oct 06, 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

1-2
Expected OA Rounds
87%
Grant Probability
99%
With Interview (+16.4%)
2y 11m (~0m remaining)
Median Time to Grant
Low
PTA Risk
Based on 541 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