DETAILED ACTION
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 .
Continued Examination Under 37 CFR 1.114
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 1/9/2026 has been entered.
Claim Objections
Claims 28-30 are objected to because of the following informalities:
Claims 28-30 recite on Line 1, “The non-transitory computer readable medium of claim 20” which should be “The non-transitory computer readable storage medium of claim 20”.
Appropriate correction is required.
Claim Rejections - 35 USC § 103
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 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 1-2, 4, 7-9, 15-16, 20, 22 and 25-30 are rejected under 35 U.S.C. 103 as being unpatentable over Veluswamy et al. (US Patent 11,507,321) in view of Ortega, III et al. (US PGPUB 2004/0221070) and Sillifant et al. (US PGPUB 2021/0326047).
With regard to Claim 1, Veluswamy teaches a method comprising:
receiving, by a first computing resource of a storage system, a connection request from a client computing device (Col. 18 Ln. 1-5: “For the first 128 host connection requests, completion identifier logic 564.2 may select processing queues and corresponding completion connection identifiers on a one-to-one basis, where each host connection identifier is uniquely assigned to a default queue-pair.” Col. 10 Ln. 59 - Col. 11 Ln. 2: “Architecture 200 assigns front-end queue-pairs 220 allocated by the hosts to back-end queue-pairs 230 maintained by the storage devices. For example, a unique host connection identifier corresponding to a specific namespace and host storage connection instance may be sent in a storage connection request and NVMe-oF storage layer 214 may select an unallocated back-end queue-pair from the storage devices to allocate to the host connection identifier, establishing a one-to-one relationship between host queue-pairs (command and completion queues) and storage device queue-pairs (command and storage queues).”); and
selecting a second computing resource of the storage system for processing one or more I/O operations for the client computing device (Col. 21 Ln. 14-17: “At block 610, a storage command may be received from a host system. For example, the storage node may receive a host storage command directed to a previously allocated host connection identifier.” Col. 21 Ln. 59 – Col. 22 Ln. 4: “At block 626, whether the default host storage connection is over the queue limit may be evaluated... If the target processing queue is over the queue limit, method 600 may proceed to block 616 to select a new storage device and/or processing queue as described above.”).
With further regard to claim 1, Veluswamy does not teach the migrating as described in claim 1. Ortega teaches
wherein the connection request comprises an input/output (I/O) queue identifier ([0075] “All messages have the same basic header, having the following general structure:” [0076] “where the fields are: ... dest_qid The queue identifier for the recipient of the message.”); and
selecting the second computing resource of the storage system for processing one or more I/O operations for the client computing device, in response to identifying that the I/O queue identifier corresponds to the second computing resource of the storage system ([0071] “After being passed to the routing function, the qid is determined from the routing table. If the qid matches the qid of the local processor, the receive handle is retrieved from the routing table based upon the vdId,” wherein the “local processor” is the “first computing resource” [0072] “If the qid do not match, a message with the vdId and the SCB is sent to the qid of the processor determined from the routing table. Again, that processor determines if the qid matches the qid of the local processor. If the qid match, the receive handle is retrieved from the routing based upon the vdId,” wherein the “processor determined from the routing table” is the “second computing resource.” [0212] “qid The queue identifier that tells SCBI where to send the command or responses. For a multi processor environment the qid is checked against the local processor. If different, the SCB is passed to the proper processor.” [0157] “three processors 72, 74, 76 for processing SCSI commands and performing storage applications.”).
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to have modified the method as disclosed by Veluswamy with the I/O queue identifier functionality as taught by Ortega since “In order to optimize speed and depending on the hardware architecture, it may be desired to operate certain modules on selected processors” (Ortega [0156]).
With further regard to claim 1, Veluswamy in view of Ortega does not teach the migrating as described in claim 1. Sillifant teaches
migrating the connection for the client computing device to the second computing resource in response to selecting the second computing resource of the storage system ([0233] “In the example method depicted in FIG. 9, migrating (922) a particular workload (422, 424, 904) among the storage systems (406, 408) in the fleet (906) of storage systems (406, 408) in dependence upon the preferred placement for each of the one or more workloads (422, 424, 904) can result in a particular workload (422, 424, 904) being moved from one storage system within the fleet (906) to another storage system within the fleet (906). For example, if identifying (920) a preferred placement for a first workload (422) revealed that the preferred placement for the first workload (422) was on storage system (408), the first workload (422) could be migrated (922) from storage system (406) to storage system (408),” wherein “a preferred placement” is identified based on the QID routing as taught above in Ortega, i.e. “in response to selecting the second computing resource of the storage system.” [0254] “The workload migration module (1210) may also deploy (1224) the workload (1220) in the second host (1204), for example, by disconnecting one or more clients connected to the workload (1220) in the first host (1202) and connecting them to the second host (1204).”).
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to have modified the method as disclosed by Veluswamy in view of Ortega with the migrating as taught by Sillifant so that “system resources may be efficiently utilized without overwhelming individual storage systems” (Sillifant [0262]).
With regard to Claim 2, Veluswamy in view of Ortega and Sillifant teaches all the limitations of Claim 1 as described above. Veluswamy further teaches wherein selecting the second computing resource of the storage system comprises:
assigning an I/O queue corresponding to the I/O queue identifier to the second computing resource ([0133] “for the API 50 to be operational and receive commands, SCBI 20 must first be initialized to set up the tables used during the routing processes.” [0134] “Each processor upon startup executes its initialization process.” [0135] “Upon activation, the SCBI layer awaits for the SCSI task scheduler to send its processor queue identifier (qid), which identifies on which processor the task scheduler resides, to the SCBI centralized process. After the processor on which the task scheduler is identified, the SCSI device server (DS) provides its qid. After which, the SCBI layer allows each module to identify the processor on which it resides.” [0071] “After being passed to the routing function, the qid is determined from the routing table. If the qid matches the qid of the local processor,” and [0072] “If the qid do not match, a message with the vdId and the SCB is sent to the qid of the processor determined from the routing table.”).
With regard to Claim 4, Veluswamy in view of Ortega and Sillifant teaches all the limitations of Claim 1 as described above. Veluswamy further teaches wherein one or more identifiers of a connector interface corresponding to the connection request are stored in relation to a first polling instance associated with the first computing resource (Col. 10 Ln. 59 – Col. 11 Ln. 2: “Architecture 200 assigns front-end queue-pairs 220 allocated by the hosts to back-end queue-pairs 230 maintained by the storage devices. For example, a unique host connection identifier corresponding to a specific namespace and host storage connection instance may be sent in a storage connection request and NVMe-oF storage layer 214 may select an unallocated back-end queue-pair from the storage devices to allocate to the host connection identifier, establishing a one-to-one relationship between host queue-pairs (command and completion queues) and storage device queue-pairs (command and storage queues).”), and
wherein migrating the connection comprises:
removing a first data relationship between the one or more identifiers of the connector interface and the first polling instance (Col. 18 Ln. 39-51: “queue-pair manager 564 may include a connection deallocator 564.5 configured to deallocate host storage connections and corresponding host connection identifiers that are not actively being used by the host. For example, connection deallocator 564.5 may include a connection timeout parameter that it uses to evaluate the recency of storage commands to each host connection identifier. Responsive to an elapsed time since the last storage command to that host connection identifier meeting the connection timeout parameter, the host connection identifier may be deallocated from any default completion connection identifier previously associated with that host connection identifier.”); and
establishing a second data relationship between the one or more identifiers of the connector interface and a second polling instance associated with the second computing resource in response to removing the first data relationship between the one or more identifiers of the connector interface and the first polling instance (Col. 18 Ln. 56-65: “deallocated but not terminated host connection identifiers may be maintained in connection log data 520.1 and processed by queue-pair manager 564 as a new connection request in the event that a new storage command is received for the deallocated host connection identifier. In some embodiments, storage commands to deallocated but not terminated host storage connections may be passed to storage command manager 566, automatically treated as responding to a queue full error, and processed using queue overflow logic 566.2.” Col. 19 Ln. 15-28: “Responsive to the queue full notification, queue selection logic 566.1 may initiate queue overflow logic 566.2 to evaluate other available processing queues that could receive and process the storage command. For example, queue overflow logic 566.2 may evaluate other processing queues to the same storage device, determine which has the shortest queue depth of pending storage commands, and select that processing queue. In another example, queue overflow logic 566.2 may evaluate all available processing queues across all storage devices. In still another example, queue overflow logic 566.2 may initiate queue-pair manager 564 to initiate a new processing queue and corresponding completion identifier to receive the storage command.”).
With regard to Claim 7, Veluswamy in view of Ortega and Sillifant teaches all the limitations of Claim 1 as described above. Sillifant further teaches
wherein migrating the connection is based on completing a predefined number of I/O operations ([0237] “The workload migration module (1002) may alternatively identify (1004) a workload (1018a) executing in a first environment (1010), for example, through the use of an automated monitoring module that identifies environments that are over-subscribed and identifies workloads that may be candidates for migration to reduce the load on a particular environment (1010), through the use of an automated monitoring module that identifies workloads that may benefit from being migrated to a different environment, and in other ways.” [0252] “The example method depicted in FIG. 12 includes collecting (1214), by a workload migration module (1210), from a first host (1202), first data (1216) describing performance characteristics of the first host (1202)… The information describing various performance characteristics of the first host (1202) can include, for example, the number of IOPS being serviced by the first host (1202),” wherein [0253] “the workload migration module (1002) may identify the second host (1204) in response to one or more metrics in the first data (1216) … exceeding or falling below a threshold.”).
With regard to Claim 8, Veluswamy in view of Ortega and Sillifant teaches all the limitations of Claim 1 as described above. Sillifant further teaches wherein migrating the connection comprises:
determining whether a value for a performance attribute associated with the connection satisfies a threshold ([0253] “the workload migration module (1002) may identify the second host (1204) in response to one or more metrics in the first data (1216) … exceeding or falling below a threshold… As a further example, the second data (1218) may indicate that a client's CPU usage or memory usage exceeds a threshold. The second host (1204) may also be identified in response to a predicted performance characteristic (e.g., a time-series projection of a performance characteristic) exceeding or falling below a threshold (e.g., within a predefined time window). Accordingly, the second host (1204) may be identified as a host (1202, 1204, 1206, 1208) more suitable for supporting the workload (1220) compared to the first host (1202).”); and
migrating the connection from the second computing resource to a third computing resource based on determining that the value for the performance attribute associated with the connection fails to satisfy the threshold ([0254] “The workload migration module (1210) may deploy (1224) the workload (1220) in the second host (1204), for example, by migrating data stored on storage resources in the first host (1202) to storage resources in the second host (1204), thereby creating a new instance of the data in the second host (1204).”).
With regard to Claim 9, Veluswamy in view of Ortega and Sillifant teaches all the limitations of Claim 1 as described above. Sillifant further teaches wherein migrating the connection comprises:
determining whether a value for a quality of service attribute associated with the connection satisfies a threshold ([0196] “The information describing various performance characteristics of the storage system can include… the utilization rates of various networking resources (e.g., network bandwidth utilization) within the storage system.” [0253] “the workload migration module (1002) may identify the second host (1204) in response to one or more metrics in the first data (1216) … exceeding or falling below a threshold… The second host (1204) may also be identified in response to a predicted performance characteristic (e.g., a time-series projection of a performance characteristic) exceeding or falling below a threshold (e.g., within a predefined time window). Accordingly, the second host (1204) may be identified as a host (1202, 1204, 1206, 1208) more suitable for supporting the workload (1220) compared to the first host (1202).”); and
migrating the connection from the second computing resource to a third computing resource based on determining that the value for the quality of service attribute associated with the connection fails to satisfy the threshold ([0254] “The workload migration module (1210) may deploy (1224) the workload (1220) in the second host (1204), for example, by migrating data stored on storage resources in the first host (1202) to storage resources in the second host (1204), thereby creating a new instance of the data in the second host (1204).”).
With regard to Claims 15-16, 22 and 25-27 these claims are equivalent in scope to Claims 1-2, 4 and 7-9 rejected above, merely having a different independent claim type, and as such Claims 15-16, 22 and 25-27 are respectively rejected under the same grounds and for the same reasons as discussed above with regard to Claims 1-2, 4 and 7-9.
With further regard to Claim 15, the claim recites additional elements not specifically addressed in the rejection of Claim 1. The Veluswamy reference also anticipates these additional elements of Claim 15, for example, Veluswamy further teaches an apparatus comprising:
a memory (Col. 28. Ln. 52-60: “a physical computer-readable storage medium may include, but are not limited to, an electrical connection including one or more wires, a portable computer diskette, a hard disk, random access memory (RAM), read-only memory (ROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a Flash memory, an optical fiber, a compact disk read-only memory (CD-ROM)”); and
a processing device operatively coupled to the memory, the processing device configured to perform operations (Col. 29 Ln. 19-37: “Various aspects of the present technology may be described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus, systems, and computer program products. It will be understood that each block of a flowchart illustration and/or a block diagram, and combinations of blocks in a flowchart illustration and/or block diagram, can be implemented by computer program instructions. These computer program instructions may be provided to a processing device (processor) of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which can execute via the processing device or other programmable data processing apparatus, create means for implementing the operations/acts specified in a flowchart and/or block(s) of a block diagram. Some computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other device(s) to operate in a particular manner.”).
With regard to Claims 20 and 28-30 these claims are equivalent in scope to Claims 1, 4 and 8-9 rejected above, merely having a different independent claim type, and as such Claims 20 and 28-30 are respectively rejected under the same grounds and for the same reasons as discussed above with regard to Claims 1, 4 and 8-9.
With further regard to Claim 20, the claim recites additional elements not specifically addressed in the rejection of Claim 1. The Veluswamy reference also anticipates these additional elements of Claim 20, for example, Veluswamy further teaches:
A non-transitory computer readable storage medium storing instructions which, when executed, cause a processing device to perform operations (Col. 29 Ln. 19-37: “Various aspects of the present technology may be described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus, systems, and computer program products. It will be understood that each block of a flowchart illustration and/or a block diagram, and combinations of blocks in a flowchart illustration and/or block diagram, can be implemented by computer program instructions… such that the instructions, which can execute via the processing device or other programmable data processing apparatus, create means for implementing the operations/acts specified in a flowchart and/or block(s) of a block diagram. Some computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other device(s) to operate in a particular manner.”).
Claims 5 and 23 are rejected under 35 U.S.C. 103 as being unpatentable over Veluswamy in view of Ortega and Sillifant as applied to Claims 4 and 22 above, and further in view of Saether et al. (US Patent 5,333,315)
With regard to claim 5, Veluswamy in view of Ortega and Sillifant teaches all the limitations of claim 4 as described above. Veluswamy in view of Ortega and Sillifant does not teach the file descriptor and deregistering as described in claim 5. Saether teaches wherein
a connection handle associated with the connection request is initially registered with a first file descriptor associated with the first polling instance (Col. 3 Ln. 4-6: “each disk 108-112 has a file descriptor table 154 containing an entry for each file stored on that disk.”), and
wherein migrating the connection comprises (Col. 4 ln. 63-65: “the file system's file moving routine 162 moves a specified file to another disk using the following steps (not necessarily in this order)”):
deregistering the connection handle registered to the first file descriptor (Col. 5 Ln. 3-4: “C. De-allocate the old file descriptor entry and the file's disk space (step 214).”); and
registering the connection handle with a second file descriptor associated with the second polling instance in response to deregistering the connection handle registered to the first file descriptor (Col. 4 ln. 66 – Col. 5 Ln. 2: “A. Allocate a new file descriptor entry on the new disk, i.e., the disk to which the file is being moved (step 210). B. Copy the file and the file descriptor entry from the old disk to the new disk (step 212).” Col. 5 Ln. 5-6: “D. Update the file's tag entry so that it points to the new file descriptor entry (step 216).”).
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to have modified the method as disclosed by Veluswamy in view of Ortega and Sillifant with the file descriptor and deregistering as taught by Saether thereby “allowing a file system to easily, transparently (i.e., users and applications are not aware of file movement) and automatically redistribute files among its disks” (Saether Col. 1 Ln. 51-54).
With regard to Claim 23, this claim is equivalent in scope to Claim 5 rejected above, merely having a different independent claim type, and as such Claim 23 is rejected under the same grounds and for the same reasons as discussed above with regard to Claim 5.
Claims 6 and 24 are rejected under 35 U.S.C. 103 as being unpatentable over Veluswamy in view of Ortega and Sillifant as applied to Claims 4 and 22 above, and further in view of Gyllenskog et al. (US PGPUB 2022/0171572).
With regard to claim 6, Veluswamy in view of Ortega and Sillifant teaches all the limitations of claim 4 as described above. Veluswamy in view of Ortega and Sillifant does not teach the circular queues as described in claim 6. Gyllenskog teaches wherein
a connection handle associated with the connection request is initially included in a first set of user space circular buffers associated with the first computing resource ([0046] “At 320, a first entry may be added to a first circular queue… the command stored at the first entry may include a command pointer (command PTR), a response offset, a response size, a total size, an identification (ID) and an overall status.”), and
wherein migrating the connection comprises:
removing the one or more identifiers of the connector interface from the first set of user space circular buffers ([0072] “accessing, at a host system, a first entry of a first circular queue that indicates a first command for a memory system and a location of data associated with the first command… and removing the first entry from the first circular queue.”); and
writing the one or more identifiers of the connector interface to a second set of user space circular buffers associated with the second computing resource in response to removing the one or more identifiers of the connector interface from the first set of user space circular buffers ([0046] “the first circular queue may be in a first core and the second circular queue may be in a second core.” [0073] “writing information to a second entry of a second circular queue in the host system based at least in part on receiving the response from the memory system, where removing the first entry from the first circular queue may be based at least in part on writing the second entry of the second circular queue.”).
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to have modified the method as disclosed by Veluswamy in view of Ortega and Sillifant with the circular queues as taught by Gyllenskog so that “the host system 200 may perform multiple tasks concurrently and increase the overall processing speed of the host system 200” (Gyllenskog [0038]).
With regard to Claim 24, this claim is equivalent in scope to Claim 6 rejected above, merely having a different independent claim type, and as such Claim 24 is rejected under the same grounds and for the same reasons as discussed above with regard to Claim 6.
Response to Arguments
Applicant's arguments, see Pages 9-10 of the Remarks filed 1/9/2026, with respect to the rejections under 35 U.S.C. 103 of Claims 1-17 and 19-21 have been fully considered but they are not persuasive. With respect to the Applicant’s argument that the newly amended language of Claims 1, 15 and 20 is not taught by the previously cited prior art, this argument has been fully considered but is moot in view of the newly cited Ortega, III et al. (US PGPUB 2004/0221070) reference as discussed above in the respective rejections.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure is as follows:
Jung et al. (US PGPUB 2024/0272827) discloses a storage system including a host device supporting multiple queues and a storage device, wherein a storage controller detects the pattern information of received commands and places the commands based on a queue ID.
Stratikopoulos et al. (“FastPath: Towards Wire-speed NVMe SSDs,” 2018) discusses an FPGA-based fast path which accelerates access to an NVMe drive, including discussion regarding the use of a queue identifier to distinguish between different commands.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to NICHOLAS J SIMONETTI whose telephone number is (571)270-7702. The examiner can normally be reached Monday-Thursday 10AM-6PM EST.
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 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.
/NICHOLAS J SIMONETTI/Primary Examiner, Art Unit 2137 March 17, 2026