DETAILED ACTION
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 09/25/2024 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-17 of U.S. Patent No. 12,130,767. Although the claims at issue are not identical, they are not patentably distinct from each other because the subject matter in the instant application is at least fully disclosed in the reference patent.
Claim 1 of the instant application is anticipated by the patent’s claim 1 in that claim 1 of the patent contain all the limitation of claim 1 of the instant application. Please see the table below for the claim comparison.
Further, the limitation of other claims 2-20 are found with minor variations in the teaching of the patent claims 1-17.
Instant Application (18/896,533)
Patent No. 12,130,767
Claim 1: A method of packet processing, the method comprising:
forwarding an input/output (IO) request from a network-processing module to a drive-processing module that is separate from the network-processing module;
Claim 1: A method of packet processing, the method comprising:
receiving an input/output (IO) request with a network-processing module associated with a processor;
forwarding the IO request from the network-processing module to a drive-processing module that is separate from the network-processing module, and that is associated with the processor;
generating, by the drive-processing module, a first indicator based on a first drive ID of a first drive and an input representing data corresponding to the IO request;
generating, with the drive-processing module, a first indicator based on both an input of a first drive ID of a first drive and an input representing data corresponding to the IO request;
generating, by the drive-processing module, a second indicator based on a second drive ID of a second drive and the input representing the data; and
generating, with the drive-processing module, a second indicator based on both an input of a second drive ID of a second drive and the input representing the data;
selecting, by the drive-processing module, a drive based on a comparison of the first indicator to the second indicator.
selecting, with the drive-processing module, the first drive or the second drive based on a comparison of the first indicator to the second indicator; and processing the data with the drive-processing module.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-20 of U.S. Patent No. 11,636,059. Although the claims at issue are not identical, they are not patentably distinct from each other because the subject matter in the instant application is at least fully disclosed in the reference patent.
Claim 1 of the instant application is anticipated by the patent’s claims 1 and 4 in that claims 1 and 4 of the patent contain all the limitation of claim 1 of the instant application. Please see the table below for the claim comparison.
Further, the limitation of other claims 2-20 are found with minor variations in the teaching of the patent claims 1-20.
Instant Application (18/896,533)
Patent No. 11,636,059
Claim 1: A method of packet processing, the method comprising:
forwarding an input/output (IO) request from a network-processing module to a drive-processing module that is separate from the network-processing module;
Claim 1: A method of packet processing, the method comprising:
receiving an input/output (IO) request from a host;
Claim 4: further comprising forwarding the IO request from the network-processing module associated with the processor to a drive-processing module associated with the processor
generating, by the drive-processing module, a first indicator based on a first drive ID of a first drive and an input representing data corresponding to the IO request;
Claim 1: generating a first hash result using a hashing algorithm based on inputs of both a first drive ID of a first drive and an object key of a key-value pair corresponding to the IO request;
generating, by the drive-processing module, a second indicator based on a second drive ID of a second drive and the input representing the data; and
generating a second hash result using the hashing algorithm based on inputs of both a second drive ID of a second drive and the object key of the key-value pair corresponding to the IO request;
selecting, by the drive-processing module, a drive based on a comparison of the first indicator to the second indicator.
selecting a drive corresponding to the IO request based on a comparison of the first hash result to the second hash result; and establishing a connection between the host and the drive
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e. a law of nature, a natural phenomenon, or an abstract idea) without significantly more. Claims 1-20 are directed to Mental Processes. The claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception because the additional computer elements, which are recited at a high level of generality, provide conventional computer functions that do not add meaningful limits to practicing the abstract ideas.
Claims 1, 8 and 15 recites in part a computer-implemented method of selecting a storage drive based on comparison of two indicators generated based on the drives’ IDs and input data. The limitation is directed to concepts performed in the human mind, via the use of generic computer components, such as Mental Processes (including an observation, evaluation, judgement, opinion). Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular, the claims only recite additional elements such as processor, different software modules, memory and computer-readable medium which are well-known part of a generic computer. The generic computer components are recited at a high-level of generality (e.g. machine-readable medium… cause the processor to perform operations) such that it amounts to no more than mere instruction to apply the exception using a generic computer component. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
Next the claims as a whole are analyzed to determine whether any element, or combination of elements, is sufficient to ensure the claim amounts to significantly more than an abstract idea. The claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception because the additional elements of processor, software modules, memory and computer-readable medium are merely additional elements performing the abstract idea on a generic device i.e., abstract idea and apply it. There is no improvement to computer technology or computer functionality MPEP 2106.05(a) nor a particular machine MPEP 2106.05(b) nor a particular transformation MPEP 2106.05(c). Given the above reasons, the additional elements of processor, memory and computer-readable medium are not Inventive Concepts. Thus, the claims are not patent eligible.
The dependent claims 2-10, 9-14, and 16-20 have been given the full two-part analysis (Step 2A- 2 -prong tests and step 2B) including analyzing the additional limitations both individually and in combination. The Dependent claim(s) when analyzed both individually and in combination are also held to be patent ineligible under 35 U.S.C. 101 because for the same reasoning as above and the additional recited limitation(s) fail(s) to establish that the claim(s) is/are not directed to an abstract idea. The additional limitations of the dependent claim(s) when considered individually and as ordered combination do not amount to significantly more than the abstract idea.
Therefore, claims 1-20 are not drawn to eligible subject matter as they are directed to an abstract idea without significantly more.
Claim Rejections - 35 USC § 112
The following is a quotation of the first paragraph of 35 U.S.C. 112(a):
(a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention.
The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112:
The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention.
Claims 6, 13 and 20 are rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AIA ), first paragraph, as failing to comply with the written description requirement. The claim(s) contains subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for applications subject to pre-AIA 35 U.S.C. 112, the inventor(s), at the time the application was filed, had possession of the claimed invention.
Regarding claims 6, 13 and 20 the limitation “using a remote direct memory access protocol to forward the IO request from a network-processing module” is not supported by the filed Specification. The filed Specification only discloses the general use of RDMA for processing the request (see para 0060, The network-processing module 322 may use an RDMA (remote direct memory access) protocol for processing requests). The Specification does NOT disclose the transmission between the modules using RDMA. Therefore, the limitation fails to comply with the written description requirement.
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.
Claims 1-3, 7, 8-10, 14, and 15-17 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Mutnuru US 20170149878.
Regarding claim 1, Mutnuru teaches a method of packet processing (see figures 4 and 6B), the method comprising:
forwarding an input/output (IO) request from a network-processing module to a drive-processing module that is separate from the network-processing module (see figure 6B and para 0051, load balancing server 220 e.g. drive processing module may receive an object from requesting device 230 and/or another device e.g. network processing module);
generating, by the drive-processing module, a first indicator based on a first drive ID of a first drive and an input representing data corresponding to the IO request; generating, by the drive-processing module, a second indicator based on a second drive ID of a second drive and the input representing the data (see figure 4, block 440, see para 0055, load balancing server 220 may determine hash values based on the virtual IDs e.g. the IDs of the servers 210-1 and 210-2, the object e.g. the input representing data, and the hash function); and
selecting, by the drive-processing module, a drive based on a comparison of the first indicator to the second indicator (block 460, see para 0072, selecting a backend server 210 associated with the virtual ID that satisfies the particular condition, also see para 0070, the particular condition may be a greatest hash value e.g. comparison of the hash values/indicators to find the greatest).
Regarding claim 2, Mutnuru further teaches establishing a connection between the drive and a host (see block 470, providing the object to the backend server 210 e.g. connection between requesting device 230 and the selected backend server 210).
Regarding claim 3, Mutnuru further teaches receiving the request comprises receiving the request by the network-processing module (see figure 3, communication interface 370 associated with processor 320, see para 0032, Communication interface 370 may permit device 300 to receive information from another device and/or provide information to another device).
Regarding claim 7, Mutnuru further teaches using a transmission control protocol to process the data by the drive-processing module (see para 0095, Internet Protocol (IP)).
Regarding claims 8-10 and 14, please refer to the rejection of claims 1-3, and 7 above since the claimed subject matter is substantially similar. Additionally, Mutnuru further teaches a system for packet processing (see figure 6B)
Regarding claims 15-17, please refer to the rejection of claims 1-3 above since the claimed subject matter is substantially similar. Additionally, Mutnuru further teaches a non-transitory computer readable medium implemented on a system for packet processing, the non-transitory computer readable medium having computer code that implements a method of packet processing (see para 0033, Device 300 may perform these processes in response to processor 320 executing software instructions stored by a computer-readable medium, such as memory 330 and/or storage component 340).
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.
Claims 4, 11 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Mutnuru as applied to claims above, and further in view of Gissin et al US 20200065264.
Regarding claim 4, Mutnuru teaches all the features with respect to claim 1 as outlined above.
But, Mutnuru fails to teach forwarding the request from the network-processing module to the drive-processing module comprises using an atomic ring buffer.
However, Gissin teaches using an atomic ring buffer to forward IO request (see para 0004, The I/O submission queue is a ring buffer used for storing one or more data operation requests to be executed by the controller, also see para 0144, in this embodiment of this application, the SQE is sent to the NVMe controller in a push manner, and a doorbell mechanism is cancelled. Therefore, there is no need to perform all operations in the range of the lock operations e.g. the submission queue SQE is atomic).
Therefore, it would have been obvious to modify the request queue of Mutnuru and further incorporate an atomic ring buffer.
The motivation for doing so is to reduce the data processing duration by simplifying queue lock operation.
Regarding claims 11 and 18, please refer to the rejection of claim 4 above since the claimed subject matter is substantially similar.
Claims 5, 12 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Mutnuru as applied to claims above, and further in view of Armangau et al US 20200349079 and in view of Solihin US 20160253212.
Regarding claim 5, Mutnuru teaches all the features with respect to claim 1 as outlined above.
But, Mutnuru fails to teach respectively assigning other I0 requests to cores of the processor; and balancing connections between one or more hosts and one or more drives, or balancing a loading of the cores.
However, Armangau teaches assigning one or more other IO requests to one or more respective cores of the processor and balancing connections between one or more hosts and one or more drives, or balancing a loading of the cores of the processor (see figure 1, 3 and para 0020, the I/O request distribution component 42 dynamically selects the cores 30 for processing the I/O requests 40 as they are received... The cores 30 may be prioritized in some dynamic manner, such as "round robin” for example, to promote full utilization and load balancing).
Therefore, it would have been obvious for a person having ordinary skill in the art before the effective filling date of the claimed invention to modify the processor of Mutnuru and further incorporate IO request distribution to different cores.
The motivation for doing so is to improve performance by multi-core parallel computing and load balancing.
The combination of Mutnuru and Armangau fails to teach assigning request to one or more respective cores based on respective physical distance to a corresponding memory.
However, Solihin teaches assigning latency sensitive request to one or more respective cores based on the one or more cores having a smallest physical distance to a corresponding memory (see para 0027, operating system 104 may assign threads 190 to be executed in one or more cores in response to a determination that the thread is latency-bound and may benefit from a latency- sensitive protocol. A latency-bound thread may include requirements to minimize (or reduce) data access time for a particular thread, minimize (or reduce) cost of data access, minimize (or reduce) a transmission distance between the core executing the thread and a memory controller).
Therefore, it would have been obvious for a person having ordinary skill in the art before the effective filling date of the claimed invention to modify the processor and request assignment of Mutnuru and Armangau and further incorporate prioritizing the core having a smallest physical distance to a memory.
The motivation for doing so is to reduce the latency due to the close proximity between the core and the memory as taught by Solihin (see para 0043, improve execution time of the threads and may reduce latency due to the close proximity between the core and the first memory controller).
Regarding claims 12 and 19, please refer to the rejection of claim 4 above since the claimed subject matter is substantially similar.
Claims 6, 13 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Mutnuru as applied to claims above, and further in view of Futral US Patent No. 6,615,282.
Regarding claim 6, Mutnuru teaches all the features with respect to claim 1 as outlined above.
But, Mutnuru fails to teach using a remote direct memory access protocol to forward the IO request from the network-processing module.
However, Futral teaches a network processing module forwarding the request using a remote direct memory access protocol (see figure 4 shown handling of I/O request using RDMA, see col 3 In 52-55, the example embodiment of the invention sets forth a data transfer where there is a channel-based switched fabric interconnect supporting remote direct memory access (RDMA)).
Therefore, it would have been obvious to modify the network processing of Mutnuru and incorporate RDMA protocol.
The motivation for doing is to provide a more efficient data transfer by supporting a direct memory access protocol.
Regarding claims 13 and 20, please refer to the rejection of claim 6 since the claimed subject matter is substantially similar.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Peleg et al US 20200026438 discloses system and method of management of multi-tier storage systems.
Piszczek et al US Patent No. 9,959,062 discloses low latency and reduced overhead data storage system and method for sharing multiple storage devices by high performance computing architecture
Any inquiry concerning this communication or earlier communications from the examiner should be directed to PHONG H DANG whose telephone number is (571)272-0470. The examiner can normally be reached Monday-Friday 9:30AM - 6: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, Henry Tsai can be reached at (571)272-4176. 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.
/PHONG H DANG/Primary Examiner, Art Unit 2184