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 Notes
Examiner cites particular columns and line numbers in the references as applied to the claims below
for convenience of the applicant. Although the specified citations are representative of the
teachings in the art and are applied to the specific limitations within the individual claim, other
passages and figures may apply as well. It is respectfully requested that in preparing responses, the
applicant fully consider the references cited in their entirety as potentially teaching all or part of the
claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the
examiner
Specification
The disclosure is objected to because of the following informalities: paragraph [0051], where it
states "an analytics services".
Appropriate correction is required.
The disclosure is objected to because of the following informalities: paragraph [0064], where it
states " may be determine to satisfy".
Appropriate correction is required.
The disclosure is objected to because of the following informalities: paragraph [0064], where it
states "art to effect such feature".
Appropriate correction is required.
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.
Claim[ 1-20 ] rejected under 35 U.S.C. 101 because the claimed invention is directed to a mental process without significantly more.
Step 1:
Claim 1 is directed to a ” A method for scaling a cluster, comprising:”, a method, and is therefore directed to a process, which is one of the four statutory categories.
Step 2A, Prong One:
Claim 1 recites the following limitations:
determining, by analyzing a workload graph, a first resource demand that satisfies a first concurrency requirement of first tasks schedulable on a first subset of the cluster;
determining a first cluster size to satisfy the first resource demand;
determining a first target size for the first subset based on the first cluster size;
determining that a current size of the first subset satisfies a first predetermined relationship with the first target size;
designating a first node of the first subset for downscaling;
scheduling new first tasks on nodes of the first subset that are not designated for downscaling;
All of which can be performed in the human mind though observation, evaluation, judgement, and opinion, with the aid of pen and paper, and therefore reciting a mental process.
Accordingly, claim 1 recited a judicial exception (I.e. an abstract idea).
Step 2A Prong Two:
Claim 1 recites the following information:
removing the designated first node from the cluster subsequent to all tasks on the designated first node completing execution
which constitutes as insignificant extra solution activity because they do not meaningfully limit the claim. They are routine, conventional, and don’t improve the functioning of a computer or another technology. See MPEP 2106.05(g)
Step 2B:
The additional elements within this claim fail to include additional elements that amount to significantly more than the abstract idea (MPEP 2106.05). These elements, which include a cluster environment, nodes, a subset of nodes, concurrency requirements, and downscaling, are generic computer components and routine data steps. These elements, both individually and in combination, perform well-understood, routine, and conventional activities such as evaluating system conditions, applying decision rules, and allocating resources within a distributed system. The claim does not recite a specific technological improvement to cluster computing, resource scheduling, or system performance, nor does it provide a non-conventional implementation .Instead, it applies the abstract idea using generic computing components.
Consequently, claim 1 as a whole does not amount to significantly more than the recited judicial exceptions and the claim is not eligible.
Claim 2 is dependent on claim 1, and therefore inherits the same and therefore inherits the same judicial exception recited in claim 1. Further, claim 2 recites, determining that the current size of the first subset does not satisfy the first predetermined relationship with the first target size; and adding a new node to the first subset which can be performed in the human mind though observation, evaluation, judgment, and opinion, with the aid of pen, paper, or a computer, and therefore reciting a mental process.
Accordingly, for the same reasons presented with respect to claim 1, the additional elements
are not indicative of integration into a practical application, nor do they amount to significantly more
than the recited judicial exceptions. Thus, claim 2 is not eligible.
Claim 3 is dependent on claim 1, and therefore inherits the same and therefore inherits the same judicial exception recited in claim 1.
Further, claim 3 recites:
determining, by analyzing the workload graph, second tasks schedulable on a second subset of the cluster, wherein the first tasks comprise tasks associated with a placement constraint;
determining, by analyzing the workload graph, a second resource demand that satisfies a second concurrency requirement of the second tasks;
determining a second cluster size to satisfy the second resource demand; determining a second target size for the second subset based on the second cluster size;
determining that a current size of the second subset satisfies a second predetermined relationship with the second target size;
designating a second node of the second subset for downscaling;
scheduling new second tasks on nodes of the second subset that are not designated for downscaling;
removing the designated second node from the cluster subsequent to all tasks on the designated second node completing execution.
All of which can be performed in the human mind though observation, evaluation, judgment, and opinion, with the aid of pen, paper, or a computer, and therefore reciting a mental process.
Accordingly, for the same reasons presented with respect to claim 1, the additional elements
are not indicative of integration into a practical application, nor do they amount to significantly more
than the recited judicial exceptions. Thus, claim 3 is not eligible.
Claim 4 is dependent on claim 3, and therefore inherits the same judicial exception recited in claim 3. Further, claim 4 recites, determining a first target size is based on a first configurable window of first cluster size values and said determining the second target size is based on a second configurable window of second cluster size values that covers a different timeframe than the first configurable window, all of which can be performed in the human mind though observation, evaluation, judgment, and opinion, with the aid of pen, paper, or a computer, and therefore reciting a mental process.
Accordingly, for the same reasons presented with respect to claim 3, the additional elements
are not indicative of integration into a practical application, nor do they amount to significantly more
than the recited judicial exceptions. Thus, claim 4 is not eligible.
Claim 5 is dependent on claim 1 and therefore inherits the same judicial exception recited in claim 1. Further, claim 5 recites,
recursively analyzing the workload graph to determine scheduling sequences of the first tasks based on precedence and/or dependency constraints associated with the first tasks, each scheduling sequence comprising one or more scheduling steps;
determining, for each particular scheduling step, a corresponding resource demand for a subset of first tasks schedulable during the particular scheduling step based on the concurrency requirements of the subset of first tasks;
determining the scheduling step having a highest corresponding resource demand; and
determining the highest corresponding resource demand as the first resource demand.
all of which can be performed in the human mind though observation, evaluation, judgment, and opinion, with the aid of pen, paper, or a computer, and therefore reciting a mental process.
Accordingly, for the same reasons presented with respect to claim 1, the additional elements
are not indicative of integration into a practical application, nor do they amount to significantly more
than the recited judicial exceptions. Thus, claim 5 is not eligible.
Claim 6 is dependent on claim 1 and therefore inherits the same judicial exception recited in claim 1. Further, claim 6 recites,
determining, by analyzing task dependency information in the workload graph, first tasks that may execute concurrently; and
determining the first resource demand as a summation of concurrency requirements associated with the first tasks that may execute concurrently
all of which can be performed in the human mind though observation, evaluation, judgment, and opinion, with the aid of pen, paper, or a computer, and therefore reciting a mental process.
Accordingly, for the same reasons presented with respect to claim 1, the additional elements
are not indicative of integration into a practical application, nor do they amount to significantly more
than the recited judicial exceptions. Thus, claim 6 is not eligible.
Claim 7 is dependent on claim 1 and therefore inherits the same judicial exception recited in claim 1. Further, claim 7 recites,
designating, for downscaling, a node of the first subset having a lowest resource utilization; or
designating, for downscaling, a node of the first subset having an earliest expected completion time, wherein the expected completion time is the expected time for all tasks executing on the node to complete execution
all of which can be performed in the human mind though observation, evaluation, judgment, and opinion, with the aid of pen, paper, or a computer, and therefore reciting a mental process.
Accordingly, for the same reasons presented with respect to claim 1, the additional elements
are not indicative of integration into a practical application, nor do they amount to significantly more
than the recited judicial exceptions. Thus, claim 7 is not eligible.
Claim 8 is dependent claim 1, and therefore inherits the same juridical exception recited in claim 1. Further, claim 8 recites the following additional element,
wherein the first subset comprises all nodes of the cluster
which amounts to merely indicating a field of use or technological environment in which to apply a judicial exception, see MPEP 2106.05(h)). Since the claim does not recite additional elements that either integrate the judicial exception into a practical application, nor provide significantly more than the judicial exception, claim 8 is not patent eligible.
Claims 9-14 recite substantially the same limitations as those recited in claims 1-8, respectively, applied
to the method of claim 9. Thus, for the same reasons presented with respect to claims 1-8, claims 9-14 are directed to an abstract idea without significantly more and are not eligible.
Claims 15-20 recite substantially the same limitations as those recited in claims 1-8, respectively, applied
to the method of claim 15. Thus, for the same reasons presented with respect to claims 1-8, claims 15-20 are directed to an abstract idea without significantly more and are not eligible.
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, 7, 9, 13, 15, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Malvankar (US 2024/0220329 A1, referred hereinafter as R1) in view of Harjono et al. US 2022/0413913 A1, referred hereinafter as R2)
As per Claim 1, R1 in view of R2 discloses,
A method for scaling a cluster, comprising: determining, by analyzing a workload graph, a first resource demand that satisfies a first concurrency requirement of first tasks schedulable on a first subset of the cluster; (R1, figure 4 shows a graph used to illustrate the performance of scaling computing resources from clusters. Figure 8 shows how a demand or request is satisfied in relation to the cluster. Para 0021 teaches scaling clusters associated with a computational workload)
determining a first cluster size to satisfy the first resource demand; (R1 para [0030] teaches a policy used to downscale and upscale clusters and the cluster associated with the workload or task. A scaling system may then scale multiple clusters according to the general policy used to dictate what gets done to the clusters. [0034] teaches how a minimum or maximum threshold for number of nodes is determined to be sufficient for a workload. This is understood to be the “first target size”, as it is later shown in [0042] that this threshold is used as means to verify policies. [0045-0046], teaches the computing system may determine computing resources (e.g., memory, processing power, and the like) involved to accommodate the particular workload and an associated time for completion, (this being understood as "FIRST CLUSTER SIZE") and how the policy incorporates management of limits for each cluster, such as a minimum number of nodes and a maximum number of nodes required to complete pending workloads for all available clusters (e.g., stored within workload status 213). (this highlighting another example of "first target size"). Para 0076 has Figure 7 showcases the process used to determine how a resource demand is satisfied., and is referred to as “Method 700”. In it, is a step used to apply policies to verified clusters involved, which is understood to include the size of the cluster, referred to as “702“. This is understood to be the same step implemented in 0027-0028 of the Specification)
determining a first target size for the first subset based on the first cluster size; (R1 para [0030] teaches a policy used to downscale and upscale clusters and the cluster associated with the workload or task. A scaling system may then scale multiple clusters according to the general policy used to dictate what gets done to the clusters. [0034] teaches how a minimum or maximum threshold for number of nodes is determined to be sufficient for a workload. This is understood to be similar as the “first target size”, as it is later shown in [0042] that this threshold is used as means to verify policies. [0045-0046], teaches the computing system may determine computing resources (e.g., memory, processing power, and the like) involved to accommodate the particular workload and an associated time for completion, (this being understood as "FIRST CLUSTER SIZE") and how the policy incorporates management of limits for each cluster, such as a minimum number of nodes and a maximum number of nodes required to complete pending workloads for all available clusters (e.g., stored within workload status 213). (this highlighting another example of "first target size"). Para 0076 Figure 7 showcases the process used to determine how a resource demand is satisfied., and is referred to as “Method 700”. It is understood that based on the size of the cluster, requirements can be established or updated to fulfill the demand, referred to as “706”. This is understood to be the step implemented in 0028 of the Specification)
determining that a current size of the first subset satisfies a first predetermined relationship with the first target size; (R1, F(R1 para [0030] teaches a policy used to downscale and upscale clusters and the cluster associated with the workload or task. A scaling system may then scale multiple clusters according to the general policy used to dictate what gets done to the clusters. [0034] teaches how a minimum or maximum threshold for number of nodes is determined to be sufficient for a workload. This is understood to be similar as the “first target size”, as it is later shown in [0042] that this threshold is used as means to verify policies. [0045-0046], teaches the computing system may determine computing resources (e.g., memory, processing power, and the like) involved to accommodate the particular workload and an associated time for completion, (this being understood as "FIRST CLUSTER SIZE") and how the policy incorporates management of limits for each cluster, such as a minimum number of nodes and a maximum number of nodes required to complete pending workloads for all available clusters (e.g., stored within workload status 213). (this highlighting another example of "first target size"). Para 0076 Figure 7 showcases the process used to determine how a resource demand is satisfied., and is referred to as “Method 700”. In [0077-0078] It is understood that within block “704”, there is a monitoring system that stores information related to the allocation and policy being generated, such as categorization of data, storing of data, and decisions and actions to be made based on the data.)
designating a first node of the first subset for downscaling; (R1, 0046, figure 3: shows and explains how a computing system can identify a cluster, and by extension, it’s nodes for autoscaling, who’s definition can be extended to downscaling, as seen in 0017 of the Specification process where resources are adjusted an automatic means of downscaling. R1 0071 teaches Method 600 further includes generating (608) a policy to downscale at least one of the identified clusters according to the trained deep reinforcement learning model. In one example of block 608, policy generation module 211 generates the policy responsive to machine learning model applier 207 applying machine learning model 209 to the computing resource details retrieved from accounting database 109 and based on data from priority database (e.g., user account status, user account priority, and so on) 0072 continues by showcasing an example where the predetermined criteria may include that no current workloads are terminated once the policy is applied; that downscaling of clusters associated with low-priority user accounts is more likely than downscaling of clusters associated with high-priority user accounts)
R1 does not disclose but R2 discloses:
scheduling new first tasks on nodes of the first subset that are not designated for downscaling; (R2 0037: explains how new tasks are assigned and scheduled via the compute service manager. R1 0071 teaches Method 600 further includes generating (608) a policy to downscale at least one of the identified clusters according to the trained deep reinforcement learning model. In one example of block 608, policy generation module 211 generates the policy responsive to machine learning model applier 207 applying machine learning model 209 to the computing resource details retrieved from accounting database 109 and based on data from priority database (e.g., user account status, user account priority, and so on) 0072 continues by showcasing an example where the predetermined criteria may include that no current workloads are terminated once the policy is applied; that downscaling of clusters associated with low-priority user accounts is more likely than downscaling of clusters associated with high-priority user accounts.)
and removing the designated first node from the cluster subsequent to all tasks on the designated first node completing execution. (R2 0044, explains how a node is removed when it is no longer necessary upon completion of a job)
Malvankar is considered to be analogous art to the claimed invention because it is in the same field of clusters that is used to compute and determine the target size in relation to the node(s). Harjono is also considered to be analogous art to the claimed invention because it’s in the same field of scheduling and designating actions such as removing and designating the node as a result of characteristics of the node. Therefore, it would have been obvious to one of the ordinary skill in the art to have modified the process of scaling a cluster of R1 to ensure that based on that action, a node is added or removed based on its characteristics as R2 suggests.
As per claim 7, R1 in view of R2 discloses,
designating, for downscaling, a node of the first subset having a lowest resource utilization; or designating, for downscaling, a node of the first subset having an earliest expected completion time, wherein the expected completion time is the expected time for all tasks executing on the node to complete execution. (R1, 0046, figure 3: shows and explains how a computing system can identify a cluster, and by extension, it’s nodes for autoscaling, who’s definition can be extended to downscaling, as seen in 0017 of the Specification process where resources are adjusted an automatic means of downscaling. When combined with R3, which covers low utilization and early task completion. It is obvious that a POSITA would combine these teachings to reduce cost and improve efficiency.)
Claims 9 and 13 recite substantially the same limitations as those recited in claims 1-8, respectively, applied to the method of claim 9. Thus, for the same reasons presented with respect to claims 1 and 7, claims 9 and 13 are directed to an abstract idea without significantly more and are not eligible.
Claims 15 and 19 recite substantially the same limitations as those recited in claims 1-8, respectively, applied to the method of claim 15. Thus, for the same reasons presented with respect to claims 1 and 7, claims 15 and 19 are directed to an abstract idea without significantly more and are not eligible.
Claims 2-3, 5-6, 8, 10, 12, 14, 16, 18, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Malvankar (US 2024/0220329 A1, referred hereinafter as R1) in view of Molka et al. (US 2016/0328273 A1, referred hereinafter as R2), further in view of Harjono et al. US 2022/0413913 A1, referred hereinafter as R3).
As per claim 2, R1 in view of R2 discloses
determining that the current size of the first subset does not satisfy the first predetermined relationship with the first target size; and adding a new node to the first subset. (R1, 0079: Based on the feedback received from the application of the policy, the cluster may submit a new requirement, i.e., the fact that the current size does not satisfy the predetermined relationship with the first target size. From there, there is a means to allocate additional computing sources, i.e., a node to aid in the completion of the workload if necessary.)(
Malvankar, Molka et al., and Harjono et al. are all considered to be analogous art to the claimed invention as they are reasonably penitent to the problem faced by the inventor of cluster autoscaling. Therefore, it would be obvious to one of ordinary skill in the art that optimizing workloads in a workload placement system while autoscaling within an elastic cloud service, which are taught by Molka and Harjono, respectively, could include the systems, methods, techniques, instruction sequences, and computing machine program productions that result from the allocation of compute resources, as taught by Malvankar.
As per claim 3, the evidence found R1 in view of R2 and R3 discloses the same information.
As per claim 5, R1 in view of R2 discloses
recursively analyzing the workload graph to determine scheduling sequences of the first tasks based on precedence and/or dependency constraints associated with the first tasks, each scheduling sequence comprising one or more scheduling steps;
determining, for each particular scheduling step, a corresponding resource demand for a subset of first tasks schedulable during the particular scheduling step based on the concurrency requirements of the subset of first tasks;
determining the scheduling step having a highest corresponding resource demand; and determining the highest corresponding resource demand as the first resource demand. (R1, 0052, uses a graph as an illustrative embodiment of the mapping of sequences. This graph is later explained to show an estimated line and original line used to determine computing resources of a computing cluster against what is demanded from a workload. It is understood that this graph can be used to understand and schedule steps based on how much of a resource is needed for the completion of a task as the functionality shown with the graph (400) accomplishes the same functionality with the hypergraph analyzer (112) of the Specification in 0042)
As per claim 6, R1 in view of R2 discloses
determining, by analyzing task dependency information in the workload graph, first tasks that may execute concurrently; and
determining the first resource demand as a summation of concurrency requirements associated with the first tasks that may execute concurrently. (R1 0052 shows how tasks can be analyzed and explains the results of the graph. Figure 8 displays a flowchart used to how tasks can be done concurrently through usage of the flowchart blocks to showcase a process, in which within those blocks are requirements that need to be fulfilled before proceeding to the next step.)
As per claim 8, R1, in view of R2 and R3 discloses that defining a subset as “all nodes” is a generalization, as it represents a predictable variation of selecting a subset of nodes, making it obvious to a POSITA depending on the system requirements.
Claims 10, 12, and 14 recite substantially the same limitations as those recited in claims 3, 5 and 8, respectively, applied to the method of claim 10. Thus, for the same reasons presented with respect to claims 3, 5 and 8, claims 10, 12, and 14 are directed to an abstract idea without significantly more and are not eligible.
Claims 16, 18, and 20 recite substantially the same limitations as those recited in claims 3, 5 and 8, respectively, applied to the method of claim 10. Thus, for the same reasons presented with respect to claims 3, 5 and 8, claims 16, 18, and 20 are directed to an abstract idea without significantly more and are not eligible.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner
should be directed to SAMUEL NWUHA whose telephone number is (571)272-9367. The examiner can
normally be reached Monday-Friday; 7:30 am - 5:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a
USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use
the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor,
Kevin Young can be reached at (571) 270-3180. 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.
/SAMUEL OBINNA NNAJI NWUHA/
Examiner, Art Unit 2194
/KEVIN L YOUNG/Supervisory Patent Examiner, Art Unit 2194