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 .
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 7/20/26 has been entered.
Claims 1-20 are pending.
Response to Amendment/Arguments
Applicant has made claim amendments, changing the scope of the examined claims. The amended claims are addressed below.
Applicant’s arguments, see pages 8-9, filed 7/20/26, with respect to amended claims 1-8 have been fully considered and are persuasive. The rejection of claims 1-8 has been withdrawn. Claims 1-8, as currently amended, are now allowable.
Applicant's arguments filed 7/20/26, with respect to claims 9-15 have been fully considered but they are not persuasive.
As to claim claims 9-15, Applicant argues Gupta does not disclose "the data producing system being unaware of data storage operations performed by the data buffer with respect to the producer data". This argument is not persuasive. This limitation requires that the data producing system does not know data operations performed by the data buffer.
Paragraph 0030 of Gupta discloses (emphasis in bold):
[0030] In various embodiments, cache/storage client 100 may determine (e.g., generate or receive) a storage I/O write request to update data stored at distributed storage system 120. Such a determination may be made based on a hashing scheme or other heuristic which may be used to apportion the in-memory buffer cache for the distributed application 150 among buffer cache nodes 112, in some embodiments. A storage I/O write request 102 may be sent to one or more buffer cache nodes 112a, 112b, through 112n implemented as part of distributed buffer cache system 110. Distributed buffer cache nodes may maintain portions of the in-memory buffer cache provided to cache/storage client 100. The buffer cache nodes 112 that receive the storage I/O write request may update buffer cache entries to which the write request pertains such that the updated buffer cache entries are not available for reads until the write request is determined to be complete at distributed storage system 120 (e.g., mark the buffer cache entries as “dirty” or “write-in-progress”). Buffer cache nodes may also determine one or more storage nodes 122 (such as storage nodes 122a, 122b, through 122n) implemented by distributed storage system 120 that store data for the distributed application 102. The buffer cache nodes 112 may then send the storage I/O write request 122 to the determine storage nodes 122 to be completed at the distributed storage system. One or more storage nodes 112 may acknowledge completion of the write 114 back to the distributed buffer cache system. Based on acknowledgments from the distributed storage system 120, distributed buffer cache nodes 112 may acknowledge completion of the write 104 to cache/storage client 100.
Based on paragraph 0030 above, the cache client 100 (interpreted as the claimed data producing system) sends a write request to store data to storage system 120. Buffer cache mode 112 (interpreted as the claimed data buffer) stores/caches portions of this data. The buffer cache node 112 determines and forwards the write request to storage nodes 122. The storage node 122 sends acknowledgment of write completion back to the buffer cache system 110. The buffer cache nodes 112 may send acknowledgment of write completion to storage system 120 to client 100.
The write request is for a write to the storage system 120. The acknowledgment that the buffer cache node 112 sends back to the client 100 is not an acknowledgment that the buffer cache 112 completed the write. The acknowledgment is to acknowledge a completion of write to the storage system 120, not an acknowledgment of a write completion to the buffer cache 112. It acknowledges that the storage system 120 has completed the write request from the client. Buffer cache nodes 112 is merely forwarding the write completion acknowledgment back to the client to indicate that the distributed storage system 120 has completed the write operation. The buffer cache node 112 does not send acknowledgment of a write to buffer cache node 112a-n back to client 100 because the write request is not for the buffer cache node. The acknowledgment is of a write completion done at the storage system 120, not a write completion done at the buffer cache node 112. The buffer cache node 112 does not send any acknowledgment of its write operation back to the client 100. Therefore, the client only knows of the write completion of the data to the storage system 120. The client does not know of a write completion written to the buffer.
Furthermore, assuming arguendo that the buffer cache 112 sends back a status of operation performed back to the client, Gupta still teaches an embodiment in which the buffer cache does not send back an acknowledgment of a write completion. Gupta discloses that “The buffer cache nodes 112 may then send the storage I/O write request 122 to the determine storage nodes 122 to be completed at the distributed storage system.” The term “may” indicates a possibility of an action such that there are 2 possible embodiments: 1) buffer cache 112 does send a completion acknowledgment, and 2) buffer cache 112 does not send a completion acknowledgment. Since Gupta discloses 2 possible embodiments, one of which satisfies the claimed limitation that the client does not know the status of the write request, Gupta’s teaching reads on the claimed limitation.
As to claims 16-20, Applicant argues that the prior art does not teach the limitation of claim 16 that recites that the producer pipeline is unaware of data storage operations related to managing storage of buffer data on the data buffer. This argument is not persuasive for the same indicated in the response to claim 9. In Gupta, the buffer cache node 112 does not send acknowledgment of a write to buffer cache node 112a-n back to client 100 because the write request is not for the buffer cache node. The acknowledgment is of a write completion done at the storage system 120, not a write completion done at the buffer cache node 112. The buffer cache node 112 does not send any acknowledgment of its write operation back to the client 100. Therefore, the client only knows of the write completion of the data to the storage system 120. Thus, the client (interpreted as the claimed data producer) does not know of a write completion written to the buffer (interpreted as the data buffer).
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) 9-20 are is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Gupta et al (US20180150397, “Gupta”).
As to claim 9:
Gupta teaches a method (method of operation, 0033, 0067, 0136, 0160, 0164, 0166) comprising:
performing one or more data producing operations (clients perform data write operations to storage system 120; 0030-0031) related to providing producer data generated using a data producing system (one of clients 350a-350n performing writing/producing data to buffer cache; Fig 1, 3; 0030-0031) for ingestion into a data buffer of a data buffering system to (buffer cache may maintain portions of data stored for an application in system memory for which storage I/O (input/output) operations are also to be performed in persistent storage; Fig 1, 3; 027, 0030, 0043, 0044, 0047, 0048, 0052), the data producing system being unaware of data storage operations performed by the data buffer with respect to the producer data (the cache client 100 sends a write request to store data to storage system 120; buffer cache node 112 stores/caches portions of this data; storage node 122 sends acknowledgment of write completion back to the buffer cache system 110; buffer cache nodes 112 may send acknowledgment of write completion of request to write to storage system 120 to client 100; buffer cache node 112 does not send any acknowledgment of its own write operation back to the client 100; 0030); and performing one or more data consuming operations related to buffer data stored in the data buffer (read request 106 services/consumes data from buffer cache; 0031, 0040, 0048, 0049).
As to claim 10, 11:
Gupta teaches coordinating with a data producing/consuming system that generates/consumes the buffer data (communicate I/O operations between writer/reader of data to/from buffer cache; 0029-0031, 0036, 0043).
As to claim 12:
Gupta teaches the one or more data producing operations and one or more data consumer operations are isolated from one or more data storage operations related to managing storage of the buffer in the data buffer (data read and write operations from clients are independent from one another; 0030-0031; each client 350a-350n can have a different role in the system; one clients can be a data producing/writing client and another can be a data consuming/reading client, each can separately read or write to the storage system; 0030, 0031, 0043; requests may be asynchronous such that multiple requests may be in flight at a time; 0038; cache nodes management and arrangement are independent from read/write operations; 0032-0033).
As to claim 13, 18:
Gupta teaches the data storage operations include one or more of: ingesting, into the data buffer, producer data produced by the data producing system (write data to buffer cache; 030); providing the consumer pipeline access to at least a portion of the buffer data stored in the data buffer (read request; 0031); communicating at least a portion of the buffer data stored in the data buffer to the consumer pipeline (return data to client; 0031); retaining buffer data stored in the data buffer; or evicting buffer data from the data buffer (maintain copy of data in buffer cache; 0003, 0030).
As to claim 14, 19:
Gupta teaches a data processing layer to perform one or more processing operations with respect to data stored in the data buffer (storage layer in database engine to communicate with buffer cache; 0033, 0037, 0038).
As to claim 15:
Gupta teaches the one or more processing operations include one or more of: processing producer data provided by the data producing system prior to storage of the producer data in the data buffer based at least on one or more first data criteria (write request to update data based on hash determination; 0030); or processing data included in the data buffer that corresponds to the one or more data consuming operations based at least on one or more second data criteria (read access based on validity status; 0031).
As to claim 16:
Gupta teaches a system (distributed buffer cache system 110; Fig 1), comprising:
one or more processors (processor, microprocessor; 0053, 0160) to perform operations comprising: performing, by a producer pipeline, one or more data producing operations related to providing producer data (one of clients 350a-350n performing writing/producing data to buffer cache; Fig 1, 3; 0030-0031) generated using a data producing system for ingestion into a data buffer of a data buffering system (buffer cache may maintain portions of data stored for an application in system memory for which storage I/O (input/output) operations are also to be performed in persistent storage.; Fig 1, 3; 027, 0030, 0043, 0044, 0047, 0048, 0052);
performing, by a consumer pipeline, one or more data consuming operations related to consumption of buffer data stored in the data buffer by a data consuming system (one of client 350a-350n performing reading/consuming data from buffer cache; Fig. 1, 3; 0031, 0040, 0043, 0048, 0049); and performing one or more data storage operations related to managing storage of the buffer data on the data buffer (allocation of buffer cache; 0071; determine valid version of data; 0031; maintain buffer cache metadata; 0068; encrypt data; 0069), the producer pipeline and the consumer pipeline being unaware of the one or more data storage operations (read and write clients operations; 0030-0031; are not aware of buffer cache operations, such as valid data check, buffer allocation, metadata caching, data encryption; 0071, 0031, 0068, 0069; for client read/write operations, buffer cache node 112 does not send acknowledgment of a write to buffer cache node 112a-n back to client 100 because the write request is not for the buffer cache node; the acknowledgment is of a write completion done at the storage system 120, not a write completion done at the buffer cache node 112; buffer cache node 112 does not send any acknowledgment of its write operation back to the client 100; 0030).
As to claim 17:
Gupta teaches the producer pipeline performs the one or more data producing operations (write operations; 0030) and the consumer pipeline performs the one or more data consuming operations (read operations; 0013) isolated from one or more data storage operations performed by the data buffer with respect to managing storage of the buffer data in the data buffer (read and write requests to buffer cache are handled separately and independently; requests may be asynchronous such that multiple requests may be in flight at a time; 0038).
As to claim 20:
Gupta teaches the system includes at least one of (alternative form): a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing simulation operations; a system for performing digital twin operations; a system for performing light transport simulation; a system for performing collaborative content creation for 3D assets; a system for performing deep learning operations; a system for presenting at least one of augmented reality content, virtual reality content, or mixed reality content; a system for hosting one or more real-time streaming applications; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational AI operations; a system for performing one or more generative AI operations; a system implementing one or more large language models (LLMs) (system can implement different languages, such as C/C+, Java, XML; 0164, 0169-0171); a system implementing one or more vision language models (VLMs); a system implementing one or more multi-modal language models; a system for generating synthetic data; a system incorporating one or more virtual machines (VMs) (system implemented virtual computing services; 0047, 0052); a system implemented at least partially in a data center (system implemented distributed storage system; 0003); or a system implemented at least partially using cloud computing resources (system implementing cloud computing; 0034).
Allowable Subject Matter
Claims 1-8 are allowed for reasons indicated above.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US20120079175 discloses a solid-state storage controller with a write data pipeline and a read data pipeline in a solid-state storage device. A buffer controller is used to control transfer of data from the local bus to the buffers and through the data bus to the pipeline input buffer and output buffer.
US20230041906 discloses a system and method to monitor operations of a data pipeline. The data pipeline receives data inputs, processes the data inputs, and responsively generates and transfers data outputs. Data monitoring circuitry monitors the operations of the data pipeline circuitry, identifies an input change between an initial one of the data inputs and a subsequent one of the data inputs, and identifies an output change between an initial one of the data outputs and a subsequent one of the data outputs.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to THAN NGUYEN whose telephone number is (571)272-4198. The examiner can normally be reached M-F 7:00am -4: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, Tim Vo can be reached at (571)272-3642. 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.
/THAN NGUYEN/Primary Examiner, Art Unit 2138