DETAILED ACTION
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)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1-3, 12, 20-22 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by US Patent Application Publication No. 20200379774 (“Alperovich”).
Regarding claim 1, Alperovich teaches
A method for fault-tolerant processing of a plurality of data elements using a distributed computing cluster, the distributed computing cluster including a plurality of data processors associated with a corresponding plurality of data stores, the method including: (Fig. 1, [0026], [0036], [0037]: fault tolerant processing of data across multiple data stores by multiple partition computing devices in a distributed computing cluster)
storing the plurality of data elements in the distributed computing cluster, wherein the plurality of data elements is distributed across the plurality of data stores according to a plurality of partitions of data elements; ([0036], [0037]: store data in multiple partitions across multiple data stores)
processing data elements of a first set of partitions of the plurality of partitions stored at a first data store of the plurality of data stores using a first data processor of the plurality of data processors to generate first result data for the data elements of the first set of partitions; ([0026], [0037]: reorder partitions in data stores using a partition compute device to generate reordered data of the partitions)
sending the first result data from the distributed computing cluster to a consumer of the first result data outside the distributed computing cluster; and ([0038], [0090]: flushing reordered data of the partition compute device in a buffer to a consumer outside the cluster)
storing the first result data in a first escrow buffer located in the distributed computing cluster and associated with the first data processor until the consumer has persistently stored the first result data outside the distributed computing cluster. ([0038], [0090]: flushing reordered data of the partition compute device in a buffer to a consumer outside the cluster)
Regarding claim 2, Alperovich further teaches
removing the first result data from the first escrow buffer after the consumer has persistently stored all the result data associated with the first partition outside the distributed computing cluster. ([0038], [0090]: flushing reordered data of the partition compute device in a buffer to a consumer outside the cluster)
Regarding claim 3, Alperovich further teaches
wherein at least some data stores of the plurality of data stores include two or more partitions of data elements of the plurality of data elements. ([0035]: data stores can contain multiple partitions)
Regarding claim 12, Alperovich further teaches
Wherein processing the data elements of the first set of partitions includes applying a same function to each data element. ([0037]: reordering according to a specified dimension)
Regarding claim 20, Alperovich teaches
A system for fault-tolerant processing of a plurality of data elements using a distributed computing cluster, the distributed computing cluster including a plurality of data processors associated with a corresponding plurality of data stores, the system including: (Fig. 1, [0026], [0036], [0037]: fault tolerant processing of data across multiple data stores by multiple partition computing devices in a distributed computing cluster)
a plurality of data stores, for storing the plurality of data elements, wherein the plurality of data elements is distributed across the plurality of data stores according to a plurality of partitions of data elements; ([0036], [0037]: store data in multiple partitions across multiple data stores)
a plurality of data processors for processing data elements, the plurality of data processors including a first processor for processing a first set of partitions of the plurality of partitions stored at a first data store of the plurality of data stores to generate first result data for the data elements of the first set of partitions; ([0037]: reorder partitions in data stores using a partition compute device of a plurality of partition compute devices to generate reordered data of the partitions)
an output for sending the first result data from the distributed computing cluster to a consumer of the first result data outside the distributed computing cluster; and ([0038], [0090]: flushing reordered data of the partition compute device in a buffer to a consumer outside the cluster)
a first escrow buffer located in the distributed computing cluster and associated with the first data processor for storing the first result data until the consumer has persistently stored the first result data outside the distributed computing cluster. ([0038], [0090]: flushing reordered data of the partition compute device in a buffer to a consumer outside the cluster)
Claim(s) 21, the medium(s) that implement(s) the method(s) of claim(s) 1, respectively, is/are rejected on the same grounds as claim(s) 1, respectively.
Alperovich further teaches
A computer-readable medium storing software in a non-transitory form, the software including instructions for causing a computing system to process, in a fault tolerant manner, a plurality of data elements using a distributed computing cluster, the distributed computing cluster including a plurality of data processors associated with a corresponding plurality of data stores, the instructions causing the computing system to: (Fig. 1, [0026], [0036], [0037]: fault tolerant processing of data across multiple data stores by multiple partition computing devices in a distributed computing cluster. [0101], [0102]: computer-readable medium storing software instructions for causing the system to perform the methods)
Claim(s) 22, the system(s) that implement(s) the system(s) of claim(s) 20, respectively, is/are rejected on the same grounds as claim(s) 20, respectively.
Alperovich further teaches
means for sending ([0101], [0102]: computer-readable medium storing software instructions for causing the system to perform the methods)
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.
Claim(s) 4-6, 17 is/are rejected under 35 U.S.C. 103 as being unpatentable over US Patent Application Publication No. 20200379774 (“Alperovich”) in view of US Patent Application Publication No. 20190129758 (“Douros”).
Regarding claim 4, Alperovich does not further teach the remaining limitations.
Douros teaches
wherein the consumer includes a dataflow graph including a consumer component. (Fig. 2, [0050], [0051]: a dataflow graph acts as a sink for a response and contains a call cluster component that acts as a sink)
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to combine Douros’ graph-based consumer with Alperovich’s consumer.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination because to improve parallel computational efficiency for varying computation requirements (Alperovich, [0026]).
Regarding claim 5, Alperovich does not further teach the remaining limitations.
Douros teaches
wherein the consumer component of the dataflow graph includes a second escrow buffer for storing result data, the method further comprising storing the first result data in the second escrow buffer. (Fig. 2, [0062], [0063]: the call cluster component stores results in a buffer)
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to combine Douros’ consumer buffer with Alperovich’s consumer.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination to be able to recover from errors in a variety of scenarios (Douros, [0028]).
Regarding claim 6, Alperovich in view of Douros further teaches
wherein the first result data is released from the second escrow buffer based on an indication that the computing cluster has persistently stored a state associated with the first result data. (Douros, [0055], [0057], [0063]: the call cluster component releases the results from the buffer once the cluster indicates the results have been persisted in the cluster)
Regarding claim 17, Alperovich in view of Douros further teaches
receiving, at the first data processor, a message from the processing component requesting the first data processor to resend the first result data to the processing component; and (Douros, [0101], [0102]: a request for a resent response is sent from the call cluster component to the worker)
sending, by the first data processor, the first result data to the processing component. (Douros [0074], [0104]: the response is resent from the worker to the call cluster component)
Claim(s) 7 is/are rejected under 35 U.S.C. 103 as being unpatentable over US Patent Application Publication No. 20200379774 (“Alperovich”) in view of US Patent Application Publication No. 20190129758 (“Douros”) and US Patent Application Publication No. 20060253731 (“Petruzzo”).
Regarding claim 7, Alperovich in view of Douros further teaches
removing the first result data from the second escrow buffer after the consumer has released all result data for the first partition from the second escrow buffer…for the dataflow graph. (Alperovich, [0038]: partition result; Douros, [0063]: after releasing the response, the response is removed
Alperovich in view of Douros does not further teach removing the first result data from the second escrow buffer after the consumer has persistently stored state information
Petruzzo teaches
removing the first result data from the second escrow buffer after the consumer has persistently stored state information ([0050], [0051]: after persistently storing an IO request, clear the buffer)
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to combine Petruzzo’s persistence with Alperovich in view of Douros’s buffer.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination to protect from data loss due to failures (Petruzzo, [0027]).
Claim(s) 8-9 is/are rejected under 35 U.S.C. 103 as being unpatentable over US Patent Application Publication No. 20200379774 (“Alperovich”) in view of US Patent Application Publication No. 20150378845 (“Shang”).
Regarding claim 8, Alperovich does not further teach the remaining limitations.
Shang teaches
re-sending the first result data from the distributed computing cluster to the consumer based on a determination that the consumer encountered a fault before persistently storing the first result data outside the distributed computing cluster. ([0040], [0095], [0098]: based on detecting a fault of a consumer due to the lack of an indication that the consumer persistently stored data changes from a productor of a distributed cluster, the producer resends the data changes)
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to combine Shang’s consumer fault tolerance with Alperovich’s consumer.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination to ensure zero data loss when transferring data (Shang, [0015]).
Regarding claim 9, Alperovich in view of Shang further teaches
wherein re-sending the first result data includes reading the first result data from the first escrow buffer associated with the first data processor. (Shang, [0087], [0098]: resending data changes from a transaction log of the producer)
Claim(s) 13 is/are rejected under 35 U.S.C. 103 as being unpatentable over US Patent Application Publication No. 20200379774 (“Alperovich”) in view of US Patent Application Publication No. 20120303577 (“Calder”).
Regarding claim 13, Alperovich does not further teach the remaining limitations.
Calder teaches
wherein the processing further comprises: marking each processing result in the first result data with a partition number and a value of a counter associated with the cluster ([0057], [0062], [0064], [0067]: data updates are stamped with a partition number and an epoch number of the cluster)
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to combine Calder’s update stamps with Alperovich’s partition processing.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination to ensure sequential committing of data when transmission is nonsequential (Calder, [0062]).
Claim(s) 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over US Patent Application Publication No. 20200379774 (“Alperovich”) in view of US Patent Application Publication No. 20200322425 (“Sharma”).
Regarding claim 18, Alperovich does not further teach the remaining limitations.
Sharma teaches
determining, by the first data processor, that the second data processor is subject to failure of operation, in particular wherein the failure of operation is detected based on a message indicating the failure being sent from the second data engine or the second data engine failing to respond to a message regularly sent by the first data processor; and ([0026], [0094: a server detects a lack of heartbeat from another server)
responsive to determining the failure, replicating the second data processor. ([0065], [0094]: due to the missed heartbeat, move the partition from the server to another server)
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to combine Sharma’s server failure handling with Alperovich’s fault-tolerant processing.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination to provide decentralized fault tolerance of distributed servers (Sharma, [0018])
Allowable Subject Matter
Claim(s) 10-11, 14-16, 19 allowed.
The following is a statement of reasons for the indication of allowable subject matter:
None of the prior art of record, either alone or when combined, teaches or suggests all the limitations of claims 10-11, 14-16, 19.
Response to Arguments
Applicant’s arguments, see pg. 10, with respect to the objections and 112(b) rejections have been fully considered and are persuasive. The objections and 112(b) rejections have been withdrawn.
Applicant's arguments, see pg. 10-12, with respect to the prior art rejection(s) of claim(s) 1-9, 12-13, 17-18, 20-22, have been fully considered but they are not persuasive.
On pg. 11-12, Applicant argues:
“Nothing in Alperovich conditions the buffer's retention of data on whether "the consumer has persistently stored the first result data outside the distributed computing cluster" as is required by independent claim 1. Alperovich describes a fundamentally different mechanism from the "escrow buffer" of claim 1, which retains result data until the consumer confirms that it has "persistently stored" the data, so that the data can be re-sent in the event of a fault.
The Office Action cites Alperovich 38 and 90 as disclosing this limitation, but those paragraphs describe flushing data from the buffer to the consumer once the watermark advances. They do not describe retaining data in the buffer "until the consumer has persistently stored" the data outside the cluster.
Independent claim 1 is therefore allowable for at least the reason that Alperovich does not describe or suggest "storing the first result data in a first escrow buffer located in the distributed computing cluster and associated with the first data processor until the consumer has persistently stored the first result data outside the distributed computing cluster" as is recited by independent claim 1.
Claims 2-3 and 12 depend from claim 1 and are allowable for at least the same reasons that independent claim 1 is allowable. Independent claims 20-22 recite parallel limitations in system, computer-readable medium, and means-plus-function form, respectively, and are allowable for the same reasons that claim 1 is allowable.
As is noted above, claims 4-9, 13, and 17-18 are rejected under 35 U.S.C. § 103 as being unpatentable over Alperovich in view of Douros, Petruzzo, Shang, Calder, or Sharma. None of these secondary references remedies the deficiencies of Alperovich discussed above, and claims 4-9, 13, and 17-18 are therefore allowable for at least the same reasons that independent claim 1 is allowable.”
The Examiner respectfully disagrees. The claim does not require retaining result data until the consumer confirms that it has "persistently stored" the data. The claim only requires that once the consumer has persistently stored the first result data outside the distributed computing cluster, the first result data is not stored in the first escrow buffer. Alperovich discloses flushing reordered data from a buffer to persistent storage of a consumer outside the cluster, which means once the reordered data is persistently stored with the consumer outside the cluster, the reordered data is no longer stored in the buffer. Therefore, Alperovich teaches “storing the first result data in a first escrow buffer located in the distributed computing cluster and associated with the first data processor until the consumer has persistently stored the first result data outside the distributed computing cluster”.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ALBERT LI whose telephone number is (571)272-5721. The examiner can normally be reached M-F 8:00AM-4:00PM PT.
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, Bryce Bonzo can be reached at (571)272-3655. 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.
/A.L./Examiner, Art Unit 2113
/MARC DUNCAN/Primary Examiner, Art Unit 2113