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) 16, 19, and 20 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Borgmeier Implementing accurate counters in DynamoDB using Python, 05 April 2022.
See chart below.
Claim 16
Borgmeier Implementing accurate counters in DynamoDB using Python, 05 April 2022
16. A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising: one or more instructions that, when executed by one or more processors of a device, cause the device to:
Page 1 first two paragraphs.
obtain, via a request stream, one or more requests associated with a data element included in a distributed database,
Page 1 first two paragraphs (DynamoDB teaches a distributed DB; request includes any requests related to stats);
wherein processing units of the device are associated with respective requests of the one or more requests and are configured to perform the one or more requests;
Page 1 first two paragraphs (DynamoDB streams teaches processing units of the device associated with the requests);
update, for each request of the one or more requests, a counter to obtain a counter value for that request based on performing an atomic operation associated with the counter for that request
Page 4 code section and paragraph below (counter is updated and is updated based on each request);
provide, via a data stream, counter values to a first-in-first-out (FIFO) queue to be written sequentially in accordance with an order of counter values;
on pp. 4-5
Above, you can see an example architecture for our view-statistics system. We have an API Gateway that accepts the view events the client sends to it. The API gateway delivers the event to an SQS queue and returns status code HTTP 201 (Accepted), so the client can continue doing its thing and doesn’t have to wait for the backend. A Lambda function in the backend processes the events from the Queue and maintains the counters in DynamoDB. The integration between SQS and Lambda is the problem here. We only get the guarantee that events are processed at least once. This means a view event can get processed two or more times. In this specific architecture, we could also opt for a first-in, first-out (FIFO) queue, but that limits the throughput of our system and may end up becoming a bottleneck.
provide, from the FIFO queue and in the order, the counter values to respective processing units of the processing units; and
p. 4-5
Above, you can see an example architecture for our view-statistics system. We have an API Gateway that accepts the view events the client sends to it. The API gateway delivers the event to an SQS queue and returns status code HTTP 201 (Accepted), so the client can continue doing its thing and doesn’t have to wait for the backend. A Lambda function in the backend processes the events from the Queue and maintains the counters in DynamoDB. The integration between SQS and Lambda is the problem here. We only get the guarantee that events are processed at least once. This means a view event can get processed two or more times. In this specific architecture, we could also opt for a first-in, first-out (FIFO) queue1, but that limits the throughput of our system and may end up becoming a bottleneck.
perform, via the processing units, one or more operations associated with the respective requests based on providing the counter values.
p. 4-5
Above, you can see an example architecture for our view-statistics system. We have an API Gateway that accepts the view events the client sends to it. The API gateway delivers the event to an SQS queue and returns status code HTTP 201 (Accepted), so the client can continue doing its thing and doesn’t have to wait for the backend. A Lambda function in the backend processes the events from the Queue and maintains the counters in DynamoDB. The integration between SQS and Lambda is the problem here. We only get the guarantee that events are processed at least once. This means a view event can get processed two or more times. In this specific architecture, we could also opt for a first-in, first-out (FIFO) queue but that limits the throughput of our system and may end up becoming a bottleneck.
With respect to claim 19, Borgmeier teaches “19. The non-transitory computer-readable medium of claim 16 wherein the counter values are unique identifiers for the respective requests indicating a sequentiality of the one or more requests based on the order of the counter values” on p. 5 last two paragraphs (Examiner finds ClientID and/or hash is a unique value that indicates a sequentiality of the one or more requests based on the order of the counter values).
With respect to claim 20, Borgmeier teaches “The non-transitory computer-readable medium of claim 16, wherein the one or more instructions, that cause the device to update the counter, cause the device to: perform, for each request of the one or more requests, an atomic increment using an atomic number as a current counter value of the counter and an expression function to obtain a counter value for that request” on p. 4, python code at top of page and paragraph below; p. 7 Python code; p. 8 first paragraph (Python code on pages 4 and 7 each teach conventional DynamoDB atomic counter (number); Update expression in code teaches expression function).
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) 17 is/are rejected under 35 U.S.C. 103 as being unpatentable over Borgmeier as applied to claim 16 above and further in view of Joshi, Integrate your Amazon DyanmoDB table with machine learning for sentiment analysis, 24 MAR 2021.
With respect to claim 17, Borgmeier teaches requests. See above. It appears Borgmeier fails to teach “17. The non-transitory computer-readable medium of claim , wherein the one or more requests are associated with respective feedback instances that are associated with sequential learning for a machine learning model.”
However, Joshi teaches “wherein the one or more requests are associated with respective feedback instances that are associated with sequential learning for a machine learning model” on p. 1
When you enable DynamoDB Streams on a DynamoDB table, it captures a time-ordered sequence of item-level modifications in the table and stores this information in a change log for up to 24 hours. Downstream AWS services can access these change logs and view the data items as they appeared before and after they were modified, in near-real time, using a Lambda function. This allows the DynamoDB table to integrate functionally for additional use cases like machine learning (ML). . .
And p. 4 (“The amazon_reviews_summary Lambda function calls the Amazon Comprehend detect_sentiment API with the review text, and Amazon Comprehend returns one of the four sentiments: positive, negative, neutral, or mixed”); (Examiner finds feedback instances include sentiment and review text)
Joshi and Borgmeier are analogous art because they are from the same field of endeavor as the claimed invention.
It would have been obvious to one skilled in the art before the effective filing date of the invention to modify the requests in Borgmeier to include “wherein the one or more requests are associated with respective feedback instances that are associated with sequential learning for a machine learning model” as taught by Joshi.
The motivation would have been to keep data in an optimized format so that it can be quickly queried and analyzed. See Joshi p. 2, 1st paragraph under “Using ML and analytics with the DynamoDB solution.”
Allowable Subject Matter
Claims 1-15 are allowed.
Claim 18 is 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.
Reasons for Indicating Allowable Subject Matter
The following chart illustrates the elements taught in claims 1 and 9.
Claim 1
Claim 9
Prior Art Citations
1. A system for maintaining sequentiality for a counter for sequential learning, the system compri
sing:
one or more memories; and
one or more processors, communicatively coupled to the one or more memories, configured to:
9. A method for maintaining sequentiality for feedback for sequential learning, comprising:
Joshi, Integrate your Amazon DyanmoDB table with machine learning for sentiment analysis, 24 MAR 2021
p. 1 first paragraph
receive, via a feedback stream, one or more requests to perform respective operations for feedback data associated with a machine learning model,
receiving, by a device and via a feedback stream, one or more feedback instances associated with a machine learning model;
Joshi
On p. 2 second diagram from top of page (Examiner finds DynamoDB streams teaches feedback stream and request stream; feedback stream includes request sent to Amazon Lambda associated ML model (sentiment analysis, for example); p. 4:
Capture review text from the stream record and call Amazon Comprehend for sentimental
analysis. Amazon Comprehend limits review strings to fewer than 5,000 characters, so the
code truncates review text to 4,999 characters before calling the Amazon Comprehend
sentiment API.
The following Lambda code processes the incoming DynamoDB Streams for sentiment analysis
and save it to S3 for analytics.
wherein processing units are associated with respective requests of the one or more requests and are configured to perform the respective operations;
Joshi
p. 4:
Capture review text from the stream record and call Amazon Comprehend for sentimental
analysis. Amazon Comprehend limits review strings to fewer than 5,000 characters, so the
code truncates review text to 4,999 characters before calling the Amazon Comprehend
sentiment API.
(Examiner finds sentiment analysis inherently is performed by computer processors associated with Amazon Comprehend, for example)
update, via a counter database, the counter to obtain counter values for the respective requests of the one or more requests based on performing atomic operations for the respective requests;
updating, by the device, a counter to obtain counter values for respective feedback instances of the one or more feedback instances based on performing atomic operations for the respective feedback instances;
Amazon DynamoDB Developers Guide, Working with Items and Attributes, 2022
p. 11
You can use the Update Item operation to implement an atomic counter—a numeric attribute that is incremented, unconditionally, without interfering with other write requests.
pp. 2-3 Approach 1, Atomic counters
provide, from the counter database and via a data stream, the counter values to a first-in-first-out (FIFO) queue to be written in an order of completion of the atomic operations;
providing, by the device and via a data stream, the counter values to a first-in-first-out (FIFO) queue to be written in an order of completion of the atomic operations;
Borgmeier
pp. 4-5
Above, you can see an example architecture for our view-statistics system. We have an API Gateway that accepts the view events the client sends to it. The API gateway delivers the event to an SQS queue and returns status code HTTP 201 (Accepted), so the client can continue doing its thing and doesn’t have to wait for the backend. A Lambda function in the backend processes the events from the Queue and maintains the counters in DynamoDB. The integration between SQS and Lambda is the problem here. We only get the guarantee that events are processed at least once. This means a view event can get processed two or more times. In this specific architecture, we could also opt for a first-in, first-out (FIFO) queue, but that limits the throughput of our system and may end up becoming a bottleneck.
store the feedback data in connection with respective counter values based on providing the counter values from the FIFO queue to the processing units in the order of completion; and
storing, by the device, the one or more feedback instances in connection with respective counter values based on obtaining the counter values from the FIFO queue in the order of completion; and
p. 4-5
Above, you can see an example architecture for our view-statistics system. We have an API Gateway that accepts the view events the client sends to it. The API gateway delivers the event to an SQS queue and returns status code HTTP 201 (Accepted), so the client can continue doing its thing and doesn’t have to wait for the backend. A Lambda function in the backend processes the events from the Queue and maintains the counters in DynamoDB. The integration between SQS and Lambda is the problem here. We only get the guarantee that events are processed at least once. This means a view event can get processed two or more times. In this specific architecture, we could also opt for a first-in, first-out (FIFO) queue2, but that limits the throughput of our system and may end up becoming a bottleneck.
The art cited above fails to teach or suggest the following as required by claim 1 and claim 9.
perform, using the feedback data, one or more training operations for the machine learning model based on a counter value, of the counter values, satisfying a threshold.
performing, by the device and using the one or more feedback instances, one or more training operations for the machine learning model.
Scott, Distributed Locking in DynamoDB, 30 June 2020 teaches a FIFO queue on p. 3
Imagine a set of processes as a FIFO (first-in, first-out) queue. The first such process will have no competing process; naturally it is the first and therefore is able to perform its work. Subsequent processes must wait their respective turns before accessing the shared data. If each process were to "take a number" so to speak, then after the first process completes its work, the process next in line will be allowed to proceed.
But fails to teach or suggest at least the following:
perform, using the feedback data, one or more training operations for the machine learning model based on a counter value, of the counter values, satisfying a threshold.
performing, by the device and using the one or more feedback instances, one or more training operations for the machine learning model.
Liu, Runtime Concurrency Control and Operation Scheduling for High Performance Neural Network Training teaches a FIFO queue of operations on p. 7 left column section D first paragraph.
Pan, Optimistic Concurrency Control for Distributed Unsupervised suggest concurrency control in a ML environment (abstraction, page 3 section 1 last paragraph).
But Liu and Pan fail to teach or suggest at least the following:
perform, using the feedback data, one or more training operations for the machine learning model based on a counter value, of the counter values, satisfying a threshold.
performing, by the device and using the one or more feedback instances, one or more training operations for the machine learning model.
With respect to claim 18, Borgmeier and prior art of record fails to teach or suggest
18. The non-transitory computer-readable medium of claim 17, wherein the one or more operations are associated with storing respective feedback instances, and wherein the one or more instructions further cause the device to:
perform, using the respective feedback instances, one or more sequential learning operations.
Any comments considered necessary by applicant must be submitted no later than the payment of the issue fee and, to avoid processing delays, should preferably accompany the issue fee. Such submissions should be clearly labeled “Comments on Statement of Reasons for Allowance.”
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ALBERT M PHILLIPS, III whose telephone number is (571)270-3256. The examiner can normally be reached 10a-6:30pm EST M-F.
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, Ann J Lo can be reached at (571) 272-9767. 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.
/ALBERT M PHILLIPS, III/Primary Examiner, Art Unit 2159
1 "Arguments that the alleged anticipatory prior art is ‘nonanalogous art’ or ‘teaches away from the invention’ or is not recognized as solving the problem solved by the claimed invention, [are] not ‘germane’ to a rejection under section 102." MPEP 2131.05
2 “Teaching away” does not apply to a 102 anticipation rejection. See MPEP