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 .
DETAILED ACTION
1. This action is in response to the application filed 7/31/2023.
2. Claims 1-20 have been examined and are pending in the application.
Claim Rejections - 35 USC § 112
The following is a quotation of the second paragraph of 35 U.S.C. 112:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
3. Claim 17 is rejected under 35 U.S.C. 112, second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which applicant regards as the invention.
The claim language in the following claims is not clearly understood: (i) As to claim 17, it is unclear whether “a cluster of machines” (lines 2-3) refers to “a cluster of machines” (line 3 of claim 1). Correction is required.
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.
4. Claims 1-2 and 15-20 are rejected under 35 U.S.C. 103 as being unpatentable over Merriman U.S Patent No. 9,805,108 in view of Tanase U.S Patent No. 12,299,496.
As to claim 1, Merriman teaches a computer-implemented method comprising:
responsive to a rebalancing trigger condition, performing an incremental rebalancing operation to rebalance data (…a monitor component can be configured to execute monitor processes, can be configured to determine chunk distribution is imbalanced, and/or can further be configured to migrate chunks between shard servers. When no imbalance is detected 1704(NO), step 1702 is repeated. The monitoring activity can be repeated periodically, on a schedule, and/or can be dynamically initiated. Further, a shard cluster can be configured with manual processes to initiate a monitoring and/or redistribution process. In one example, an end-user can initiated monitoring and/or rebalancing from a management interface…, lines 8-18 column 57) across a cluster of machines (…The managed database system 1300 has been specially configured as a shard cluster. The shard cluster is the grouping of shards that collectively represent the data within the database A shard cluster typically comprises multiple shard servers (e.g., 1302-1308) hosting multiple partitions (e.g., 1352-1374) or shards of data…, line 67 column 47 to line 6 column 48), wherein:
the data comprises a set of chunks distributed across the cluster of machines (…the data stored with the distributed database is managed across a plurality of database servers, each hosting a portion of the underlying data. The portions of data can be organized as chunks, which are defined by ranges of key values. The defined ranges for each portion or chuck can be stored on configuration servers. Data requests received from clients can be routed to appropriate chunk(s) based on the metadata from the configuration servers…, line 62 column 21 to line 3 column 22), and
performing the incremental rebalancing operation comprises: selecting a chunk in a source machine in the cluster having a surplus of chunks; selecting a target machine in the cluster having a deficit of chunks; transferring the selected chunk from the source machine to the target machine (…for rebalancing chunks across a shard cluster. At 1802, a most loaded shard is detected. At 1804, a chunk from the most loaded shard server is migrated to another shard server. According to some embodiments, a chunk count associated with the shard servers in the shard cluster can be used to identify a most and least loaded shard. At 1804, the chunk from the most loaded shard server can be copied to the least loaded shard. Typically, a rebalancing operations proceeds on a chunk by chunk basis, copying one chunk at a time and testing the chunk count after copying to determine if the shard cluster is sufficiently rebalanced at 1806. If at 1806 (NO) the shard cluster is not sufficiently rebalanced an additional chunk is copied from a most loaded shard server (e.g., identified at 1802) to a least loaded shard server (e.g., identified at 1804). The cluster is again tested against a balance metric to determine if additional repetitions of 1802-1806 are required…, lines 12-29 column 58); and
updating metadata in each machine in the cluster to reflect a location of the data elements in the selected chunk in the target machine (…identifying a least loaded server, identifying an most loaded server, maintain metadata for a partitioned database, maintaining metadata for a shard cluster, updating metadata, replicating metadata to routing processes, routing database operations, and reconciling database operations on migrated and/or split partitions…, lines 27-32 column 65), wherein the method is performed by one or more computing devices (Fig. 11 and associated specifications).
Merriman does not teach a graph processing engine running graph data for one or more graphs, where the graph data comprises set of chunks, each chunk comprises one or more graph data elements.
Tanase teaches a cluster of machines having a graph processing engine running graph data for one or more graphs (…A graph database stores data in a graph data structure, referred to as a graph dataset, and executes queries against that graph dataset…, lines 5-7 column 1;…the graph database service may provision one or more virtual computing systems to process these requests and allocate the different graph datasets to different respective virtual computing systems. Each individual virtual computing system (or alternatively, a dedicated hardware computing machine), may manage its own resource usage for loading data…, lines 30-36 column 2) wherein the graph data comprises a set of chunks for one or more graphs (…upon receiving a request to load data (e.g., separated into chunks of data) into a graph database instance…, lines 43-45 column 2), each chunk in the set of chunks comprises one or more graph data elements in the one or more graphs (…A graph database stores data in a graph data structure, referred to as a graph dataset, and executes queries against that graph dataset…, lines 5-7 column 1).
It would have been obvious before the effective filing date of the claimed invention to a person of ordinary skill in the art to have modified Merriman reference to include the teachings of Tanase reference because by arranging data in a graph processing engine, the system allows more efficient searching or queries against the data, as disclosed by Tanase (lines 5-14 column 1).
As to claim 2, Merriman as modified further teaches the rebalancing trigger condition comprises a command being received prior to execution of the command (…a monitor component can be configured to execute monitor processes, can be configured to determine chunk distribution is imbalanced, and/or can further be configured to migrate chunks between shard servers. When no imbalance is detected 1704(NO), step 1702 is repeated. The monitoring activity can be repeated periodically, on a schedule, and/or can be dynamically initiated. Further, a shard cluster can be configured with manual processes to initiate a monitoring and/or redistribution process. In one example, an end-user can initiated monitoring and/or rebalancing from a management interface…, lines 8-18 column 57).
As to claim 15, Merriman as modified further teaches transferring the selected chunk comprises transferring the selected chunk using storing the selected chunk in a shared filesystem (…so that the difference in the number of chunks between any two shards is minimized, reducing the difference between shared servers…, lines 20-23 column 60).
As to claim 16, Merriman as modified further teaches receiving a command to perform a processing operation, wherein the command includes a rebalancing call to perform the incremental rebalancing operation (…a monitor component can be configured to execute monitor processes, can be configured to determine chunk distribution is imbalanced, and/or can further be configured to migrate chunks between shard servers. When no imbalance is detected 1704(NO), step 1702 is repeated. The monitoring activity can be repeated periodically, on a schedule, and/or can be dynamically initiated. Further, a shard cluster can be configured with manual processes to initiate a monitoring and/or redistribution process. In one example, an end-user can initiated monitoring and/or rebalancing from a management interface…, lines 8-18 column 57).
As to claim 17, Merriman as modified further teaches the selected chunk is selected based on a determination that transferring the selected chunk decreases imbalance of the data across a cluster of machines (…a monitor component can be configured to execute monitor processes, can be configured to determine chunk distribution is imbalanced, and/or can further be configured to migrate chunks between shard servers. When no imbalance is detected 1704(NO), step 1702 is repeated. The monitoring activity can be repeated periodically, on a schedule, and/or can be dynamically initiated. Further, a shard cluster can be configured with manual processes to initiate a monitoring and/or redistribution process. In one example, an end-user can initiated monitoring and/or rebalancing from a management interface…, lines 8-18 column 57).
As to claim 18, Merriman as modified further teaches interrupting the incremental rebalancing operation in response to receiving a command that accesses the data (…the rebalancing process can be configured to halt during periods of significant activity within the database, to insure no significant latency to client requests is introduced…, lines 24-27 column 60).
As to claims 19-20, note the discussions of claims 1-2 above, respectively.
4. Claim 14 is rejected under 35 U.S.C. 103 as being unpatentable over Merriman in view of Tanase, and further in view of Yadav U.S Patent No. 12,216,549.
As to claim 14, Merriman as modified by Tanase does not teach performing the incremental rebalancing operation comprises transferring a second chunk from a second source machine to a second target machine in parallel with transferring the selected chunk from the source machine to the target machine.
Yadav teaches a system of transferring chunks between machines wherein the system transfers a second chunk from a second source machine to a second target machine in parallel with transferring a first chunk from a source machine to a target machine (…The proxy server 120 may be provided as part of a cloud-based backup service platform, and accordingly, the proxy server 120 may be scalable such that it may perform data processing operations in parallel for multiple client devices 110 and for multiple object storages 150…, lines 49-54 column 4;…the system may handle requests from a different client devices to different object storages using the same proxy server. More specifically, in some embodiments, the system may receive, at the proxy server and from the client device accessing the first API, a second file as part of a request to back up the second file to a second object storage (e.g. object storage B 150B). The system may identify a second set of functions, amongst the library of functions stored by the proxy server, specific to the second object storage and configured to access a third API (e.g. storage API B 155B) provided by the second object storage. The system may also partition the second file into one or more chunks of the predefined size, and deduplicate the chunks of the second file by determining which of the chunks are already stored on the second object storage. Accordingly, the system may transfer, using the second set of functions, the deduplicated chunks of the second file to the second object storage…, line 53 column 9 to line 3 column 10).
It would have been obvious before the effective filing date of the claimed invention to a person of ordinary skill in the art to have modified Merriman reference as modified by Tanase to include the teachings of Yadav reference because by transferring chunks in parallel between machines, the system reduces the data transmission time, as disclosed by Yadav (lines 38-60 column 7).
Allowable Subject Matter
5. Claims 3-13 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
U.S Patent No. 12,182,633 discloses scheduling a computational operation based on graph data.
U.S Patent No. 9,229,901 discloses a file descriptor mapping data stripes and data stripe replications of a file on the memory hosts for remote direct memory access of the file on the memory hosts.
U.S Patent No. 11,093,252 discloses automate data replication in a cluster by defining and managing logical availability zones.
U.S Patent No. 10,409,682 discloses dividing a body of user data into a plurality of data blocks, and writing the plurality of data blocks into chunk zones in parallel streams, the chunk zones located in a first ordered pool of storage devices.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Andy Ho whose telephone number is (571) 272-3762. A voice mail service is also available for this number. The examiner can normally be reached on Monday – Friday, 8:30 am – 5:00 pm.
If attempts to reach the examiner by telephone are unsuccessful, the examiner's supervisor, Kevin Young can be reached on (571) 270-3180.
Any inquiry of a general nature or relating to the status of this application or proceeding should be directed to the receptionist whose telephone number is 571-272-2100.
Any response to this action should be mailed to:
Commissioner for Patents
P.O Box 1450
Alexandria, VA 22313-1450
Or fax to:
AFTER-FINAL faxes must be signed and sent to (571) 273 - 8300.
OFFICAL faxes must be signed and sent to (571) 273 - 8300.
NON OFFICAL faxes should not be signed, please send to (571) 273 – 3762
/Andy Ho/
Primary Examiner
Art Unit 2194