DETAILED ACTION
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 AMENDMENT
Claim rejections based on prior arts
Applicant's arguments filed on 07/07/2025 with respect to claims 1, 2, 4-15 and 17-20 have been fully considered but are moot in view on new interpretation of the cited reference based on most recent amendment.
Note, even though prosecution is now closed, to help expedite any further potential prosecution of this application, Applicant is encouraged to contact the Examiner to discuss the invention, and a potential allowance.
OBJECTIONS TO THE CLAIMS
Claims 8-13 are objected to as being indefinite for failing to particularly point out and distinctly claim the subject matter which applicant regards as the invention.
As per claim 8, line 7 discloses the phrase ‘SSQs (shared send queues)’. It should be written as ‘shared send queues (SSQs)’. Correction is needed.
REJECTIONS BASED ON PRIOR ART
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 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)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
1. Claims 1, 2, 4-15 and 17-20 are rejected under 35 U.S.C. 102(a)(2) as being anticipated by He et al. (US pub. # 2023/0342087), hereinafter, “He”.
At the outset, Applicant is reminded that claims subject to examination will be given their broadest reasonable interpretation in light of the supporting disclosure. In re Morris, 127 F.3d 1048, 1054-55, 44 USPQ2d 1023,1027-28 (Fed. Cir. 1997). With this in mind, the discussion will focus on how the terms and relationships between the terms in the claims are met by the references.
2. As per claims 1 and 14, He discloses a system comprising: one or more processors (CPU 341 of fig. 2, as disclose in paragraphs 0054, 0058 and 0070), coupled to memory (memory 342), the processor configured to: set in the memory a pool of shared send queues (SSQs) (plurality of SQs in memory 342; see paragraph 0054, which discloses “in addition, the SSD 244 includes a plurality of SQs and CQs, and a maximum quantity of SQs and a maximum quantity of CQs may be supported to 64,000. However, in consideration of memory and performance, a maximum quantity of 256 is typically selected currently. The application server 210 is used as an example, to describe a specific binding process of the SQ and the QP. The application server 210 registers the memory 212 required for data communication with the RNIC 213, and the storage server 240 registers the memory 242 required for data communication with the RNIC 243, so that the RNIC 213 and the RNIC 243 can operate the memory 242 and the memory 212 in an RDMA manner. In addition, the storage server 240 binds the SQs in the SSD 244 to the stored QPs one by one, for example, binds the QP1 connected to the application server 210 to an SQ1. Then, an address of the SQ1 is mapped, and a virtual address obtained through mapping is registered with the RNIC 243. The RNIC 243 sends the address of the SQ1 to the RNIC 213 through an RDMA connection, so that the RNIC 213 can directly remotely operate the address of the SQ1 in the SSD 244. During data writing, the application server 210 generates data by using the CPU 211 and stores the generated data in the memory 212, then writes the data into the memory 242 of the storage server 240 through the RNIC 213, and notifies, based on the SQ address of the SSD 244, the SSD 244 to migrate the data in the memory 242 to the SSD 244 for persistent storage. If another application server needs to write data to the storage server 240, a process is similar to that in the foregoing description, and details are not described herein again”), wherein at least one SSQ (SQ1 of memory 342 combined with SQ2 of memory 342. Note, the recited phrase ‘at least one’ is opened to one or more; in other words, the combination of SQ1 and SQ2 has at least one in it) in the pool (see paragraph 0054, which teaches multiples of SQs and associated QPs or any number of SQs, QPs) of SSQs SSQ in the pool of SSQs is configured for use as a send queue (SQ) for a plurality of queue pairs (QPs) (QP1 and QP2 in memory 342; see fig. 2 and paragraph 0054); allocate the at least one SSQ from the pool of SSQs to the plurality of QPs (see fig. 2 and paragraph 0054), the at least one SSQ set for a process having a plurality of connections to a plurality of remote processes (see paragraph 0054, which discloses “Each application server is connected to the storage server, to form a QP. Therefore, the memory 242 of the storage server 240 has a plurality of QPs, for example, a QP1, a QP2, and a QP3, and each QP corresponds to a connection between the storage server 240 and one application server. ... The application server 210 is used as an example, to describe a specific binding process of the SQ and the QP…. In addition, the storage server 240 binds the SQs in the SSD 244 to the stored QPs one by one, for example, binds the QP1 connected to the application server 210 to an SQ1. Then, an address of the SQ1 is mapped, and a virtual address obtained through mapping is registered with the RNIC 243. The RNIC 243 sends the address of the SQ1 to the RNIC 213 through an RDMA connection, so that the RNIC 213 can directly remotely operate the address of the SQ1 in the SSD 244”); and send by the at least one SSQ, via the plurality of connections, outgoing messages to separate remote processes of the plurality of remote processes (see fig. 2 and paragraph 0054, which discloses “Each application server is connected to the storage server, to form a QP. Therefore, the memory 242 of the storage server 240 has a plurality of QPs, for example, a QP1, a QP2, and a QP3, and each QP corresponds to a connection between the storage server 240 and one application server. ... The application server 210 is used as an example, to describe a specific binding process of the SQ and the QP…. In addition, the storage server 240 binds the SQs in the SSD 244 to the stored QPs one by one, for example, binds the QP1 connected to the application server 210 to an SQ1. Then, an address of the SQ1 is mapped, and a virtual address obtained through mapping is registered with the RNIC 243. The RNIC 243 sends the address of the SQ1 to the RNIC 213 through an RDMA connection, so that the RNIC 213 can directly remotely operate the address of the SQ1 in the SSD 244”), wherein the pool of SSQs is pinned in the memory (see fig. 2).
3. As per claims 2 and 15, He discloses “The system of claim 1” [See rejection to claim 1 above], wherein the pool is set responsive to a first number of the QPs reaching a threshold (see paragraph 0054).
4. As per claims 4 and 17, He discloses wherein the at least one SSQ is used as the SQ for at least one QP instead of an individual SQ for each QP (see paragraph 0054 and above explaining claim ‘at least one’ SSQ being equated to the combination of SQ1 and SQ2 of memory 342).
5. As per claims 5, 13 and 18, He discloses wherein the system uses a pool of incoming read request queues (IRRQs), and the at least one SSQ uses a corresponding outgoing read request queue (ORRQ) (see paragraphs 0054, 0095 and 0110).
6. As per claims 6 and 19, He discloses wherein a QP is set to have a pointer to the at least one SSQ in the pool of SSQs (see paragraph 0084).
7. As per claims 7 and 20, He discloses wherein the at least one SSQ is released by a QP responsive to identifying that the SQ of the QP is empty (see paragraphs 0094 and 0110).
8. As per claim 8, He discloses a system, comprising: one or more processors (CPU 341 of fig. 2, as disclose in paragraphs 0054, 058 and 0070) coupled to memory (memory 342), the processor configured to: set a first queue pair (QP) (QP1 of fig. 2) of a plurality of QPs (QP1 and QP2 in memory 342; see fig. 2 and paragraph 0054) responsive to a first process in a user space (see paragraphs 0070 and 0073), a first resource set of the first QP allocated from the memory in a kernel space (see paragraphs 0070 and 0076); set a second QP (QP2 of fig. 2) of the plurality of QPs responsive to a second process in the user space, a second resource set of the second QP allocated from the memory in the kernel space (see paragraph 0054, which discloses “during data writing, the application server 210 generates data by using the CPU 211 and stores the generated data in the memory 212, then writes the data into the memory 242 of the storage server 240 through the RNIC 213, and notifies, based on the SQ address of the SSD 244, the SSD 244 to migrate the data in the memory 242 to the SSD 244 for persistent storage. If another application server needs to write data to the storage server 240, a process is similar to that in the foregoing description, and details are not described herein again”); and set a pool of SSQs (see paragraph 0054, which teaches multiples of SQs and associated QPs or any number of SQs, QPs) (shared send queues) comprising at least one SSQ (SQ1 of memory 342 combined with SQ2 of memory 342. Note, the recited phrase ‘at least one’ is opened to one or more; in other words, the combination of SQ1 and SQ2 has at least one in it), the at least one SSQ being shared by the first QP and the second QP (see paragraph 0054, which discloses “Each application server is connected to the storage server, to form a QP. Therefore, the memory 242 of the storage server 240 has a plurality of QPs, for example, a QP1, a QP2, and a QP3, and each QP corresponds to a connection between the storage server 240 and one application server. ... The application server 210 is used as an example, to describe a specific binding process of the SQ and the QP…. In addition, the storage server 240 binds the SQs in the SSD 244 to the stored QPs one by one, for example, binds the QP1 connected to the application server 210 to an SQ1. Then, an address of the SQ1 is mapped, and a virtual address obtained through mapping is registered with the RNIC 243. The RNIC 243 sends the address of the SQ1 to the RNIC 213 through an RDMA connection, so that the RNIC 213 can directly remotely operate the address of the SQ1 in the SSD 244”), wherein the at least one SSQ is released responsive to a number of the plurality of QPs reaching a first threshold (see paragraphs 0094 and 0110), and the pool of SSQs is pinned in the memory (see fig. 2).
9. As per claim 9, He discloses wherein a send queue (SQ) of one of the first QP or the second QP is pinned in the user space of the memory (see fig. 2 and paragraph 0051).
10. As per claim 10, He discloses wherein a QP context of one of the first QP or the second QP is pinned in the kernel space of the memory (see paragraph 0070).
11. As per claim 11, He discloses wherein QP information is in swappable portions of one of the user space or the kernel space of the memory (see paragraphs 0058 and 0084).
12. As per claim 12, He discloses wherein the pool is set responsive to a second number of the plurality of QPs being set reaching a second threshold (see paragraphs 0058 and 0084).
CLOSING COMMENTS
Conclusion
a. STATUS OF CLAIMS IN THE APPLICATION
The following is a summary of the treatment and status of all claims in the application as recommended by M.P.E.P. 707.07(i):
a(1) CLAIMS REJECTED IN THE APPLICATION
Per the instant office action, claims 1, 2, 4-15 and 17-20 have received a final action on the merits.
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 extension fee 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.
b. DIRECTION OF FUTURE CORRESPONDENCES
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Ernest Unelus whose telephone number is (571) 272-8596. The examiner can normally be reached on Monday to Friday 9:00 AM to 5:00 PM.
IMPORTANT NOTE
If attempts to reach the above noted Examiner by telephone are unsuccessful, the Examiner's supervisor, Mr. Idriss Alrobaye, can be reached at the following telephone number: Area Code (571) 270-1023.
The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free).
/Ernest Unelus/
Primary Examiner
Art Unit 2181