DETAILED ACTION
Claims 1-21 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 .
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1-21 are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Koropoff (US 2023/0102863 A1).
Regarding claim 1, Koropoff teaches an apparatus to manage provisioning of computing resources ([0022] storage system component SSC 110 can be coupled with cluster provisioning component (CPC) 120. CPC 120 can enable provisioning of storage clusters that can comprise storage elements from one or more SSC), the apparatus comprising:
network interface circuitry ([0068] Communication framework 940 can comprise wired network devices, wireless network devices, mobile devices, wearable devices, radio access network devices, gateway devices, femtocell devices, servers, etc.; Fig. 10 Network Interface);
computer readable instructions (Claim 1 “A system, comprising: a processor; and a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising: […] determining a candidate cluster configuration based on a recursive combinatorial search of an entity search space comprising the entity, wherein the recursive combinatorial search supports pruning of entity forks of the entity search space; and initiating provisioning of the candidate cluster configuration.”; Fig. 10 Memory); and
programmable circuitry ([0088] FPGA) to instantiate:
allocation candidate circuitry to determine a first allocation candidate and a second allocation candidate for a first allocation resource and a second allocation resource ([0023] In some embodiments, client criteria input(s) CCI 132 can be divided into different phases, e.g., a first phase of CCI 132 can indicate cluster requirements to allow criteria input component CIC 130 and cluster provisioning component CPC 120 to determine a group of candidate cluster configurations (i.e., first and second allocation candidates); [0030] In embodiments, CPC 120 can determine cluster criteria for candidate cluster configurations and can reflect information, such as, a number of storage nodes, different classes of computing resources such as tiers reflecting CPU count, volume of RAM, etc., storage element types, storage element sizes, storage element counts, e.g., number of storage drives per node, etc., a count of accelerator nodes, tiers of accelerator nodes, a cluster protection level, etc…CPC 120 can determine candidate cluster configurations based on CCI 132 received via CIC 130.), respectively;
iteration circuitry to generate a first candidate set based on the first allocation candidate and the second allocation candidate ([0027] Accordingly, the recursive searching of the ontology can provide candidate cluster configurations that can be further sorted, ranked, ordered, etc., to enable selection of a preferred candidate cluster configuration via CIC 130.; [0030] Queries can be performed by recursive combinatorial search with pruning. The search order can be determined by a query schedule that can be based on data dependencies between attributes in the ontology and heuristics to favor early pruning, for example, an MTTDL constraint can be based on first recursing on attributes such node count and drive size so the MTTDL constraint can be evaluated with concrete values.; [0037] Queries can be performed by recursive combinatorial search with pruning to exclude ontological splits of elements to quickly determine resulting candidate cluster configurations that satisfy cluster criteria indicated via CCI 232.; [0057]);
filter circuitry to determine whether the first allocation candidate and the second allocation candidate are incompatible (Fig. 1, CPC 120; [0037] The search order and pruning can be determined by a query schedule that can be based on data dependencies between attributes in the ontology and heuristics to favor early pruning where, if a constraint from CCI 232 is not met in the query, further combinations of unrelated attributes below that node in the search tree can be pruned.);
skipping circuitry to determine to skip, after a determination that the first allocation candidate and second allocation candidate are incompatible, a second candidate set based on the incompatibility between the first allocation candidate and the second allocation candidate present in the second candidate set ([0015]; [0016] This example iterative pruning can therefore traverse candidate clusters to arrive at a group of acceptable candidate clusters in a want that no human can do in the context of a modern storage system.; [0060] Method 700, at 720, can comprise determining candidate cluster configurations based on a recursive combinatorial search with pruning of entities representing the computing resources of the data storage system. Entities, including the entity determined at 710, can be subjected to recursive combinatorial searching to determined candidate cluster configurations based on client indicated cluster criteria. The recursive combinatorial searching can employ pruning. Pruning can include ranking attributes via a heuristic, facilitating prioritizing a query scheduler, based on the corresponding attribute, to recursively prune entities of the ontology at a fork or node. Preferentially recursing on attributes that are more likely than other attributes to result in pruning of larger portions of the entity search space can typically more quickly reduce the number of entities being searched. As an example, a criteria that indicates only entities located proximate to a client facility are acceptable can support pruning according to a location attribute of all entities. Where, in this example, the location-based pruning is performed before some other less impactful attribute of the entities of the search space, the location-based pruning can quickly reduce the remaining number of entities being considered and recursively searched through. A fork that reaches the end of the schedule without being pruned can be regarded as a result of the query. Accordingly, the recursive searching of the entities according to the ontology can provide candidate cluster configurations that can be further sorted, ranked, ordered, etc., to enable selection of a preferred candidate cluster configuration.); and
the filter circuitry to determine whether allocation candidates of a third candidate set are compatible, the allocation candidate circuitry to, after the third candidate set is determined as compatible, cause assignment of the third candidate set ([0060] Where, in this example, the location-based pruning is performed before some other less impactful attribute of the entities of the search space, the location-based pruning can quickly reduce the remaining number of entities being considered and recursively searched through. A fork that reaches the end of the schedule without being pruned can be regarded as a result of the query. Accordingly, the recursive searching of the entities according to the ontology can provide candidate cluster configurations that can be further sorted, ranked, ordered, etc., to enable selection of a preferred candidate cluster configuration; [0022] In example embodiments, CPC 120 can communicate cluster provisioning information (CPI) 122. CPI 122 can be employed to provision a storage cluster. As an example, CPI 122 can be communicated to one or more data centers to enable controllers in the data centers to provide storage elements for provisioning of a corresponding cluster whose configuration is determined by CPC 120.; Fig. 6, Steps 610-630; [0056-58]).
Regarding claim 2, Koropoff teaches further comprising blueprint deployment circuitry to provide the first allocation resource and the second allocation resource to the allocation candidate circuitry ([0023]; [0024] CPC 120 can analyze computing resources, e.g., storage elements, controllers, networks components, etc., comprising at least a portion of SSC 110. The analysis can determine attributes of the computing resources embodying at least the analyzed portion of SSC 110. This can enable CPC 120 to organize representation of the computing resources of SSC 110, for example, in an object orient ontology that can support querying of the representations of the SSC 110 computing resources. This example object-oriented ontology can therefore support recursive combinatorial search with pruning, for example via a K-D tree employed in interpolation of values, etc., to enumerate possible cluster configurations based on CCI 132. The enumerations of possible cluster configurations, as has been noted elsewhere herein, can be sorted, ordered, ranked, etc., by one or more attribute.).
Regarding claim 3, Koropoff teaches further comprising a database ([0013] In general, a storage system can comprise many different computing resources, e.g., storage devices, controllers, networking equipment etc., that can allow provisioning of a storage cluster via the storage system.; [0072] In the subject specification, terms such as “store,” “storage,” “data store,” data storage,” “database,” and substantially any other information storage component relevant to operation and functionality of a component, refer to “memory components,” or entities embodied in a “memory” or components comprising the memory.).
Regarding claim 4, Koropoff teaches wherein the allocation candidate circuitry generates the first allocation candidate and the second allocation candidate based on data retrieved from the database ([0030] Accordingly, in embodiments, an object-oriented ontology can describe computing resources entities of SSC 110, which can for example include a range of supported node counts, types of nodes available, types of drives available, a range of supported drive counts, drive sizes, etc. CPC 120 can determine candidate cluster configurations based on CCI 132 received via CIC 130.; [0040] storage ontology component (SOC) 340 that can analyze computing resources of SSC 310 to determine ontological entities, wherein an entity can be a named tuple of attributes that can represent a computing resource of SSC 310, e.g., a node, a drive, a network component, a controller component, etc.).
Regarding claim 5, Koropoff teaches wherein the filter circuitry determines whether allocation candidates in a candidate set are compatible based on storage ([0016] iteratively prune an example tree structure to select storage devices that can meet client criteria, where the iterative pruning can be performed for nearly any mix of available computing resources. In this regard, for this example, mixing the example mid-level storage device with other storage devices in the cluster can be determined to be likely to alter performance of a corresponding candidate cluster, such that the altered performance can be used to iteratively prune that mix of storage devices from the tree. This example iterative pruning can therefore traverse candidate clusters to arrive at a group of acceptable candidate clusters in a want that no human can do in the context of a modern storage system), host ([0060] pruning based on host’s location), network, or flavor.
Regarding claim 6, Koropoff teaches wherein upon finding that the first allocation candidate and the second allocation candidate are incompatible, the skipping circuitry changes the first allocation resource from which to generate a permutation ([0018] Further, the normalization disclosed herein can support efficient determination of satisfactory candidates, e.g., pruning of a tree-structure to determine resulting satisfactory candidate cluster configuration prior to sorting/ordering/ranking satisfactory candidate cluster configuration, can leverage normalized attributes.; [0027] Pruning operations can evaluate relevant predicates. A relevant predicate can evaluate to ‘false,’ which can cause the associated fork/branch to be abandoned in future searches of a given query. Execution of the query can be accelerated, for example by placing a fork on a queue processed by a parallel group of worker processes. It is noted that if a fork reaches the end of the schedule without being pruned, that fork can then become a result of the query. The resulting entity can be indicated in row form and any requested fields can be yielded to CIC 130. Accordingly, the recursive searching of the ontology can provide candidate cluster configurations that can be further sorted, ranked, ordered, etc., to enable selection of a preferred candidate cluster configuration via CIC 130.; [0060]).
Regarding claim 7, Koropoff teaches wherein upon changing the first allocation resource from which to generate a permutation, the skipping circuitry changes the second allocation candidate to an initial value [0016].
Regarding claims 8-14, they are media/product type claims having similar limitations as claims 1-7 above. Therefore, they are rejected under the same rationale above.
Regarding claims 15-21, they are method type claims having similar limitations as claims 1-7 above. Therefore, they are rejected under the same rationale above.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JORGE A CHU JOY-DAVILA whose telephone number is (571)270-0692. The examiner can normally be reached Monday-Friday, 6:00am-5:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Aimee J 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.
/JORGE A CHU JOY-DAVILA/Primary Examiner, Art Unit 2195