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 .
Response to Application
This action is in response to Applicant's filing on 21st of March 2024. Claims 1-20 are presently pending and under consideration.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 21st of March 2024 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
Claims 1-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Mao et al (WO 2024/041140 A1, hereinafter Mao) (NOTE: machine translation provided).
Regarding claims 1, 15, and 18, taking claim 1 as exemplary, Mao discloses an apparatus comprising:
at least one processing device comprising a processor coupled to a memory (See Mao, Fig 1, disclosing CPU 104 and memory 106, page 6 second paragraph from bottom disclosing server node 100 includes DPU 102, CPU 104, and memory 106);
the at least one processing device being configured: to obtain in a host device deduplication information relating to a logical storage device of a storage system (See Mao, page 5 second full paragraph from bottom, disclosing “Data or metadata in distributed storage can be organized using a tree structure or key value (KV). Considering query performance and query cost, local key data (such as hotspot data) can usually be organized using key-value data structures to obtain lower query latency and higher concurrency” and page 6 first full paragraph from bottom “the KV server node 100 includes DPU102 and CPU104. In the example of FIG. 1 , the CPU 104 is placed in the host, and the DPU 102 is used as an external device of the host. The KV server node 100 also includes a memory 106, which is used to store KV data to speed up the access efficiency of KV data”), wherein the host device comprises acceleration resources and is configured to communicate with the storage system over at least one network (See Mao, Fig. 1, disclosing DPU 102, page 5 fourth paragraph from bottom disclosing “Distributed storage system refers to a storage system that uses distributed storage for data storage. Distributed storage systems usually have a scalable system structure, which can use multiple storage servers to share the storage load and use location servers to locate storage information” and page 6, third paragraph from bottom disclosing interconnection through a network); and
to determine based at least in part on the obtained deduplication information whether to compute a content-based signature for one or more data blocks of the logical storage device utilizing the acceleration resources of the host device (See Mao, page 7, first full paragraph from top, “the operation metadata in the KV operation request, including the operation type and key length (Klen). When the operation metadata meets the preset conditions, for example, the operation type is one or more of add, delete, query, modification or batch addition, batch deletion, batch query or batch modification, and the key length is less than the preset length, then OK The execution mode is an offloading mode, and the DPU 102 can perform a target KV operation on the memory 106 according to the KV operation request”);
wherein responsive to an affirmative result of the determining, the content-based signature is computed utilizing the acceleration resources of the host device and sent by the host device to the storage system in association with a given write operation that targets the one or more data blocks of the logical storage device (See Mao, page 7, first full paragraph from top, “the operation metadata in the KV operation request, including the operation type and key length (Klen). When the operation metadata meets the preset conditions, for example, the operation type is one or more of add, delete, query, modification or batch addition, batch deletion, batch query or batch modification, and the key length is less than the preset length, then OK The execution mode is an offloading mode, and the DPU 102 can perform a target KV operation on the memory 106 according to the KV operation request”); and
wherein responsive to a negative result of the determining, the content-based signature is not computed utilizing the acceleration resources of the host device and the given write operation is sent by the host device to the storage system without the content-based signature (See Mao, page 8 second full paragraph from top, “When the operation type does not match the operation type of the basic operation, and/or the key length is not less than the preset length, it means that the DPU 102 does not have the ability to process the KV operation in the KV operation request, and the execution mode can be determined to be a non-offloading mode. The non-offloading mode is used to instruct the CPU 104 to execute the operation requested by the KV operation”).
Regarding claim 2, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein the at least one processing device comprises at least the host device (See Mao, Fig. 1 disclosing server node and page 6 first full paragraph from bottom “the KV server node 100 includes DPU102 and CPU104. In the example of FIG. 1 , the CPU 104 is placed in the host, and the DPU 102 is used as an external device of the host. The KV server node 100 also includes a memory 106, which is used to store KV data to speed up the access efficiency of KV data”).
Regarding claim 3, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein the acceleration resources comprise at least one of one or more graphics processing units (GPUs) and one or more data processing units (DPUs) implemented within the host device (See Mao, page 6 first full paragraph from top, “DPU is specifically an on-chip system that focuses on associated processing and calculation of data. Among them, associated processing refers to associated signaling processing. Associated signaling is the various signaling required in call connection through the connection. The relay circuit occupied to transmit the signaling. In addition to its ability to accelerate network forwarding, virtualization, storage and other scenarios, DPU usually has certain programmability capabilities and can perform customized offload acceleration according to application scenarios. The DPU can deploy an operating system (also called a small system) independently and provide KV services”).
Regarding claim 4, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein the content-based signature is computed for the one or more data blocks of the logical storage device by applying a secure hashing algorithm to the one or more data blocks (See Mao, page 3, second paragraph from bottom “the KV operation request is a KV modification request, and the accelerator can determine the hash value and fingerprint based on the key content of the target KV block, for example, hashing the key content of the target KV block separately according to different hashing algorithms. Hash operation is performed to determine the hash value and fingerprint, and then the hash bucket corresponding to the target KV block is determined based on the hash value, and the hash slot in which the fingerprint in the hash bucket matches the fingerprint determined by the key content in the target KV block is updated”).
Regarding claim 5, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein the at least one processing device is further configured: to send a designated command from the host device to the storage system to obtain in response thereto from the storage system an indication as to whether or not the storage system supports leveraging of the acceleration resources of the host device to compute the content-based signature; and to initiate the determining based at least in part on the obtained indication (See Mao, page 8 last paragraph, “For example, the DPU 102 can compare the operation type in the KV operation request with the operation type of the basic operation (such as add, delete, query, modify or batch add, batch delete, batch query, batch modification), and compare the operation type in the KV operation request. The bond length is compared to a preset length”).
Regarding claim 6, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein the at least one processing device is further configured: to send a designated command from the host device to the storage system to obtain in response thereto from the storage system an indication as to a particular deduplication process utilized by the storage system for the logical storage device (See Mao, page 9 first paragraph, “When the operation type matches the operation type of the basic operation and the key length is less than the preset length, it indicates that the DPU 102 has the ability to process the KV operation in the KV operation request, and the execution mode can be determined to be the offloading mode. The offloading mode is used to instruct the DPU 102 to perform the operation requested by the KV operation”); and
to initiate the determining based at least in part on the obtained indication (See Mao, page 9 first paragraph, “When the operation type matches the operation type of the basic operation and the key length is less than the preset length, it indicates that the DPU 102 has the ability to process the KV operation in the KV operation request, and the execution mode can be determined to be the offloading mode. The offloading mode is used to instruct the DPU 102 to perform the operation requested by the KV operation”).
Regarding claim 7, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein the deduplication information comprises at least a deduplication rate for at least a portion of the logical storage device (See Mao, page 7, first full paragraph from top, “For example, the DPU 102 can obtain the operation metadata in the KV operation request, including the operation type and key length (Klen)…and the key length is less than the preset length, then OK The execution mode is an offloading mode”, or in other words, less than the preset length indicates a deduplication rate greater than zero and OK for deduplication purposes).
Regarding claim 8, Mao disclosed the apparatus of claim 7 as above. Mao further discloses wherein determining based at least in part on the obtained deduplication information whether to compute the content-based signature for the one or more data blocks of the logical storage device utilizing the acceleration resources of the host device comprises: comparing the deduplication rate to a threshold (See Mao, page 7, first full paragraph from top, “For example, the DPU 102 can obtain the operation metadata in the KV operation request, including the operation type and key length (Klen)…and the key length is less than the preset length, then OK The execution mode is an offloading mode”, or in other words, less than the preset length indicates a deduplication rate greater than zero and OK for deduplication purposes);
responsive to the deduplication rate being at or above the threshold, reaching the affirmative result of the determining (See Mao, page 7, first full paragraph from top, “For example, the DPU 102 can obtain the operation metadata in the KV operation request, including the operation type and key length (Klen)…and the key length is less than the preset length, then OK The execution mode is an offloading mode”, or in other words, less than the preset length indicates a deduplication rate greater than threshold of zero and OK for deduplication purposes); and
responsive to the deduplication rate being below the threshold, reaching the negative result of the determining (See Mao, page 7, first full paragraph from top, “For example, the DPU 102 can obtain the operation metadata in the KV operation request, including the operation type and key length (Klen)…and the key length is less than the preset length, then OK The execution mode is an offloading mode”, or in other words, a preset length which is too large indicates a deduplication rate of zero and NOT OK for deduplication purposes).
Regarding claim 9, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein obtaining in the host device the deduplication information relating to the logical storage device comprises sending a designated command from the host device to the storage system to obtain the deduplication information from the storage system in response to the designated command (See Mao, page 12, full paragraphs 4 and 5, “Step 1: The KV client node 200 sends a KV operation request to the KV server node 100” and “Specifically, the KV client node 200 may send a KV insert request or a KV update request to the KV server node 100 through an RDMA write operation. The KV insertion request or KV update request carries the necessary information to generate the KV Block and the corresponding write address (virtual address”).
Regarding claim 10, 17, and 20, taking claim 10 as exemplary, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein the content-based signature is sent from the host device to the storage system in a header of the given write operation (See Mao, page 11, first full paragraph from bottom of page, “The header of each Slot includes a Fingerprint field, which stores the result of key calculation through hash algorithm 2 (i.e., the fingerprint mentioned above)”).
Regarding claim 11, Mao disclosed the apparatus of claim 10 as above. Mao further discloses wherein a payload of the given write operation comprises the one or more data blocks from which the content-based signature in the header was computed utilizing the acceleration resources of the host device (See Mao, page 12, full paragraphs 5 and 6 from the top, “Specifically, the KV client node 200 may send a KV insert request or a KV update request to the KV server node 100 through an RDMA write operation. The KV insertion request or KV update request carries the necessary information to generate the KV Block and the corresponding write address (virtual address)” and “Among them, the necessary information to generate a KV Block may include the key content and value content of the target KV block to be added or modified, and the write address may be the block address of the target KV block. Further, the KV insertion request or KV update request may also include a verification key, that is, a verification key”).
Regarding claim 12, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein a header of the given write operation includes an indication as to whether or not acceleration resources of the host device have been utilized to compute the content-based signature (See Mao, page 13, third full paragraph, “when the KV client node 100 sends a KV operation request through RDMA Write, the DPU 102 can return a response message ACK to the KV client node 100 after receiving the KV operation request. Similarly, when the KV server node 100 (for example, DPU 102) notifies the completion of the operation through RDMA Send, the KV client node 200 can also return a response message ACK to the KV server node 100”).
Regarding claim 13, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein a header of the given write operation includes a plurality of content-based signatures computed utilizing the acceleration resources of the host device for respective different sets of one or more data blocks of the logical storage device that are targeted by the given write operation (See Mao, page 7, first full paragraph from top, “For example, the DPU 102 can obtain the operation metadata in the KV operation request, including the operation type…the operation type is one or more of…batch addition, batch deletion, batch query, or batch modification”).
Regarding claim 14, Mao disclosed the apparatus of claim 1 as above. Mao further discloses wherein the storage system is configured: to determine whether or not the content-based signature received from the host device in association with the given write operation is recognized by the storage system as corresponding to an existing content-based signature already present in the storage system (See Mao, page 11, first full paragraph from bottom, disclosing “During specific implementation, DPU102 or CPU104 can distinguish and search multiple keys stored in the same hash bucket through the Fingerprint field. Furthermore, the Slot also stores the virtual address and Key length (Klen) information of the KV Block, as well as the verification key required for address translation. The corresponding KV Block can be read and written through the virtual address” and also page 13, paragraph beginning with “Step 3” disclosing “When the hash bucket returns, DPU102 can calculate the fingerprint based on the key content and hash algorithm 2, and search the Slot with the same fingerprint as the calculated fingerprint in the hash bucket to obtain the virtual address and calibration of the KV Block in the Slot. Check Key”); and
responsive to the content-based signature not being recognized by the storage system, to obtain the one or more data blocks from the given write operation and to store the one or more data blocks in association with the content-based signature (See Mao, page 12, second full paragraph from bottom, disclosing “Specifically, the DPU 102 directly writes the value content (Value part) of the target KV block into the memory 106 through DMA according to the block address of the target KV block in the KV insertion request or KV update request, and then writes the value content (Value part) of the target KV block into the memory 106 according to the key content (key part)”).
Regarding claim 16 and 19, Mao disclosed the computer program product of claim 15 as above. Mao further discloses wherein the deduplication information comprises at least a deduplication rate for at least a portion of the logical storage device (See Mao, page 7, first full paragraph from top, “For example, the DPU 102 can obtain the operation metadata in the KV operation request, including the operation type and key length (Klen)…and the key length is less than the preset length, then OK The execution mode is an offloading mode”, or in other words, less than the preset length indicates a deduplication rate greater than zero and OK for deduplication purposes), and further wherein determining based at least in part on the obtained deduplication information whether to compute the content-based signature for the one or more data blocks of the logical storage device utilizing the acceleration resources of the host device comprises: comparing the deduplication rate to a threshold (See Mao, page 7, first full paragraph from top, “For example, the DPU 102 can obtain the operation metadata in the KV operation request, including the operation type and key length (Klen)…and the key length is less than the preset length, then OK The execution mode is an offloading mode”, or in other words, less than the preset length indicates a deduplication rate greater than zero and OK for deduplication purposes);
responsive to the deduplication rate being at or above the threshold, reaching the affirmative result of the determining (See Mao, page 7, first full paragraph from top, “For example, the DPU 102 can obtain the operation metadata in the KV operation request, including the operation type and key length (Klen)…and the key length is less than the preset length, then OK The execution mode is an offloading mode”, or in other words, less than the preset length indicates a deduplication rate greater than threshold of zero and OK for deduplication purposes); and
responsive to the deduplication rate being below the threshold, reaching the negative result of the determining (See Mao, page 7, first full paragraph from top, “For example, the DPU 102 can obtain the operation metadata in the KV operation request, including the operation type and key length (Klen)…and the key length is less than the preset length, then OK The execution mode is an offloading mode”, or in other words, a preset length which is too large indicates a deduplication rate of zero and NOT OK for deduplication purposes).
EXAMINER’S NOTE
Examiner has cited particular columns and line numbers in the references applied to the claims above for the convenience of the Applicants. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the Applicants in preparing responses, to fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. (1) Al-Kiswany et al., GPUs as Storage System Accelerators (IEEE Transactions on Parallel and Distributed Systems (Volume: 24, Issue: 8, 2013, Page(s): 1556-1566) disclosing harnessing GPU computational power to improve distributed storage systems by offloading intensive primitives based on hashing
(2) Hu et al (US 2023/0126783 A1) disclosing using an accelerator to perform hash value computation based on key length.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to EDMUND H KWONG whose telephone number is (571)272-8691. The examiner can normally be reached Monday-Friday 10-6 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, Arpan P. Savla can be reached at 571-272-1077. 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.
/E.H.K/Examiner, Art Unit 2137
/Arpan P. Savla/Supervisory Patent Examiner, Art Unit 2137