DETAILED ACTION
1. This Office Action is taken in response to Applicants’ Amendments and Remarks filed on 2/2/2026 regarding application 18/884,478 filed on 9/13/2024.
Claims 1-20 are pending for consideration.
2. Response to Amendments and Remarks
Applicants’ amendments and remarks have been fully and carefully considered, with the Examiner’s response set forth below.
(1) Applicant amends all independent claims with the additional limitation “the one of the multiple storage controllers removed from the storage system.”
In response to this new limitation, a new reference Viswanatha is relied on to teach this limitation.
Specifically, Viswanatha teaches the one of the multiple storage controllers removed from the storage system [Yet another advantage of the present invention is that user data is protected even when storage controllers or storage devices are removed or swapped out of the storage system by mistake. The present invention maintains metadata including the previous owner for each logical volume to make sure that data reliability is not compromised by a previous storage controller removal or swap operation (¶ 0011) … Controller C, which has been removed from the system 300 due to a previous storage controller 108 replacement or upgrade operation, is the previous owner 416 of LUN 1 … (¶ 0061)].
(2) Applicant contends that, regarding claim 1, Kurokawa fails to teach "establishing communication with a remaining storage controller and the upgraded storage controller through the alternative communication path,” because " 514 publication further does not disclose or suggest a communication component disposed within a storage drive bay, or using such a component to provide an alternative controller- to-controller communication path” (see page 7 of Applicant’s Remarks).The Examiner disagrees.
Regarding the alternative communication paths, figure 1 of Kurokawa shows a Plurality of communication paths include NPA, NPB, 140A, 140B, 141A, and 141B, which provide communication paths between the storage controllers (1A, 1B, 2A, and 2B).
Specifically, Kurokawa teaches an alternative communication path in addition to a first communication path [Each controller 100A, 100B is connected to each logical volume 130 via fiber channel or similar communication paths 140A, 140B. In other words, the first controller 100A is connected to each logical volume 130 via the first communication path 140A. The second controller 100B is connected to each logical volume 130 via the second communication path 140B. Also, the first controller 100A is connected to the second communication path 140B via an alternative path 141A, and in the same way the second controller 100B is connected to the first communication path 140A via an alternative path 141B … (¶ 0058-0059)].
Applicant also argues that “The '514 publication further does not disclose or suggest a communication component disposed within a storage drive bay, or using such a component to provide an alternative controller-to-controller communication path.”
However, the limitation merely recites “providing a communication component within a storage drive bay of a storage system, the communication component providing an alternative communication path between multiple storage controllers from a first communication path,” and is otherwise completely silent regarding the scope and nature of the communication component. In fact, the limitation recites “the communication component providing an alternative communication path between multiple storage controllers from a first communication path.” Hence, the connections/paths between the storage controllers would qualify as the communication component within the context of claim 1.
Further, figure 1 of Kurokawa shows a Plurality of communication paths include NPA, NPB, 140A, 140B, 141A, and 141B, which provide communication paths between the storage controllers (1A, 1B, 2A, and 2B). These communication paths between the storage controllers serve and represent the corresponding “communication component” as recited in claim 1.
As to Applicant’s argument regarding the “specific sequence” of operations, it is noted that both Kurokawa and Viswanatha teaches the specific sequence. For example, Kurokawa teaches replacement and restoration, and Viswanatha teaches failover (i.e., establishing alternative communication paths) and failback (i.e., reestablishing communication paths).
Therefore, Kurokawa in view of Viswanatha clearly teaches all the limitation recited in claim 1.
(3) In response to the amendments and remarks, an updated claim analysis has been made with additional, new reference(s). Refer to the corresponding sections of the following Office Action for details.
3. Examiner’s Note
(1) In the case of amending the Claimed invention, Applicant is respectfully requested to indicate the portion(s) of the specification which dictate(s) the structure relied on for proper interpretation and also to verify and ascertain the metes and bounds of the claimed invention. This will assist in expediting compact prosecution. MPEP 714.02 recites: “Applicant should also specifically point out the support for any amendments made to the disclosure. See MPEP § 2163.06. An amendment which does not comply with the provisions of 37 CFR 1.121(b), (c), (d), and (h) may be held not fully responsive. See MPEP § 714.” Amendments not pointing to specific support in the disclosure may be deemed as not complying with provisions of 37 C.F.R. 1.131(b), (c), (d), and (h) and therefore held not fully responsive. Generic statements such as “Applicants believe no new matter has been introduced” may be deemed insufficient.
(2) Examiner has cited particular columns/paragraph and line numbers in the references applied to the claims above for the convenience of the applicant. 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 applicant in preparing responses, to fully consider the references in 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.
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.
3. Claims 1-2, 4-5, 8-9, 11-12, and 15-16, are rejected under 35 U.S.C. 103 as being unpatentable over Kurokawa et al. (US Patent Application Publication 2008/0005514, hereinafter Kurokawa), and in view of Viswanatha et al. (US Patent Application Publication 2014/0258608, hereinafter Viswanatha).
As to claim 1, Kurokawa teaches A method, comprising:
providing a communication component within a storage drive bay of a storage system [as shown in figure 1, where are the corresponding “communication components” include NPA, NPB, 140A, 140B, 141A, and 141B, which provide communication alternative paths between the storage controllers (1A, 1B, 2A, and 2B);
Viswanatha also teaches this limitation – as shown in figure 1C, where multiple paths connecting the host (104), two storage controllers (108a, 108b), and storage devices (116)], the communication component providing an alternative communication path between multiple storage controllers from a first communication path [as shown in figure 1, where are the corresponding “communication components” include NPA, NPB, 140A, 140B, 141A, and 141B,which provide communication alternative paths between the storage controllers (1A, 1B, 2A, and 2B); as shown in figures 1, 3, 8, 15A, 15B, 21, and 22; Each controller 100A, 100B is connected to each logical volume 130 via fiber channel or similar communication paths 140A, 140B. In other words, the first controller 100A is connected to each logical volume 130 via the first communication path 140A. The second controller 100B is connected to each logical volume 130 via the second communication path 140B. Also, the first controller 100A is connected to the second communication path 140B via an alternative path 141A, and in the same way the second controller 100B is connected to the first communication path 140A via an alternative path 141B … (¶ 0058-0059); The storage system according to the present invention allows the number of host connections to be increased by connecting a plurality of storage control devices so that commands and data can be directly exchanged between each storage control device. The first storage control device has a plurality of controllers, and the second storage control device also has a plurality of controllers. Within each storage control device, controllers are connected by inter-controller communication paths. Also, between storage control devices, controllers belonging to different storage control devices are connected by inter-device communication paths. If the subject of processing of a command received by one storage control device is under the control of another storage control device, the command is transferred from the one storage control device to the other storage control device via the inter-device communication path (abstract); However, as stated later, the present embodiment includes an inter-controller communication path P1 connected between each controller 100A, 100B, and inter-device communication paths NPA, NPB connected between the controllers 100A, 100B in the former storage control device 10 and the controllers 200A, 200B in the latter storage control device 20 … Furthermore, as stated later, depending on circumstances the inter-controller communication paths P1, P2 and the inter-device communication paths NPA, NPB can be appropriately combined and used … The inter-controller communication paths P1, P2 and the inter-device communication paths NPA, NPB can be configured as for example serial interfaces such as PCI (Peripheral Component Interconnect) Express. In this way, the command transmission function provided in the host side protocol chip can be effectively utilized, and it is possible to reduce the overhead during transfer (¶ 0060-0064);
Viswanatha also teaches this limitation – as shown in figure 1C, where multiple paths connecting the host (104), two storage controllers (108a, 108b), and storage devices (116)];
replacing one of the multiple storage controllers with an upgraded storage controller [Kurokawa teaches a storage controller with a high load is replaced with a storage controller with a light load -- In one aspect of the present invention, each controller monitors the load on storage devices under its own control, and when a high load storage device is detected having a load equal to or greater than a threshold value that is set in advance, control of the high load storage device is entrusted to the connection destination controller connected via the inter-device communication path (¶ 0022); The following is an explanation of the third embodiment based on FIGS. 18 through 20. In the present embodiment, the load within the storage control devices 10, 20 is dispersed … On the other hand, if the processor usage rate is higher than the threshold value (S122: NO), a high load state has occurred in the logical volume 130 that is the subject of the command. Therefore, the controller 100A temporarily changes the responsible controller for the logical volume 130 with the high load to the other controller 100B within the same basic housing (S123) … The present embodiment configured in this way has the same effect as the first embodiment described previously. In addition, in the present embodiment, in the mutually connected storage control devices 10, 20, the controller responsible for a logical volume with a high load can be automatically changed. In this way, the processors of the storage control devices 10, 20 can be effectively utilized, and the reduction in responsiveness can be minimized (¶ 0162-0177);
Viswanatha also teaches this limitation -- … Controller C, which has been removed from the system 300 due to a previous storage controller 108 replacement or upgrade operation, is the previous owner 416 of LUN 1 … (¶ 0061)], the one of the multiple storage controllers removed from the storage system [this limitation is taught by Viswanatha -- Yet another advantage of the present invention is that user data is protected even when storage controllers or storage devices are removed or swapped out of the storage system by mistake. The present invention maintains metadata including the previous owner for each logical volume to make sure that data reliability is not compromised by a previous storage controller removal or swap operation (¶ 0011) … Controller C, which has been removed from the system 300 due to a previous storage controller 108 replacement or upgrade operation, is the previous owner 416 of LUN 1 … (¶ 0061)];
establishing communication with a remaining storage controller and the upgraded storage controller through the alternative communication path [Each controller 100A, 100B is connected to each logical volume 130 via fiber channel or similar communication paths 140A, 140B. In other words, the first controller 100A is connected to each logical volume 130 via the first communication path 140A. The second controller 100B is connected to each logical volume 130 via the second communication path 140B. Also, the first controller 100A is connected to the second communication path 140B via an alternative path 141A, and in the same way the second controller 100B is connected to the first communication path 140A via an alternative path 141B … (¶ 0058-0059); as shown in figure 20, steps S120-S128, and steps S134; If the inter-controller communication path P1 is normal (S124: YES), and if the communication path 140B to access the storage drive 110 from the temporarily changed responsible controller 100B is normal (S125: YES), and if the processor usage rate of the controller 100B is lower than the threshold value (S126: YES), the controller 100A confirms the change of responsible controller for the logical volume 130 with the high load (S127) … (¶ 0171-0176); Each controller 100A, 100B is connected to each logical volume 130 via fiber channel or similar communication paths 140A, 140B. In other words, the first controller 100A is connected to each logical volume 130 via the first communication path 140A. The second controller 100B is connected to each logical volume 130 via the second communication path 140B. Also, the first controller 100A is connected to the second communication path 140B via an alternative path 141A, and in the same way the second controller 100B is connected to the first communication path 140A via an alternative path 141B … (¶ 0058-0061);
Viswanatha teaches establishing the alternative communication path by “failover” -- FIG. 5b is a block diagram illustrating storage controller B failure in accordance with embodiments of the present invention. FIG. 5c is a block diagram illustrating storage controller B failover in accordance with embodiments of the present invention (¶ 0024-0025); Referring now to FIG. 5b, a block diagram illustrating storage controller B 108b failure in accordance with embodiments of the present invention is shown. Storage controller B 108b has experienced an internal malfunction, resulting in loss of heartbeat 336b to storage controller A 108a. Referring now to FIG. 5c, a block diagram illustrating storage controller B 108b failover in accordance with embodiments of the present invention is shown. Storage controller A 108a, observing the loss of heartbeat 336b, takes over the LUNs 328 where storage controller B 108b was the current owner 408, thereby resulting in storage controller A 108a now being the current owner 408 of all four LUNs 328a, 328b, 328c, and 328d (¶ 0070-0071)].
replacing the remaining storage controller with another upgraded controller [a storage controller with a high load is replaced with a storage controller with a light load -- In one aspect of the present invention, each controller monitors the load on storage devices under its own control, and when a high load storage device is detected having a load equal to or greater than a threshold value that is set in advance, control of the high load storage device is entrusted to the connection destination controller connected via the inter-device communication path (¶ 0022); The following is an explanation of the third embodiment based on FIGS. 18 through 20. In the present embodiment, the load within the storage control devices 10, 20 is dispersed … On the other hand, if the processor usage rate is higher than the threshold value (S122: NO), a high load state has occurred in the logical volume 130 that is the subject of the command. Therefore, the controller 100A temporarily changes the responsible controller for the logical volume 130 with the high load to the other controller 100B within the same basic housing (S123) … The present embodiment configured in this way has the same effect as the first embodiment described previously. In addition, in the present embodiment, in the mutually connected storage control devices 10, 20, the controller responsible for a logical volume with a high load can be automatically changed. In this way, the processors of the storage control devices 10, 20 can be effectively utilized, and the reduction in responsiveness can be minimized (¶ 0162-0177);
Viswanatha also teaches this limitation -- Yet another advantage of the present invention is that user data is protected even when storage controllers or storage devices are removed or swapped out of the storage system by mistake. The present invention maintains metadata including the previous owner for each logical volume to make sure that data reliability is not compromised by a previous storage controller removal or swap operation (¶ 0011) … Controller C, which has been removed from the system 300 due to a previous storage controller 108 replacement or upgrade operation, is the previous owner 416 of LUN 1 … (¶ 0061)]; and
reestablishing communication between the upgraded controllers over the first communication path [If there is a fault on the inter-device communication path NPA (S130: NO), or if there is a fault on the communication path 240A for accessing the storage drive 210 (S131: NO), or if the processor usage rate of the controller 200A is greater than the threshold value (S132: NO), the controller 100A restores the original controller (in this case, the controller 100A) to be the controller responsible for the logical volume 130 with the high load (S135) (¶ 0176);
Viswanatha also teaches reestablishing communication by “failback” -- FIG. 5d is a block diagram illustrating storage controller B failback in accordance with embodiments of the present invention (¶ 0026); Referring now to FIG. 5d, a block diagram illustrating storage controller B 108b failback in accordance with embodiments of the present invention is shown. Failback follows either repair or replacement of storage controller B 108b, and a successful reboot by storage controller B 108b. In a failback operation, storage controller A 108a restores to storage controller B 108b the LUNs 328 where storage controller B 108b is the preferred 412, but not the current 408, owner. Therefore, LUNs 1 328b and 2 328c are restored to storage controller B 108b. LUN metadata 324a and 324b reflect the current owner 408 assignments after the failback operation. Additionally, as part of the failback operation, storage controller A 108a copies the contents of its cache 320a to the storage controller B 108b cache 320b. This ensures that all of the write data has been restored and both storage controller A 108a and storage controller B 108b will be assured of writing back good data to the storage devices 116].
Regarding claim 1, Kurokawa teaches replacing one of the multiple storage controllers with an upgraded storage controller [Kurokawa teaches a storage controller with a high load is replaced with a storage controller with a light load -- In one aspect of the present invention, each controller monitors the load on storage devices under its own control, and when a high load storage device is detected having a load equal to or greater than a threshold value that is set in advance, control of the high load storage device is entrusted to the connection destination controller connected via the inter-device communication path (¶ 0022); The following is an explanation of the third embodiment based on FIGS. 18 through 20. In the present embodiment, the load within the storage control devices 10, 20 is dispersed … On the other hand, if the processor usage rate is higher than the threshold value (S122: NO), a high load state has occurred in the logical volume 130 that is the subject of the command. Therefore, the controller 100A temporarily changes the responsible controller for the logical volume 130 with the high load to the other controller 100B within the same basic housing (S123) … The present embodiment configured in this way has the same effect as the first embodiment described previously. In addition, in the present embodiment, in the mutually connected storage control devices 10, 20, the controller responsible for a logical volume with a high load can be automatically changed. In this way, the processors of the storage control devices 10, 20 can be effectively utilized, and the reduction in responsiveness can be minimized (¶ 0162-0177)], but does not expressively teach the one of the multiple storage controllers removed from the storage system.
However, removing one of the multiple storage controllers from a storage system is well known and a common practice in the art.
For example, Viswanatha specifically teaches removing one of the multiple storage controllers from the storage system [Yet another advantage of the present invention is that user data is protected even when storage controllers or storage devices are removed or swapped out of the storage system by mistake. The present invention maintains metadata including the previous owner for each logical volume to make sure that data reliability is not compromised by a previous storage controller removal or swap operation (¶ 0011) … Controller C, which has been removed from the system 300 due to a previous storage controller 108 replacement or upgrade operation, is the previous owner 416 of LUN 1 … (¶ 0061)].
Therefore, it would have been obvious for one of ordinary skills in the art before the effective filing date of the claimed invention to removing one of the multiple storage controllers from the storage system, as specifically demonstrated by Viswanatha, and to incorporate it into the existing scheme disclosed by Kurokawa, so that it may be repaired of upgraded in a manufacture’s facility.
As to claim 2, Kurokawa in view of Viswanatha teaches The method of claim 1, wherein the first communication path is a direct controller to controller path [Kurokawa -- as shown in figures 1, 3, 8, 15A, 15B, 21, and 22, where the paths P1, P2, NPA, and NPB are all direct controller to controller paths].
As to claim 4, Kurokawa in view of Viswanatha teaches The method of claim 1 wherein the method comprises a non-disruptive upgrade of the storage system [Kurokawa -- a storage controller with a high load is replaced with a storage controller with a light load -- In one aspect of the present invention, each controller monitors the load on storage devices under its own control, and when a high load storage device is detected having a load equal to or greater than a threshold value that is set in advance, control of the high load storage device is entrusted to the connection destination controller connected via the inter-device communication path (¶ 0022); The following is an explanation of the third embodiment based on FIGS. 18 through 20. In the present embodiment, the load within the storage control devices 10, 20 is dispersed … On the other hand, if the processor usage rate is higher than the threshold value (S122: NO), a high load state has occurred in the logical volume 130 that is the subject of the command. Therefore, the controller 100A temporarily changes the responsible controller for the logical volume 130 with the high load to the other controller 100B within the same basic housing (S123) … The present embodiment configured in this way has the same effect as the first embodiment described previously. In addition, in the present embodiment, in the mutually connected storage control devices 10, 20, the controller responsible for a logical volume with a high load can be automatically changed. In this way, the processors of the storage control devices 10, 20 can be effectively utilized, and the reduction in responsiveness can be minimized (¶ 0162-0177)].
As to claim 5, Kurokawa in view of Viswanatha teaches The method of claim 1, wherein the upgraded storage controller and the remaining storage controller are unable to communicate through the first communication path [Viswanatha – as shown in figure 5B, where the remaining storage controller (108a) is unable to communicate with the failed storage controller (108b), and thus is also unable to communicate with the replacement/upgraded storage controller, at least until after the communication path is reestablished; Kurokawa – FIG. 15B shows the case where a communication fault has occurred in the inter-device communication path NPA. When a fault occurs, the controller 100A transfers the write data to the controller 200A which is the responsible controller via the other controller 100B within the same basic housing, and stores the write data in the cache memory 204 within the controller 200A, as shown by the broken line in the figure. In other words, the write data is transferred through the path controller 100A.fwdarw.controller 100B.fwdarw.inter-device communication path NPB.fwdarw.controller 200B.fwdarw.controller 200A (¶ 0146); On the other hand, if there is a fault on the communication path P1 (S124: NO), or if there is a fault on the communication path 140B (S125: NO), or if the processor usage rate of the controller 100B is greater than the threshold value (S126: NO), the controller 100B cannot be used as the controller responsible for the logical volume 130 with the high load (¶ 0173)].
As to claim 8, it recites substantially the same limitations as in claim 1, and is rejected for the same reasons set forth in the analysis of claim 1. Refer to “As to claim 1” presented earlier in this Office Action for details.
As to claim 9, it recites substantially the same limitations as in claim 2 and is rejected for the same reasons set forth in the analysis of claim 2. Refer to “As to claim 2” presented earlier in this Office Action for details.
As to claim 11, it recites substantially the same limitations as in claim 4, and is rejected for the same reasons set forth in the analysis of claim 4. Refer to “As to claim 4” presented earlier in this Office Action for details.
As to claim 12, it recites substantially the same limitations as in claim 5, and is rejected for the same reasons set forth in the analysis of claim 5. Refer to “As to claim 5” presented earlier in this Office Action for details.
As to claim 15, it recites substantially the same limitations as in claim 1, and is rejected for the same reasons set forth in the analysis of claim 1. Refer to “As to claim 1” presented earlier in this Office Action for details.
As to claim 16, it recites substantially the same limitations as in claim 2, and is rejected for the same reasons set forth in the analysis of claim 2. Refer to “As to claim 2” presented earlier in this Office Action for details.
4. Claims 3, 6-7, 10, 13-14, and 17-19 are rejected under 35 U.S.C. 103 as being unpatentable over Kurokawa in view of Viswanatha, and in view of Tamir et al. (US Patent Application Publication 2015/0012735, hereinafter Tamir)
Regarding claim 1, Kurokawa in view of Viswanatha teaches PCIe communication protocol [Kurokawa -- The inter-controller communication paths P1, P2 and the inter-device communication paths NPA, NPB can be configured as for example serial interfaces such as PCI (Peripheral Component Interconnect) Express. In this way, the command transmission function provided in the host side protocol chip can be effectively utilized, and it is possible to reduce the overhead during transfer (¶ 0064)], does not expressively teach multiple communication standards.
However, multiple communication standards are well known and commonly used in the art.
For example, Tamir specifically teaches multiple communication standards [Storage controllers maintained at these remotely accessible storage servers are also being designed to operate in compliance with relatively new interconnect communication protocols that may work well with RDMA. Further, these storage controllers may control access to hard disk drives (HDDs) or solid state drives (SSDs). The SSDs may include, but are not limited to, various types of non-volatile memory such as 3-dimensional cross-point memory, flash memory, ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, polymer memory, nanowire, ferroelectric transistor random access memory (FeTRAM or FeRAM), nanowire or electrically erasable programmable read-only memory (EEPROM). In some examples, access to HDDs or SSDs may include use of interconnect communication protocols described in industry standards or specifications (including progenies or variants) such as the Peripheral Component Interconnect (PCI) Express Base Specification, revision 3.0, published in November 2010 ("PCI Express" or "PCIe") and/or use of types of controller interfaces for PCIe based SSDs such as the Non-Volatile Memory Express (NVMe) Specification, revision 1.1, published in October 2012 (¶ 0017)].
Therefore, it would have been obvious for one of ordinary skills in the art before the effective filing date of the claimed invention to adopt multiple communication standards, as specifically demonstrated by Tamir, and to incorporate it into the existing scheme disclosed by Kurokawa in view of Viswanatha, in order to also support NVMe interface, in addition to PCI (Peripheral Component Interconnect) Express.
As to claim 6, Kurokawa in view of Viswanatha & Tamir teaches The method of claim 1, wherein the alternative communication path comprises an inter-controller remote direct memory access (RDMA) connection over non-volatile memory express (NVMe) [Tamir -- Examples are disclosed for remotely initializing or booting a client or host device. In some examples, a network (NW) input/output (I/O) device coupled to a host device may connect to a remote server via a NW communication link. For these examples, modules of the network I/O device may establish a control path to a non-volatile memory express (NVMe) controller maintained at the remote server using a remote direct memory access (RDMA) protocol. Properties of a storage device controlled by the NVMe controller as well has an RDMA service tag (STag) to indicate allocated portions of the storage device may be obtained. A system basic I/O system (BIOS) may be capable of using the RDMA STag to access the storage device and load an operating system (OS) kernel and one or more device drivers to remotely boot the host device. Other examples are described and claimed (abstract)].
As to claim 7, Kurokawa in view of Viswanatha & Tamir teaches The method of claim 6, wherein the alternative communication path limits the RDMA connection over NVMe capability to a namespace shared by respective controllers [Tamir -- As another example, one or more queue elements 116 may command that NVMe controller 112 perform one or more read operations involving storage 150 and/or mass storage 156. Therefore, one or more commands 105 also may include and/or specify one or more locations (e.g., Namespaces) in storage 150 and/or mass storage 156 from which NVMe controller 112 is to read data 199, as a result of executing one or more queue elements 116 (¶ 0046); In some examples, the logic and/or features for execution by circuitry 321-1 may also establish a control path to NVMe controller 354 maintained at server 350. For these examples, an RDMA protocol such as iWARP, Infiniband, Ethernet, TCP/IP or RoCE may be used to establish the control path to NVMe controller 354 in a similar manner as described above for establishing a control path to NVMe controller 112 for FIG. 1. Once the control path is established, the logic and/or features may then be capable of discovering one or more properties for storage device(s) 356. The one or more properties may include, but are not limited to, storage device properties such as number of storage devices, type(s) of memory for each storage device, available memory capacity or access rights (e.g., read only memory (ROM) or read/write (R/W) memory), directory information or share names (¶ 0074); Alternatively or additionally, without departing from the above examples, NW I/O device 108 may include and/or be associated with a shared receive queue (not shown) to receive, for example, commands 105 from multiple clients 10. NW I/O device 108 may be capable of substituting one or more appropriate server buffer addresses, values, and/or other information into one or more portions (e.g., queue elements 116, values 201, indicators 181, and/or other information) of the received commands 105 to permit sharing of the structures in the one or more command interfaces 110 between or among multiple clients 10, without resulting in contention or other degradation in performance. In this arrangement, the clients may not be provided and/or utilize one or more STags to the storage controller's command queue and/or doorbell, and writing to these structures may be performed by the server's NW I/O device 108. Advantageously, this may permit multiple clients 10 that may be associated with and/or utilize the shared receive queue to utilize and/or share the same storage controller command queue, doorbell, and/or other structures (¶ 0065)].
As to claim 10, it recites substantially the same limitations as in claim 3, and is rejected for the same reasons set forth in the analysis of claim 3. Refer to “As to claim 3” presented earlier in this Office Action for details.
As to claim 13, it recites substantially the same limitations as in claim 6, and is rejected for the same reasons set forth in the analysis of claim 6. Refer to “As to claim 6” presented earlier in this Office Action for details.
As to claim 14, it recites substantially the same limitations as in claim 7, and is rejected for the same reasons set forth in the analysis of claim 7. Refer to “As to claim 7” presented earlier in this Office Action for details.
As to claim 17, it recites substantially the same limitations as in claim 3, and is rejected for the same reasons set forth in the analysis of claim 3. Refer to “As to claim 3” presented earlier in this Office Action for details.
As to claim 18, it recites substantially the same limitations as in claim 6, and is rejected for the same reasons set forth in the analysis of claim 6. Refer to “As to claim 6” presented earlier in this Office Action for details.
As to claim 19, it recites substantially the same limitations as in claim 7, and is rejected for the same reasons set forth in the analysis of claim 7. Refer to “As to claim 7” presented earlier in this Office Action for details.
5. Claim 20 is rejected under 35 U.S.C. 103 as being unpatentable over Kurokawa in view of Viswanatha, and in view of Marripudi et al. (US Patent Application Publication 2018/0052745, hereinafter Marripudi)
Regarding claim 20, Kurokawa in view of Viswanatha does not teach dual-port NVMe devices.
However, dual-port NVMe devices are well known and commonly used in the art.
For example, Marripudi specifically teaches dual-port NVMe devices [In the example shown in FIG. 1B, four server nodes 20, with 64 PCIe 3.0 lanes per node, are connected to twenty four dual-port NVMe SSDs arranged into four sets of six drives each. Each of the twenty four dual-port NVMe SSDs has two endpoints (two “SSD endpoints”), where each endpoint can be assigned to any one of the server nodes. For example, each of the end points of the SSDs in the first set of data storage devices 30A may be assigned to the first server node 20A. Using PCIe 3.0, the system shown in FIG. 1B can deliver an end-to-end system performance profile of 96 GB/s user data throughput (96 lanes of PCIe 3.0 bandwidth) and high availability (full performance access to all of the SSDs is maintained in the event of a single serve node failure) … (¶ 0060-0065)].
Therefore, it would have been obvious for one of ordinary skills in the art before the effective filing date of the claimed invention to adopt dual-port NVMe devices, as specifically demonstrated by Marripudi, and to incorporate it into the existing scheme disclosed by Kurokawa in view of Viswanatha, because Marripudi teaches dual-port NVMe offers better configuration flexibility and allows connections to interface and support more devices [A first set of computing resources of the plurality of sets of computing resources may include a first set of data storage devices, each of the first set of data storage devices having a first port directly connected to the first switch via a first resource connection of the plurality of resource connections and a second port directly connected to the second switch via a second resource connection of the plurality of resource connections, and a second set of computing resources of the plurality of sets of computing resources may include a second set of data storage devices, each of the second set of data storage devices having a first port directly connected to the first switch via a third resource connection of the plurality of resource connections and a second port directly connected to the second switch via a fourth resource connection of the plurality of resource connections (¶ 0011)].
Conclusion
6. Claims 1-20 are rejected as explained above.
7. 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.
8. Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHENG JEN TSAI whose telephone number is 571-272-4244. The examiner can normally be reached on Monday-Friday, 9-6.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Reginald Bragdon can be reached on 571-272-4204. 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).
/SHENG JEN TSAI/Primary Examiner, Art Unit 2139