DETAILED ACTION
This office action is in response to claims filed 14 August 2023.
Claims 1-17 are pending.
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 .
Examiner’s Note
Claims 5, and 13 were not rejected under 35 U.S.C. 103. However, they stand rejected under other statutes and are therefore not objected to.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-17 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea (mental process) without significantly more.
Regarding claim 1, in step 1 of the 101 analysis set forth in MPEP 2106, the claim recites a method that schedules first and second computing units on connected nodes of a cluster. A method is one of the four statutory categories of invention.
In step 2A, prong 1 of the 101 analysis set forth in the MPEP 2106, the examiner has determined that the following limitations recite a process that, under the broadest reasonable interpretation, covers a mental process but for recitation of generic computer components:
i. “generating a connectivity matrix based on the connection information” (a person can mentally generate a connectivity matrix by simply evaluating connection information and making a judgement of a topology either mentally or using pen and paper of the connections or lack thereof between nodes (MPEP 2106.04(a)))
ii. “identifying a first computing unit and a second computing unit associated with an application” (a person can mentally identify computing units by simply evaluating associations between computing units and applications, and making a judgement of which particular computing units are associated with a same application (MPEP 2106.04(a)))
iii. “scheduling the first computing unit onto the first node” (a person can mentally schedule a computing unit onto a node by simply making a judgement of a simple plan of when the computing unit should execute on the first node (MPEP 2106.04(a)))
iv. “subsequent to scheduling the first computing unit onto the first node, scheduling the second computing unit onto the second node instead of the third node in response to determining that the first computing unit and the second computing unit belong to a same application and that the first node, onto which the first computing unit is scheduled, is connected to the second node according to the connectivity matrix” (a person can mentally schedule a computing unit onto a node by simply making a judgement of a simple plan of when the computing unit should execute on the first node (MPEP 2106.04(a)))
If claim limitations, under their broadest reasonable interpretation, covers performance of the limitations as a mental process but for the recitation of generic computer components, then it falls within the mental process grouping of abstract ideas. Accordingly, the claim “recites” an abstract idea.
In step 2A, prong 2 of the 101 analysis set forth in MPEP 2106, the examiner has determined that the following additional elements do not integrate this judicial exception into a practical application:
v. “receiving connection information that indicates interconnections between a plurality of nodes in a cluster” (insignificant extra-solution activity of mere data gathering (MPEP 2106.05(g))).
vi. “the connectivity matrix indicates that, in the plurality of nodes, a first node is connected to a second node and is not connected to a third node” (generally links the use of the judicial exception to a particular technological environment or field of use (MPEP 2106.05(h)).
Since the claim does not contain any other additional elements that are indicative of integration into a practical application, the claim is “directed” to an abstract idea.
In step 2B of the 101 analysis set forth in the 2019 PEG, the examiner has determined through reanalysis of the following limitations considered in step 2A prong 2, that the claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception.
v. “receiving connection information that indicates interconnections between a plurality of nodes in a cluster” (well-understood, routine, and conventional activity of receiving data over a network (MPEP 2106.05(d)(II)).
vi. “the connectivity matrix indicates that, in the plurality of nodes, a first node is connected to a second node and is not connected to a third node” (generally links the use of the judicial exception to a particular technological environment or field of use (MPEP 2106.05(h)).
Considering the additional elements individually and in combination, and the claim as a whole, the additional elements do not provide significantly more than the abstract idea. Therefore, the claim is not patent eligible.
Regarding claim 2, the additional element “storing scheduler metadata that indicates that the first computing unit is scheduled onto the first node” does not render the claim patent eligible because under step 2A prong 2, it does not integrate the judicial exception into a practical application (insignificant extra-solution activity of mere data storage (MPEP 2106.05(g)), and under step 2B it does not amount to significantly more than the judicial exception (well-understood, routine, and conventional activity of storing data in memory (MPEP 2106.05(d)(II))). Further, the additional element “determining where the first computing unit is scheduled using the scheduler metadata when scheduling the second computing unit” does not render the claim patent eligible because under step 2A prong 1, it recites a judicial exception (mental process) (a person can mentally determine computing unit schedules by simply evaluating scheduler metadata and making a judgement of a location where a computing unit is scheduled (MPEP 2106.04(a))).
Regarding claim 3, the additional element “scheduling the second computing unit to the second node further comprises determining that the second node is available for computation” does not render the claim patent eligible because under step 2A prong 1, it recites a judicial exception (mental process) (a person can mentally determine availability for scheduling by simply evaluating availability information and making a judgement of availability (MPEP 2106.04(a))).
Regarding claim 4, the additional element “scheduling the first computing unit onto the first node is in response to determining, based on the connectivity matrix, that the first node is a fully connected node” does not render the claim patent eligible because under step 2A prong 1, it recites a judicial exception (mental process) (a person can mentally determine connectivity of a node for scheduling by simply evaluating connectivity information and making a judgement of whether a node is fully connected (MPEP 2106.04(a))).
Regarding claim 5, the additional element “wherein a fourth node of the plurality of nodes is a fully connected node, and wherein the first node is connected to a second most amount of nodes in the plurality of nodes” does not render the claim patent eligible because under step 2A prong 2, it does not integrate the judicial exception into a practical application (generally links the use of the judicial exception to a particular technological environment or field of use (MPEP 2106.05(h)), and under step 2B it does not amount to significantly more than the judicial exception (generally links the use of the judicial exception to a particular technological environment or field of use (MPEP 2106.05(h))). Further, the additional element “scheduling the first computing unit onto the first node in response to determining that the fourth node is unavailable for receiving assignments” does not render the claim patent eligible because under step 2A prong 1, it recites a judicial exception (mental process) (a person can mentally determine computing unit schedules by simply evaluating availability data and making a judgement of availability of a node (MPEP 2106.04(a))).
Regarding claim 6, the additional element “monitoring for changes in the interconnections using a link state protocol” does not render the claim patent eligible because under step 2A prong 2, it does not integrate the judicial exception into a practical application (generally links the use of the judicial exception to a particular technological environment or field of use (MPEP 2106.05(h)), and under step 2B it does not amount to significantly more than the judicial exception (generally links the use of the judicial exception to a particular technological environment or field of use (MPEP 2106.05(h))). Further, the additional element “updating the connectivity matrix in response to detecting the changes” does not render the claim patent eligible because under step 2A prong 1, it recites a judicial exception (mental process) (a person can mentally update a topology of computing units by simply evaluating changes and making a new judgement of a topology either mentally or through use of pen and paper (MPEP 2106.04(a))).
Regarding claim 7, the additional element “receiving the connection information comprises: receiving individual connection information from each node of the plurality of nodes” does not render the claim patent eligible because under step 2A prong 2, it does not integrate the judicial exception into a practical application (insignificant extra-solution activity of mere data gathering (MPEP 2106.05(g), and under step 2B it does not amount to significantly more than the judicial exception (well-understood, routine, and conventional activity of receiving data over a network (MPEP 2106.05(d)(II))). Further, the additional element “combining the individual connection information to form the connection information” does not render the claim patent eligible because under step 2A prong 1, it recites a judicial exception (mental process) (a person can mentally combine information by simply evaluating data and making a judgement of a combination of the data (MPEP 2106.04(a))).
Regarding claim 8, the additional element “in response to determining that the second node is unavailable for receiving assignments and determining that the first node is available to receive additional assignments, scheduling the second computing unit onto the first node” does not render the claim patent eligible because under step 2A prong 1, it recites a judicial exception (mental process) (a person can mentally determine computing unit schedules by simply evaluating availability data and making a judgement of availability of a node (MPEP 2106.04(a))).
Regarding claims 9-17, they comprise limitations similar to claims 1-8, and are therefore rejected for similar rationale.
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, 6-7, 9, 12, 14-15, and 17 are rejected under 35 U.S.C. 103 as being unpatentable over GREENE et al. Pub. No.: US 2019/0278938 A1 (hereafter GREENE), in view of GOFF et al. Patent No.: US 9,749,174 B1 (hereafter GOFF).
Regarding claim 1, GREENE teaches the invention substantially as claimed, including:
A method for connectivity-aware scheduling, the method comprising:
receiving connection information that indicates interconnections between a plurality of nodes in a cluster ([0078] Control begins at block 500 with the cluster management service 120 receiving and storing registration data for a private cluster through the cluster management UI. The registration data is stored in the customer registration data store 140 (i.e., received registration data represents “connection information” because it indicates which nodes are “connected” within a private cluster vs which are not));
generating a connectivity matrix based on the connection information, wherein the connectivity matrix indicates that, in the plurality of nodes, a first node is connected to a second node and is not connected to a third node ([0028] Embodiments propose a hybrid cluster environment 100 (i.e., “connectivity matrix” within a “cluster”) to solve security and performance issues related to cloud data services, which are provided by the cluster management service 120. With embodiments, in the hybrid cluster environment 100, there are public cloud clusters managed by a cloud vendor, and there are private clusters run on-premise or in the cloud and co-owned by customer (i.e., cluster management service 120 maintains a knowledge, or “matrix” of nodes interconnected within a private cluster which are not connected to nodes of a public cluster within a hybrid cluster environment));
identifying a first computing unit and a second computing unit associated with an application ([0026] Each of the nodes 220, 230, 240 includes a deployment container (i.e., “computing unit”));
scheduling the first computing unit onto the first node ([0078] In block 502, the cluster management service 120 receives a job design through the cluster management UI 110. In block 504, the cluster management service 120 deploys the job to one or both of a public cloud cluster and a private cluster. The customer provides input on whether the job is to be deployed to one or both of the public cloud cluster and the private cluster (i.e., scheduling the job on the private node schedules the deployment container on the private node));
subsequent to scheduling the first computing unit onto the first node, scheduling the second computing unit onto the second node instead of the third node ([0031] The cluster management service 120 dispatches the jobs (i.e., job runtimes) (i.e., first and second jobs) to private clusters to reduce the management overhead and gain system performance when processing a large dataset in an on-premise cluster or in a private cloud cluster. Deploying the jobs to the private clusters advantageously avoids moving the data from the private clusters to the public cloud clusters and back (i.e., first and second jobs are scheduled to nodes of private cloud clusters that are not connected to nodes of public cloud clusters))…
While GREENE teaches scheduling first and second jobs on containers of nodes connected within a private cluster within a hybrid cluster environment, GREENE does not explicitly teach:
scheduling the second computing unit onto the second node instead of the third node in response to determining that the first computing unit and the second computing unit belong to a same application and that the first node, onto which the first computing unit is scheduled, is connected to the second node according to the connectivity matrix.
However, in analogous art that similarly discusses execution of jobs within private clusters, GOFF teaches:
scheduling the second [job] onto the second node instead of the third node in response to determining that the first [job] and the second [job] belong to a same application and that the first node, onto which the first [job] is scheduled, is connected to the second node according to the connectivity matrix ([Column 8, Lines 27-40] Each load balancer may be connected to a series of servers or server clusters. As explained in more detail below, each request from a mobile application is provisioned to the tier that is selected by the mobile application developer based on the service plan that the mobile application developer contracts with the service provider. These tier levels may be defined by the different servers or server clusters accessible to a particular mobile application based on the service plan and may have differing levels of performance based on the service plan. In the presently-described embodiment, the varying tiers may include an entity-specific server cluster 240, a public server cluster 242, a private server cluster 244, or any other computing device(s) capable of providing resources in response to a request (i.e., “job”) from a mobile application (i.e., jobs from a “same application” having a particular tier level associated with it are scheduled to connected nodes of a private server cluster that are not connected with a public server cluster)).
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 GOFF’s teaching of scheduling jobs on connected cluster nodes based on whether they belong to a same application, with GREENE’s teaching of scheduling jobs executed on container computing units on connected cluster nodes, to realize, with a reasonable expectation of success, a system that schedules jobs of container computing units on connected cluster nodes, as in GREENE which are associated with same applications, as in GOFF. A person having ordinary skill would have been motivated to make this opportunity to better maintain service level agreements to avoid negatively impacting an end user’s experience (GOFF, Column 1, Lines 18-31).
Regarding claim 4, GREENE further teaches:
scheduling the first computing unit onto the first node is in response to determining, based on the connectivity matrix, that the first node is a fully connected node ([0027] The private clusters 160a . . . 160n may be implemented with the components of private cluster 300. The private cluster 300 includes a master node 310 and nodes 320, 330, 340. [0079]The master node of the cluster uses a load balancing proxy server to identify a node of the cluster on which to execute the job. In block 604, the identified node of the cluster executes the job, which is monitored by a cluster monitoring daemon of the master node (i.e., each node of the cluster is connected to all other nodes in the cluster via the master node, and therefore each represent a “fully connected” node)).
Regarding claim 6, GREENE further teaches:
monitoring for changes in the interconnections using a link state protocol; and updating the connectivity matrix in response to detecting the changes ([0076] To ensure maximum availability of the private cluster, a cluster monitoring daemon (part of the cluster deployment master node image) is used to continuously monitor the quality and health of the private cluster and provide soft recovery where possible. As soon as the cluster monitoring daemon detects an unrecoverable error, the cluster monitoring daemon issues a notification. [0077] If any interactive shaping operation fails more than a pre-determined number of times (e.g., four consecutive times) on a given node, the cluster monitoring daemon marks that node as down in the load balancing proxy server to prevent any new incoming connections from being directed to that down node and a notification is issued (e.g., to the development operations team via email to investigate and resolve the problem). Although a node may be marked as down, the node is still targeted by the cluster monitoring daemon, and, as soon as the node responds successfully to an interactive shaping operation, the cluster monitoring daemon marks the node as up and available and issues a notification).
Regarding claim 7, GREENE further teaches:
receiving individual connection information from each node of the plurality of nodes; and combining the individual connection information to form the connection information ([0077] If any interactive shaping operation fails more than a pre-determined number of times (e.g., four consecutive times) on a given node, the cluster monitoring daemon marks that node as down in the load balancing proxy server to prevent any new incoming connections from being directed to that down node and a notification is issued (e.g., to the development operations team via email to investigate and resolve the problem). Although a node may be marked as down, the node is still targeted by the cluster monitoring daemon, and, as soon as the node responds successfully to an interactive shaping operation, the cluster monitoring daemon marks the node as up and available and issues a notification (i.e., responses to the interactive shaping operation represent “receiving individual connection information” that are combined by the cluster monitoring daemon to form a picture of the availability of the nodes in a cluster)).
Regarding claims 9, 12, 14, 15, and 17, they comprise limitations similar to those of claims 1, 4, and 6-7, and are therefore rejected for similar rationale.
Claims 2, 8, 10, and 16 are rejected under 35 U.S.C. 103 as being unpatentable over GREENE, in view of GOFF, as applied to claims 1, and 9 above, and in further view of CHEN et al. Patent No.: US 10,346,189 B2 (hereafter CHEN).
Regarding claim 2, while GREENE and GOFF discuss scheduling containers, GREENE and GOFF do not explicitly teach:
storing scheduler metadata that indicates that the first computing unit is scheduled onto the first node; and
determining where the first computing unit is scheduled using the scheduler metadata when scheduling the second computing unit.
However, in analogous art that similarly teaches scheduling containers, CHEN teaches:
storing scheduler metadata that indicates that the first computing unit is scheduled onto the first node ([Column 7, Lines 49-52] The scheduler launches the first container in a first host, where the first container includes a first version of a first container component and a first version of a second container component (block 315)); and
determining where the first computing unit is scheduled using the scheduler metadata when scheduling the second computing unit ([Column 8, Lines 51-54] The scheduler determines that the second metadata includes the first source (block 330). In an example, the scheduler 140 may determine that metadata 156 includes source 190B, and that source 190B is the same source 190A. [Column 9, Lines 6-8] In an example, containers that perform a unified function may be grouped together in a cluster that can be deployed together (i.e., the scheduler, with knowledge of where (metadata identifying which cluster) the first container is scheduled, determines to schedule the second container in the same cluster));
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 CHEN’s teaching of a scheduler that determines which cluster to schedule a second container based on data describing where a first container is scheduled, with the combination of GREENE and GOFF’s teaching of scheduling containers on clusters, to realize, with a reasonable expectation of success, a system that schedules a container on a private cluster of linked nodes, as in GREENE and GOFF, so as to co-locate the container with a first container, as in CHEN. A person having ordinary skill would have been motivated to make this combination to improve compute density and reduce inefficiency through co-locating related containers (CHEN Column 3, Lines 18-37).
Regarding claim 8, GREENE further teaches:
in response to determining that the second node is unavailable for receiving assignments and determining that the first node is available to receive additional assignments, scheduling the second computing unit ([0077] If any interactive shaping operation fails more than a pre-determined number of times (e.g., four consecutive times) on a given node, the cluster monitoring daemon marks that node as down in the load balancing proxy server to prevent any new incoming connections from being directed to that down node and a notification is issued (e.g., to the development operations team via email to investigate and resolve the problem). Although a node may be marked as down, the node is still targeted by the cluster monitoring daemon, and, as soon as the node responds successfully to an interactive shaping operation, the cluster monitoring daemon marks the node as up and available and issues a notification (i.e., nodes that are determined to be available are eligible for incoming job requests to be scheduled on)).
While GREENE and GOFF discuss scheduling of containers on connected nodes of clusters, GREENE and GOFF do not explicitly teach:
scheduling the second computing unit onto the first node;
However, in analogous art that similarly schedules containers onto nodes, CHEN teaches:
scheduling the second computing unit onto the first node ([Column 9, Lines 6-15] containers that perform a unified function may be grouped together in a cluster that can be deployed together…containers belonging to the same cluster may be deployed simultaneously by a scheduler 140, with priority given to launching the containers from the same pod on the same physical host (i.e., first and second containers are launched on a same first node));
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 CHEN’s teaching of a scheduler that determines which cluster to schedule a second container based on data describing where a first container is scheduled, with the combination of GREENE and GOFF’s teaching of scheduling containers on clusters, to realize, with a reasonable expectation of success, a system that schedules a container on a private cluster of linked nodes, as in GREENE and GOFF, so as to co-locate the container with a first container, as in CHEN. A person having ordinary skill would have been motivated to make this combination to improve compute density and reduce inefficiency through co-locating related containers (CHEN Column 3, Lines 18-37).
Regarding claims 10, and 16, they comprise limitations similar to claims 2, and 8, and are therefore rejected for similar rationale.
Claims 3, and 11 are rejected under 35 U.S.C. 103 as being unpatentable over GREENE, in view of GOFF, as applied to claims 1, and 9 above, and in further view of SAKTHIVEL et al. Pub. No.: US 2024/0069979 A1 (hereafter SAKTHIVEL).
Regarding claim 3, while GREENE and GOFF discuss scheduling containers on nodes of a cluster, GREENE and GOFF do not explicitly teach:
scheduling the second computing unit to the second node further comprises determining that the second node is available for computation.
However, in analogous art that similarly schedules containers on nodes of a cluster, SAKTHIVEL teaches:
scheduling the second computing unit to the second node further comprises determining that the second node is available for computation ([0002] During operation, the scheduler may receive a request to deploy a container. Upon receiving the request, the scheduler determines resource availability on each member node of the cluster to determine if the container can be deployed on any of the member nodes in the cluster).
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 SAKTHIVEL’s teaching of determining node availability prior to scheduling containers on that node, with the combination of GREENE and GOFF’s teaching of scheduling containers on connected nodes of clusters, to realize, with a reasonable expectation of success, a system that schedules containers on connected nodes of clusters, as in GREENE and GOFF, that have been determined to be available, as in SAKTHIVEL. A person having ordinary skill would have been motivated to make this combination to ensure nodes are not overloaded to improve load balancing.
Regarding claim 11, it comprises limitations similar to those of claim 3, and is therefore rejected for similar rationale.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MICHAEL W AYERS whose telephone number is (571)272-6420. The examiner can normally be reached M-F 8:30-5 PM.
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 at (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.
/MICHAEL W AYERS/Primary Examiner, Art Unit 2195