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 .
Claim Objections
Claims 25 objected to because of the following informalities: extra word “is” in the limitation “wherein: the second notification message is further indicates a mapping relationship”. Appropriate correction is required. For the purposes of examination, the phrase “is further indicates” will be interpreted as “further indicates” for claim 25.
Claims 25 objected to because of the following informalities: extra word “the” in the limitation “before the sending the first notification message to the host”. Appropriate correction is required. For the purposes of examination, the phrase “before the sending the” will be interpreted as “before sending the” for claim 34.
Claims 29,30 objected to because of the following informalities: potentially unclear antecedent basis. Appropriate correction is required.
Regarding claims 29,30, the term "the association" in “switching, by the host, the association for communication with the storage system” could be considered ambiguous as two different communication associations have been established at this point in the claim, (the first association and the second association), and the term “the association” could refer to either one. Judging from context of the claims and the specification, it should be obvious that "the association" in claims 29 and 30 should refer to the first association(i.e. the faulty association that was detected earlier in the claim), but the term “the association” could still be interpreted as either one of the communication associations. For the purposes of examination, the term "the association" in “switching, by the host, the association for communication with the storage system” in claims 29,30 will be interpreted as "the first association".
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.
Claim(s) 21,26-31,36-40 is/are rejected under 35 U.S.C. 103 as being unpatentable over WO 2022052953 A1 (Cheng) in view of US 20220171567 A1 (Matosevich). Citations to the disclosure of Cheng are made to the corresponding English-language U.S. family publication, US 20230205654 A1.
Regarding claim 21, Cheng teaches
A method comprising:
sending, by a first node in a storage system,(fig 2:220; par 65 – teaches a host and multiple connections to a storage device 220.) a first response message to a host through a second association in response to a first association between the host and the storage system being faulty, wherein the second association is an association between the first node and the host, and the first response message indicates that a status of an association between the host and the storage system changes;(fig 2:”storage area network(SAN)”, 2220; par 65 – teaches a host and multiple connections to a storage device, including a link monitor 2220, which monitors each link between the host and the storage device. When the link monitor detects that the link is faulty, the link monitor notifies the host using another normal link.; par 66 – teaches that the storage device senses a link fault and actively notifies the host. Fig 3:S302,S303; par 73-75 – teaches collecting faulty link information when failures happen and then sending the fault information to the host.)
receiving, by the first node, a first request message sent by the host, wherein the first request message is configured to request to obtain a description about a faulty association between the host and the storage system;(fig 3:S301; par 68,69 – teaches a host 210 sending a query request for querying faulty link information to a storage device 220, and the query being sent on each link. Fig 3:S303; par 74-75 – teaches collecting faulty link information when failures happen and then sending the fault information to the host on the normal link between the host and the storage device.) and
sending, by the first node, a first response message to the host, wherein the first response message indicates that the first association is in a faulty state.(Fig 3:S303; par 74-75 – teaches collecting faulty link information when failures happen and then sending the fault information to the host on the normal link between the host and the storage device)
However, Cheng does not explicitly teach limitations “a first notification message” and “in response to the first notification message”. Although Cheng’s response message is also sent after detection of the faulty association and includes information indicating the changed association status, Cheng’s response message is not separate from the later response message recited in the claim.
On the other hand, Matosevich teaches,
sending, by a host connectivity management system(fig 1:182; par 42-43 teaches a host connectivity management system, which is dedicated to monitoring the health of the system, and maintaining a model of how to connect everything. Par 13 – teaches that the host connectivity management system could be implemented on one or more of the storage nodes.), a first notification message to a host in response to a first association between the host and the storage system being faulty, and the first notification message indicates that a status of an association between the host and the storage system changes;(fig 1:182, fig 3; par 33,37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures.)
receiving, by the first node, a first request message sent by the host in response to the first notification message, wherein the first request message is configured to request to obtain a description about a faulty association between the host and the storage system;(par 37 – teaches how the host receives the push notification of the status change from the host connectivity management system, and in response to receiving the notification message, the host system issues new discovery requests to obtain updated connection information, handling circumstances where changes in the system resources and/or state would necessitate the host system reconfiguring its connection to storage nodes of the data storage system to optimize.)
Cheng and Matosevich are analogous art because both relate to managing communications between a host and a multipath storage system in response to a failure or change in the state of a storage link, node, or resource. Cheng teaches detecting a faulty host-storage link and returning identification of the faulty link through another normal link in response to a host query. Matosevich teaches first pushing a storage-state-change notification to the host and having the host issue a request for updated connection information in response to that notification.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date to modify Cheng so that the host sends Cheng’s link-fault query request in response to a storage-state-change notification as taught by Matosevich, rather than sending the query requests continuously or periodically. Cheng recognizes this problem in par 71 – where Cheng says that periodic query delivery involves delayed feedback, while continuously delivered queries can cause extra traffic and occupy link resources. The modification to use Matosevich’s push notifications instead of Cheng’s constant requests for pull updates would have predictably improved Cheng by reducing unnecessary query traffic while enabling the host to request and receive Cheng’s specific faulty-link information when a relevant link-state change occurred.
Regarding claim 26, Cheng and Matosevich teaches
The method according to claim 21,
Matosevich further teaches,
wherein: the first association is an association between the host and a second node in the storage system; (Matosevich fig 3; par 42-43 - teaches a host connectivity management system, which is dedicated to monitoring the health of the system, and maintaining a model of how to connect everything. Par 45,47,48 – teaches connection paths between hosts and storage nodes.) and
sending the first notification message to the host through the second association in response to the first association between the host and the storage system being faulty(fig 1:182, fig 3; par 33,37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures.) comprises:
sending, by the first node in response to learning that the second node is in a faulty state, the first notification message to the host being based on a first mapping relationship through the second association,(fig 1:182, fig 3; par 33,37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures.) wherein
the first mapping relationship indicates a mapping relationship between the second node, the first association, and the host.( fig 1:182, fig 3; par 33,37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures. Par 32-35 – teaches discovering storage node endpoints, ports, addresses, and identifiers. Also tracks host connections to storage node ports and uses that inventory to assign or reassign connectivity.)
Regarding claim 27, Cheng and Matosevich teaches
The method according to claim 21,
Cheng further teaches,
wherein: the first association is an association between the host and the first node;(fig 1, fig 2:”storage area network(SAN)”; par 65,69 – teaches a host and multiple connections/a plurality of links to a storage device, including a link monitor 2220, which monitors each link between the host and the storage device. When the link monitor detects that the link is faulty, the link monitor notifies the host using another normal link. Par 75 – teaches unique identification information for each link.) and
the host is associated with the first node separately through the first association and the second association. (fig 1, fig 2:”storage area network(SAN)”; par 65,69 – teaches a host and multiple connections/a plurality of links to a storage device, including a link monitor 2220, which monitors each link between the host and the storage device. When the link monitor detects that the link is faulty, the link monitor notifies the host using another normal link. Par 75 – teaches unique identification information for each link.)
Regarding claim 28, Cheng and Matosevich teaches
The method according to claim 21,
Matosevich further teaches,
wherein each association between the host and the storage system corresponds to a logic controller in a node in the storage system.(par 45,46 – teaches that each port is associated with at least one storage controller of the storage node. Each association or path connects through an assigned port, and each port is associated with at least one storage controller.)
Regarding claim 29, Cheng and Matosevich teaches
The method according to claim 21,
The combination of Cheng and Matosevich further teaches,
further comprising, when the first association between the host and the storage system is faulty:(Matosevich par 37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures.)
receiving, by the host through the second association between the host and the first node, the first notification message sent by the first node, wherein the first notification message indicates that the status of the association between the host and the storage system changes;(Matosevich par 37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures.)
sending, by the host, the first request message to the first node, wherein the first request message is configured to request to obtain the status of the association through which the host accesses the storage system;(Cheng fig 3:S301; par 68,69 – teaches a host 210 sending a query request for querying faulty link information to a storage device 220, and the query being sent on each link. Fig 3:S303; par 74-75 – teaches collecting faulty link information when failures happen and then sending the fault information to the host on the normal link between the host and the storage device.)
receiving, by the host, the first response message sent by the first node;(fig 3:S303; par 74-75 – teaches collecting faulty link information when failures happen and then sending the fault information to the host on the normal link between the host and the storage device) and
in response to the first response message indicating that the first association through which the host accesses the storage system is in the faulty state, switching, by the host, the association for communication with the storage system. (Matosevich par 46 – teaches host multipath drivers that automatically identify redundant I/O paths and automatically reroute I/O to an alternate path when data paths to a given storage node or storage controller fail. Par 25 – teaches that when a primary path becomes unavailable, the host connects to the storage volume using an alternate or redundant path using a technique called multipathing.)
Regarding claim 30, the limitations of claim 30 correspond to the host-side limitations recited in claim 29. Accordingly, Cheng and Matosevich teach the limitations of claim 30 for the same reasons set forth above regarding claim 29.
Regarding claim 31, it is the device implementing the method of claim 21 and is rejected for the same reasons. The additional limitations of claim 31 are taught by Cheng and Matosevich. Specifically,
A storage device as a first node in a storage system, comprising: at least one processor; and a storage medium storing a computer program, wherein the computer program, when executed by the at least one processor, enables the storage device to perform:(Matosevich par 13 – teaches implementing the host connectivity management system on one or more storage nodes. fig 5; par 53 – teaches a node comprising processors 502, system memory 510, and storage resources 516, wherein the processors execute program instructions. Also Cheng fig 7; par 111-115. )
Regarding claims 36,38,39, they are the device implementing the method of claims 26,27,28 and are rejected for the same reasons.
Regarding claim 37, Cheng and Matosevich teaches,
The storage device according to claim 36,
Matosevich further teaches,
wherein the computer program, when executed by the at least one processor, further enables the storage device to perform,(par 13,15 – teaches a host connectivity management system implemented on one or more of the storage nodes.) before sending the first notification message to the host through the second association:( fig 1:182, fig 3; par 33,37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures. Par 15 – teaches the communications network connecting the storage nodes to the hosts.)
receiving the first mapping relationship sent by the second node.(par 32-34 – teaches a state discovery module 220 contained within the host connectivity management system, which monitors the system states/status, including the host system connections to each of the ports of the storage nodes. Par 32-35 – teaches discovering storage node endpoints, ports, addresses, and identifiers. Also tracks host connections to storage node ports and uses that inventory to assign or reassign connectivity.)
Regarding claim 40, Cheng and Matosevich teaches,
The storage device according to claim 31,
Matosevich further teaches,
wherein an association between the storage system and the host is based on a non-volatile memory express NVMe specification.(par 35-36 – teach providing host connection information through a host-discovery service that may be implemented using the NVMe-oF discovery protocol. par 29,19 – teach how NVMe connects the components of the system.)
Claim(s) 22,32 is/are rejected under 35 U.S.C. 103 as being unpatentable over WO 2022052953 A1 (Cheng) and US 20220171567 A1 (Matosevich) as applied to claim 21 above, and further in view of US 20170123659 A1 (Nam) .
Regarding claim 22, Cheng and Matosevich teaches
The method according to claim 21, wherein:
Matosevich further teaches,
the asynchronous event push message indicates, that the status of the association between the host and the storage system changes.( fig 1:182, fig 3; par 37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures. Par 15,21,23,47 – describes various communication protocols for communicating to the hosts.)
However, Cheng and Matosevich does not explicitly teach the first notification message is an asynchronous event request command completion message Asynchronous Event Request command Completion; and the asynchronous event request command completion message indicates, based on a reserved field value.
On the other hand, Nam teaches,
the first notification message is an asynchronous event request command completion message Asynchronous Event Request command Completion;(par 53,54,58 – teaches asynchronous event request commands, which let storage device respond with asynchronous events that are used to inform the host of status, error and health information of the storage device. Nam provides an example of this system in fig 3; par 68-70.) and
the asynchronous event request command completion message indicates, based on a reserved field value, the status, error, and health information of the storage device.(fig 4,6; par 71,79 – teaches reserved bits(i.e. reserved fields) that contain information requested in the event request command. Par 53 – teaches that the asynchronous events are used to inform the host of status, error and health information of the storage device.)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date to combine the fault monitoring and notification system of Cheng and Matosevich with the asynchronous event request and response system of Nam.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination because the asynchronous event request and response system from Nam would have predictably improved Cheng and Matosevich by providing an event message format to communicate the newly defined storage status event, applying a known technique taught by Nam to the similar system of Cheng and Matosevich to improve a similar system in a predictable way.
Regarding claim 32, it is the device implementing the method of claim 22 and is rejected for the same reasons.
Claim(s) 23,33 is/are rejected under 35 U.S.C. 103 as being unpatentable over WO 2022052953 A1 (Cheng) and US 20220171567 A1 (Matosevich) as applied to claim 21 above, and further in view of US 20190294350 A1 (Hahn) .
Regarding claim 23, Cheng and Matosevich teaches
The method according to claim 21,
Cheng further teaches,
wherein: the first request message comprises a get status command, and the get status command is configured to request to obtain a status that records a status of the association between the host and the storage system;(Cheng fig 3:S301, S303; par 68-69,74-75 – teaches a query request for querying faulty link information, and collecting faulty link information when failures happen and then sending the fault information to the host on the normal link between the host and the storage device) and
the first response message comprises a first status, and the first status indicates that the first association is in the faulty state.
However, Cheng and Matosevich does not explicitly teach a log page, as described in limitations “wherein: the first request message comprises a get log page command, and the get log page command is configured to request to obtain a log page that records a status of the association between the host and the storage system; and the first response message comprises a first log page, and the first log page indicates that the first association is in the faulty state.”
On the other hand, Hahn teaches,
the first request message comprises a get log page command, and the get log page command is configured to request to obtain a log page(fig 8A:802; par 120-122– teaches the host controller sending an NVMe Get Log Page command to the memory controller, specifying a requested log page.); and
the first response message comprises a first log page,( fig 8A:806,808; par 122– teaches the host controller sending an NVMe Get Log Page command to the memory controller, specifying a requested log page).
Cheng, Matosevich, and Hahn are analogous art because each relates to communicating storage-system status or operational information from a storage device or storage system to a host. Cheng teaches returning unique identification information corresponding to a faulty host-storage link in response to a host query. Hahn teaches a known NVMe mechanism in which a storage controller records detailed information in a log page, notifies the host of an asynchronous event, receives an NVMe Get Log Page command from the host, and returns the requested log page.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date to implement Cheng’s query and response for faulty-link information using Hahn’s NVMe Get Log Page command and returned log page, so that Cheng’s unique identification information and faulty-link status are recorded in and returned through the requested log page. Such a modification would have used Hahn’s known NVMe log-page retrieval technique for its known purpose of conveying detailed storage-controller information to the host. Hahn explains that a memory-access protocol may not allow the memory controller to issue commands to the host during runtime and therefore teaches using an asynchronous event notification to inform the host that detailed information is available in a log page (Hahn, par 88–89). One of ordinary skill would therefore have been motivated to use Hahn’s host-initiated Get Log Page procedure to retrieve Cheng’s detailed faulty-association information after receiving Matosevich’s state-change notification, thereby using the established NVMe command mechanism to provide the host with the specific information needed to identify the faulty association.
Regarding claim 33, it is the device implementing the method of claim 23 and is rejected for the same reasons.
Claim(s) 24-25,34-35 is/are rejected under 35 U.S.C. 103 as being unpatentable over WO 2022052953 A1 (Cheng) and US 20220171567 A1 (Matosevich) as applied to claim 21 above, and further in view of US 20200379857 A1 (Shah) .
Regarding claim 24, Cheng and Matosevich teaches
The method according to claim 21,
The combination of Cheng and Matosevich further teaches,
wherein: the first association is an association between the host and a second node in the storage system;(Matosevich fig 1:120,110,130,182; par 11,15 – teaches the communications network that connects all the hosts and storage nodes to each other. Par 42-43 teaches a host connectivity management system, which is dedicated to monitoring the health of the system, and maintaining a model of how to connect everything, including the associations between all the hosts and all the storage nodes.) and
before the sending, by the first node, the first notification message to the host(Matosevich fig 1:182, fig 3; par 37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures. Par 13 – teaches that the host connectivity management system could be implemented on one or more of the storage nodes.) through the second association,(Cheng fig 2:”storage area network(SAN)”, 2220; par 65 – teaches a host and multiple connections to a storage device, including a link monitor 2220, which monitors each link between the host and the storage device. When the link monitor detects that the link is faulty, the link monitor notifies the host using another normal link(i.e. the second association.)) the method further comprises:
receiving, by the first node, state information from the second node, wherein the state information indicates that the first association is in the faulty state.(Matosevich par 32-33 – teaches a state discovery module 220 contained within the host connectivity management system, which monitors the system states/status, including the host system connections to each of the ports of the storage nodes.)
However, although Matosevich teaches storage nodes monitoring other storage nodes’ connections to the host, Cheng and Matosevich does not explicitly teach receiving, by the first node, a second notification message from the second node.
On the other hand, Shah teaches,
receiving, by the first node, a second notification message from the second node,(fig 1:112,138,102; par 32,33 – teaches that the failed node 112 generates the asynchronous message 138 to notify the host, a peer node, or a storage controller that a path has failed. Shah also provides a plurality of failover paths the host can use.)
wherein the second notification message indicates that the first association is in the faulty state.(fig 1:112,138,102; par 32,33 – teaches that the failed node 112 generates the asynchronous message 138 to notify the host 102 that a path has failed, and also provides a plurality of failover paths the host can use.)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date to combine the storage array connection monitoring system of Cheng and Matosevich with the storage array connection monitoring system of Shah.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination because Shah’s teaching of having the failing system generate the failure notification would have predictably improved Cheng and Matosevich by detecting failures sooner than periodically requesting updates, as described in Shah par 32 (“As will be appreciated by those skilled in the art, in embodiments where the asynchronous message 138 is generated by the kernel driver associated with the failed node, the asynchronous message 138 can be generated very soon after the time the node failed (e.g., within microseconds, seconds, or minutes). This can result in prompt notification to the host 102 regarding node failure.”), as well as Cheng (par 70,71). The combination would have involved applying a known technique taught by Shah to the similar system of Cheng and Matosevich to improve a similar system in a predictable way.
Regarding claim 25, Cheng, Matosevich, and Shah teaches
The method according to claim 24, wherein:
Cheng, Matosevich, and Shah further teaches,
the second notification message(Shah fig 1:112,138,102; par 32,33 – teaches that the failed node 112 generates the asynchronous message 138 to notify the host 102 that a path has failed, and also provides a plurality of failover paths the host can use.) is further indicates a mapping relationship between the first association and the host;(Matosevich par 32-33 – teaches a state discovery module 220 contained within the host connectivity management system, which monitors the system states/status, including the host system connections to each of the ports of the storage nodes.) and
sending, by the first node, the first notification message to the host(Matosevich fig 1:182, fig 3; par 37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures. Par 13 – teaches that the host connectivity management system could be implemented on one or more of the storage nodes.) through the second association comprises:
sending, by the first node through the second association,(Cheng fig 2:”storage area network(SAN)”, 2220; par 65 – teaches a host and multiple connections to a storage device, including a link monitor 2220, which monitors each link between the host and the storage device. When the link monitor detects that the link is faulty, the link monitor notifies the host using another normal link(i.e. the second association.)) the first notification message to the host indicated by the mapping relationship.(Matosevich fig 1:182, fig 3; par 37 – teaches push notifications to the host system when there are changes in the system resources and/or state, such as changes in fabric configuration or failures. . Par 13 – teaches that the host connectivity management system could be implemented on one or more of the storage nodes.)
Regarding claims 34-35, it is the device implementing the method of claim 24-25 and are rejected for the same reasons.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US 20220300372 A1 - Bert - cited in international search report for querying statuses.
US 20070027974 A1 - Lee - service chain that passes along failure information
US 20040153710 A1 - Fair - Multiple Hierarchal/peer Domain File Server With Domain Based, Cross Domain Cooperative Fault Handling Mechanisms
US 20100180147 A1 - Beeston - link management.
US 20230041089 A1 - Zhang - management server sends a query to query for the connection state of the hot-backup connection.
US 20200244726 A1 - Gupta - messaging system failover
US 11461163 B1 - Aggarwal - remote device error correction
US 20220188256 A1 - Ballard - teaches a mapping of logic controllers to links. Relevant to claim 28
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MICHAEL XU whose telephone number is (571)272-5688. The examiner can normally be reached Monday-Friday 8:00am - 5: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, Bryce Bonzo can be reached at (571) 272-3655. 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.
/MICHAEL XU/Examiner, Art Unit 2113