IP Library › Granted Patent US 12,299,327
Granted Patent B2
US 12,299,327 · App. 17/573,782 · Granted May 13, 2025

Concurrent handling of multiple asynchronous events in a storage system

Inventors: Amit Pundalik Anchi (Bangalore, IN); Rimpesh Patel (Bangalore, IN); Ramprasad Shetty (Southborough, MA); Arieh Don (Newton, MA)
Assignee: Dell Products L.P.
G06F3/0659G06F3/0613G06F3/0653G06F3/0683
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,299,327
App. No.
17/573,782
Granted
May 13, 2025
Kind
B2
Abstract

An apparatus in one embodiment comprises at least one processing device configured to detect a plurality of asynchronous events in a storage system, wherein the storage system is configured to provide respective individual asynchronous event notifications for the detected asynchronous events to a host device in response to receipt of corresponding asynchronous event requests from the host device. The at least one processing device is further configured to determine that multiple ones of the asynchronous events have been detected in the storage system without receipt of respective ones of the corresponding asynchronous event requests from the host device, and to provide to the host device in response to a particular one of the asynchronous event requests received from the host device a summary notification comprising information indicative of the multiple detected asynchronous events. The at least one processing device illustratively comprises at least one storage controller of the storage system.

Claims (37)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to detect a plurality of asynchronous events in a storage system, wherein the storage system is configured to provide respective individual asynchronous event notifications for the detected asynchronous events to a host device in response to receipt of corresponding asynchronous event requests from the host device;

to determine that multiple ones of the detected asynchronous events have been detected in the storage system without receipt of respective ones of the corresponding asynchronous event requests from the host device; and

to provide to the host device in response to a particular one of the asynchronous event requests received from the host device a summary notification comprising information indicative of the multiple ones of the detected asynchronous events;

wherein the detected asynchronous events have respective individual event type indicators associated therewith and the summary notification has a summary event type indicator associated therewith that is different than any of the individual event type indicators of the detected asynchronous events; and

wherein each of the individual and summary event type indicators corresponds to a different log page retrievable by the host device from the storage system.

2. The apparatus of claim 1 wherein the at least one processing device comprises one or more storage controllers of the storage system, the one or more storage controllers being configured to control performance of the detecting, determining and providing in the storage system.

3. The apparatus of claim 1 wherein the asynchronous event requests and the corresponding asynchronous event notifications are configured in accordance with a designated storage access protocol.

4. The apparatus of claim 3 wherein the designated storage access protocol comprises a Non-Volatile Memory Express (NVMe) access protocol.

5. The apparatus of claim 1 wherein the plurality of asynchronous events comprise asynchronous events of different types, including two or more of an error status event, a health status event, a notice event and a vendor specific event, and wherein at least one of the event types comprises a plurality of sub-types.

6. The apparatus of claim 1 wherein the storage system after reporting a first individual asynchronous event notification for a first one of the detected asynchronous events of a given event type is further configured to delay reporting another individual asynchronous event notification for another one of the detected asynchronous events of the given event type until at least such time as the host device clears the reported first individual asynchronous event notification by reading a corresponding log page from the storage system.

7. The apparatus of claim 1 wherein the summary notification comprises at least a summary log page identifier that is utilized by the host device to read a corresponding summary log page from the storage system.

8. The apparatus of claim 7 wherein the summary log page contains information characterizing detected asynchronous events that are at least one of (i) not yet reported by the storage system to the host device and (ii) reported by the storage system to the host device but not yet cleared by the host device.

9. The apparatus of claim 7 wherein the summary log page comprises information characterizing two or more of the detected asynchronous events having a same event type but respective different sub-types within that event type.

10. The apparatus of claim 7 wherein the summary log page comprises information characterizing two or more of the detected asynchronous events of respective different event types.

11. The apparatus of claim 7 wherein the at least one processing device is further configured to receive from the host device a request for the summary log page and to provide the summary log page to the host device in response to the request.

12. The apparatus of claim 1 wherein the summary notification denotes a summary event comprising the multiple ones of the detected asynchronous events.

13. The apparatus of claim 1 wherein the particular one of the asynchronous event requests received from the host device and triggering provision of the summary notification comprises a next one of the asynchronous event requests received after the determination that the multiple ones of the asynchronous events have been detected in the storage system without receipt of respective ones of the corresponding asynchronous event requests from the host device.

14. The apparatus of claim 1 wherein the at least one processing device is further configured to maintain at least one data structure characterizing at least unreported ones of the detected asynchronous events, and to generate the summary notification based at least in part on the unreported ones of the detected asynchronous events characterized by the at least one data structure.

15. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code, when executed by at least one processing device comprising a processor coupled to a memory, causes the at least one processing device:

to detect a plurality of asynchronous events in a storage system, wherein the storage system is configured to provide respective individual asynchronous event notifications for the detected asynchronous events to a host device in response to receipt of corresponding asynchronous event requests from the host device;

to determine that multiple ones of the asynchronous events have been detected in the storage system without receipt of respective ones of the corresponding asynchronous event requests from the host device; and

to provide to the host device in response to a particular one of the asynchronous event requests received from the host device a summary notification comprising information indicative of the multiple ones of the detected asynchronous events;

wherein the detected asynchronous events have respective individual event type indicators associated therewith and the summary notification has a summary event type indicator associated therewith that is different than any of the individual event type indicators of the detected asynchronous events; and

wherein each of the individual and summary event type indicators corresponds to a different log page retrievable by the host device from the storage system.

16. The computer program product of claim 15 wherein the summary notification comprises at least a summary log page identifier that is utilized by the host device to read a corresponding summary log page from the storage system.

17. The computer program product of claim 16 wherein the summary log page contains information characterizing detected asynchronous events that are at least one of (i) not yet reported by the storage system to the host device and (ii) reported by the storage system to the host device but not yet cleared by the host device.

18. A method comprising:

detecting a plurality of asynchronous events in a storage system, wherein the storage system is configured to provide respective individual asynchronous event notifications for the detected asynchronous events to a host device in response to receipt of corresponding asynchronous event requests from the host device;

determining that multiple ones of the asynchronous events have been detected in the storage system without receipt of respective ones of the corresponding asynchronous event requests from the host device; and

providing to the host device in response to a particular one of the asynchronous event requests received from the host device a summary notification comprising information indicative of the multiple ones of the detected asynchronous events;

wherein the detected asynchronous events have respective individual event type indicators associated therewith and the summary notification has a summary event type indicator associated therewith that is different than any of the individual event type indicators of the detected asynchronous events; and

wherein each of the individual and summary event type indicators corresponds to a different log page retrievable by the host device from the storage system.

19. The method of claim 18 wherein the summary notification comprises at least a summary log page identifier that is utilized by the host device to read a corresponding summary log page from the storage system.

20. The method of claim 19 wherein the summary log page contains information characterizing detected asynchronous events that are at least one of (i) not yet reported by the storage system to the host device and (ii) reported by the storage system to the host device but not yet cleared by the host device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2022
From: ANCHI, AMIT PUNDALIK; PATEL, RIMPESH; SHETTY, RAMPRASAD; DON, ARIEH
To: DELL PRODUCTS L.P.
Reel/Frame 058628/0481 →
Continuity (1)
Related Publication 20230221890A1 · Jul 13, 2023
References Cited (128)
US 6567397B1 · Campana et al. · 2003 [cited by applicant]
US 6687746B1 · Shuster et al. · 2004 [cited by applicant]
US 6697875B1 · Wilson · 2004 [cited by applicant]
US 7275103B1 · Thrasher et al. · 2007 [cited by applicant]
US 7454437B1 · Lavallee et al. · 2008 [cited by applicant]
US 7617292B2 · Moore et al. · 2009 [cited by applicant]
US 7668981B1 · Nagineni et al. · 2010 [cited by applicant]
US 7770053B1 · Bappe et al. · 2010 [cited by applicant]
US 7809912B1 · Raizen et al. · 2010 [cited by applicant]
US 7818428B1 · Lavallee et al. · 2010 [cited by applicant]
US 7890664B1 · Tao et al. · 2011 [cited by applicant]
US 7904681B1 · Bappe et al. · 2011 [cited by applicant]
US 7925872B2 · Lai et al. · 2011 [cited by applicant]
US 8108582B2 · Ambikapathy · 2012 [cited by examiner]
US 8250256B2 · Ghosalkar et al. · 2012 [cited by applicant]
US 8285825B1 · Nagaraj et al. · 2012 [cited by applicant]
US 8825919B1 · Lim et al. · 2014 [cited by applicant]
US 8832334B2 · Okita · 2014 [cited by applicant]
US 8874746B1 · Gonzalez · 2014 [cited by applicant]
US 9026694B1 · Davidson et al. · 2015 [cited by applicant]
US 9201803B1 · Derbeko et al. · 2015 [cited by applicant]
US 9400611B1 · Raizen · 2016 [cited by applicant]
US 9430368B1 · Derbeko et al. · 2016 [cited by applicant]
US 9594780B1 · Esposito et al. · 2017 [cited by applicant]
US 9647933B1 · Tawri et al. · 2017 [cited by applicant]
US 9672160B1 · Derbeko et al. · 2017 [cited by applicant]
US 9778852B1 · Marshak et al. · 2017 [cited by applicant]
US 10289325B1 · Bono · 2019 [cited by applicant]
US 10353714B1 · Gokam et al. · 2019 [cited by applicant]
US 10439878B1 · Tah et al. · 2019 [cited by applicant]
US 10474367B1 · Mallick et al. · 2019 [cited by applicant]
US 10476960B1 · Rao et al. · 2019 [cited by applicant]
US 10521369B1 · Mallick et al. · 2019 [cited by applicant]
US 10606496B1 · Mallick et al. · 2020 [cited by applicant]
US 10637917B2 · Mallick et al. · 2020 [cited by applicant]
US 10652206B1 · Pusalkar et al. · 2020 [cited by applicant]
US 10754572B2 · Kumar et al. · 2020 [cited by applicant]
US 10757189B2 · Mallick et al. · 2020 [cited by applicant]
US 10764371B2 · Rao et al. · 2020 [cited by applicant]
US 10789006B1 · Gokam et al. · 2020 [cited by applicant]
US 10817181B2 · Mallick et al. · 2020 [cited by applicant]
US 10838648B2 · Sharma et al. · 2020 [cited by applicant]
US 10880217B2 · Mallick et al. · 2020 [cited by applicant]
US 10884935B1 · Doddaiah · 2021 [cited by applicant]
US 10911402B2 · Pusalkar et al. · 2021 [cited by applicant]
US 20020023151A1 · Iwatani · 2002 [cited by applicant]
US 20020103923A1 · Cherian et al. · 2002 [cited by applicant]
US 20040010563A1 · Forte et al. · 2004 [cited by applicant]
US 20060026346A1 · Kadoiri et al. · 2006 [cited by applicant]
US 20060195850A1 · Knight · 2006 [cited by examiner]
US 20060277383A1 · Hayden et al. · 2006 [cited by applicant]
US 20070073633A1 · Gallant · 2007 [cited by examiner]
US 20070174849A1 · Cheung et al. · 2007 [cited by applicant]
US 20080043973A1 · Lai et al. · 2008 [cited by applicant]
US 20080201458A1 · Salli · 2008 [cited by applicant]
US 20080301332A1 · Butler et al. · 2008 [cited by applicant]
US 20080307435A1 · Rehman · 2008 [cited by examiner]
US 20090259749A1 · Barrett et al. · 2009 [cited by applicant]
US 20100054762A1 · Kim · 2010 [cited by examiner]
US 20100313063A1 · Venkataraja et al. · 2010 [cited by applicant]
US 20110197027A1 · Balasubramanian et al. · 2011 [cited by applicant]
US 20110296230A1 · Chen et al. · 2011 [cited by applicant]
US 20120102369A1 · Hiltunen et al. · 2012 [cited by applicant]
US 20120246345A1 · Contreras et al. · 2012 [cited by applicant]
US 20130117766A1 · Bax et al. · 2013 [cited by applicant]
US 20130339551A1 · Flanagan et al. · 2013 [cited by applicant]
US 20140105068A1 · Xu · 2014 [cited by applicant]
US 20150222705A1 · Stephens · 2015 [cited by applicant]
US 20150242134A1 · Takada et al. · 2015 [cited by applicant]
US 20160092136A1 · Balakrishnan et al. · 2016 [cited by applicant]
US 20160117113A1 · Li et al. · 2016 [cited by applicant]
US 20160335003A1 · Ahmed et al. · 2016 [cited by applicant]
US 20170132169A1 · Nelogal · 2017 [cited by examiner]
US 20170235507A1 · Sinha et al. · 2017 [cited by applicant]
US 20170286205A1 · Jeong · 2017 [cited by examiner]
US 20180189635A1 · Olarig et al. · 2018 [cited by applicant]
US 20180253256A1 · Bharadwaj · 2018 [cited by applicant]
US 20180317101A1 · Koue · 2018 [cited by applicant]
US 20190095299A1 · Liu et al. · 2019 [cited by applicant]
US 20190108888A1 · Sarkar et al. · 2019 [cited by applicant]
US 20190250845A1 · Kabra · 2019 [cited by examiner]
US 20190334987A1 · Mallick et al. · 2019 [cited by applicant]
US 20200021653A1 · Rao et al. · 2020 [cited by applicant]
US 20200089609A1 · Colline · 2020 [cited by examiner]
US 20200097203A1 · Mallick et al. · 2020 [cited by applicant]
US 20200106698A1 · Rao et al. · 2020 [cited by applicant]
US 20200110552A1 · Kumar et al. · 2020 [cited by applicant]
US 20200112608A1 · Patel et al. · 2020 [cited by applicant]
US 20200192588A1 · Kumar et al. · 2020 [cited by applicant]
US 20200204475A1 · Mallick et al. · 2020 [cited by applicant]
US 20200204495A1 · Mallick et al. · 2020 [cited by applicant]
US 20200213274A1 · Pusalkar et al. · 2020 [cited by applicant]
US 20200241890A1 · Mallick et al. · 2020 [cited by applicant]
US 20200310690A1 · Annavaram · 2020 [cited by examiner]
US 20200314218A1 · Kumar et al. · 2020 [cited by applicant]
US 20200348860A1 · Mallick et al. · 2020 [cited by applicant]
US 20200348861A1 · Marappan et al. · 2020 [cited by applicant]
US 20200348869A1 · Gokam · 2020 [cited by applicant]
US 20200349094A1 · Smith et al. · 2020 [cited by applicant]
US 20200363985A1 · Gokam et al. · 2020 [cited by applicant]
US 20200372401A1 · Mallick et al. · 2020 [cited by applicant]
US 20210019054A1 · Anchi et al. · 2021 [cited by applicant]
US 20210026551A1 · Tidke et al. · 2021 [cited by applicant]
US 20210026650A1 · Rao et al. · 2021 [cited by applicant]
US 20210157502A1 · Rao et al. · 2021 [cited by applicant]
US 20210181965A1 · Anchi et al. · 2021 [cited by applicant]
US 20220300174A1 · Bert · 2022 [cited by examiner]
US 20230221890A1 · Anchi · 2023 [cited by examiner]
CN 103677927B · 2017 [cited by applicant]
EP 1117028A2 · 2001 [cited by applicant]
EP 2667569A1 · 2013 [cited by applicant]
WO PCTUS2019052549 · 2019 [cited by applicant]
WO PCTUS2019053204 · 2019 [cited by applicant]
WO PCTUS2019053473 · 2019 [cited by applicant]
WO PCTUS2019067144 · 2020 [cited by applicant]
Kris Piepho, “Dell EMC SC Series Storage: Microsoft Multipath I/O,” Dell EMC Best Practices, Jan. 2017, 57 pages. [cited by applicant]
NVM Express, “NVM Express, Revision 1.3,” NVM Express, May 1, 2017, 282 pages. [cited by applicant]
Vmware, “Multipathing Configuration for Software iSCSI Using Port Binding,” Technical White Paper, Apr. 25, 2012, 15 pages. [cited by applicant]
Dell EMC, “Dell EMC SC Series Storage: Microsoft Multipath I/O,” Dell EMC Engineering, Jun. 2017, 56 pages. [cited by applicant]
Dell EMC, “Dell EMC PowerPath Family: PowerPath and PowerPath/VE Multipathing,” Data Sheet, 2017, 3 pages. [cited by applicant]
EMC, “EMC PowerPath and PowerPath/VE Family for Windows,” Installation and Administration Guide, Oct. 2018, 102 pages. [cited by applicant]
EMC, “EMC Powerpath Load Balancing and Failover”, Comparison with native MPIO operating system solutions, Feb. 2011, 28 pages. [cited by applicant]
Dell EMC, “PowerMax OS,” Dell EMC PowerMax Family Product Guide, May 2019, 192 pages. [cited by applicant]
Dell EMC, “Dell EMC SC Series Storage and Microsoft Multipath I/O,” CML 1004, Jul. 2018, 36 pages. [cited by applicant]
Vmware, Inc. “VMware VMFS Volume Management,” 2009, 8 pages. [cited by applicant]
Dell EMC, “Dell EMC Unity: Virtualization Integration,” Technical White Paper, Oct. 2019, 39 pages. [cited by applicant]
Dell EMC, “Dell EMC PowerMax: iSCSI Implementation for Dell EMC Storage Arrays Running PowerMaxOS,” Technical White Paper, Sep. 2019, 35 pages. [cited by applicant]
NVM Express, “NVM Express Base Specification, Revision 2.0a,” NVM Express, Jul. 23, 2021, 454 pages. [cited by applicant]