IP Library Granted Patent US 12,730,791
Granted Patent B2
US 12,730,791 · App. 19/024,027 · Granted Sep 8, 2026

Coordinating storage operations between storage nodes of a storage system

Inventors: Hari Kannan (Sunnyvale, CA); Ying Gao (San Jose, CA); Boris Feigin (San Francisco, CA); Robert Lee (Pebble Beach, CA)
Assignee: EVERPURE, INC.
G06F16/2219G06F16/13G06F16/907
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,730,791
App. No.
19/024,027
Granted
Sep 8, 2026
Kind
B2
Abstract

One or more operations to be performed by a storage system are identified by a first storage node having a processing device and one or more authorities that determine types of erasure coding applied to data stored in the storage system. One or more instructions are transmitted to a second storage node to perform the one or more storage operations, wherein the one or more instructions cause the one or more operations to be performed by the second storage node.

Claims (35)

1 . A storage system, comprising:

a first storage node comprising a processing device and one or more authorities that determine types of erasure coding applied to data stored in the storage system, the processing device configured to:

identify one or more operations to be performed by the storage system; and

transmit one or more instructions to a second storage node to perform the one or more storage operations, wherein the one or more instructions cause the one or more operations to be performed by the second storage node.

2 . The storage system of claim 1 , wherein the one or more storage operations are further performed by a set of device hosts of the second storage node and the set of device hosts manage non-volatile memory of the second storage node.

3 . The storage system of claim 1 , wherein the processing device is further to:

identify the second storage node based on data stored on the second storage node being used by at least one of the one or more storage operations.

4 . The storage system of claim 1 , wherein the processing device is further to:

receive an indication from the second storage node that the one or more storage operations should be performed, wherein the one or more storage operations are identified in response to receiving the indication.

5 . The storage system of claim 1 , wherein to transmit the one or more instructions, the processing device is further to:

determine a set of addresses for data associated with the one or more storage operations that is stored in non-volatile memory of the second storage node; and

transmit the set of addresses to the second storage node.

6 . The storage system of claim 1 , wherein the second storage node has less central processing unit (CPU) processing power than the first storage node.

7 . The storage system of claim 1 , wherein the second storage node lacks authorities.

8 . The storage system of claim 1 , wherein the one or more operations comprise garbage collection operations for non-volatile memory of the second storage node.

9 . The storage system of claim 1 , wherein the one or more operations comprise reconstruction operations for data stored in non-volatile memory of the second storage node.

10 . The storage system of claim 1 , wherein the one or more operations comprise compression operations for the data stored in non-volatile memory of the second storage node.

11 . A method, comprising:

identifying, by a first storage node comprising a processing device and one or more authorities that determine types of erasure coding applied to data stored in a storage system, one or more operations to be performed by the storage system; and

transmitting one or more instructions to a second storage node to perform the one or more storage operations, wherein the one or more instructions cause the one or more operations to be performed by the second storage node.

12 . The method of claim 11 , wherein the one or more storage operations are further performed by a set of device hosts of the second storage node and the set of device hosts manage non-volatile memory of the second storage node.

13 . The method of claim 11 , further comprising:

identifying the second storage node based on data stored on the second storage node being used by at least one of the one or more storage operations.

14 . The method of claim 11 , further comprising:

receiving an indication from the second storage node that the one or more storage operations should be performed, wherein the one or more storage operations are identified in response to receiving the indication.

15 . The method of claim 11 , wherein transmitting the one or more instructions further comprises:

determining a set of addresses for data associated with the one or more storage operations that is stored in non-volatile memory of the second storage node; and

transmitting the set of addresses to the second storage node.

16 . The method of claim 11 , wherein the second storage node has less central processing unit (CPU) processing power than the first storage node.

17 . The method of claim 11 , wherein the second storage node lacks authorities.

18 . The method of claim 11 , wherein the one or more operations comprise garbage collection operations for non-volatile memory of the second storage node.

19 . The method of claim 11 , wherein the one or more operations comprise reconstruction operations for data stored in non-volatile memory of the second storage node.

20 . A non-transitory computer readable storage medium storing instructions which, when executed, cause a processing device of a first storage node to:

identify, by the first storage node comprising one or more authorities that determine types of erasure coding applied to data stored in a storage system, one or more operations to be performed by the storage system; and

transmitting one or more instructions to a second storage node to perform the one or more storage operations, wherein the one or more instructions cause the one or more operations to be performed by the second storage node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2025
From: KANNAN, HARI; GAO, YING; FEIGIN, BORIS; LEE, ROBERT
To: PURE STORAGE, INC.
Reel/Frame 069910/0655 →
Continuity (5)
Continuation 18177057 · Mar 1, 2023
Continuation In Part 18084339 · Dec 19, 2022
Continuation 16994332 · Aug 14, 2020
Continuation 14871833 · Sep 30, 2015
Related Publication 20250156387A1 · May 15, 2025
References Cited (50)
US 6400903B1 · Conoval · 2002 [cited by examiner]
US 7801894B1 · Bone · 2010 [cited by examiner]
US 8261016B1 · Goel · 2012 [cited by examiner]
US 8527544B1 · Colgrove · 2013 [cited by examiner]
US 8719540B1 · Miller · 2014 [cited by examiner]
US 8799746B2 · Baker · 2014 [cited by examiner]
US 8838541B2 · Camble · 2014 [cited by examiner]
US 8935203B1 · Brooker · 2015 [cited by examiner]
US 9361047B2 · Biederman · 2016 [cited by examiner]
US 9378088B1 · Piszczek · 2016 [cited by examiner]
US 9426522B2 · Gao · 2016 [cited by examiner]
US 9552248B2 · Miller · 2017 [cited by examiner]
US 9575846B2 · Tian · 2017 [cited by applicant]
US 9600203B2 · Wei et al. · 2017 [cited by applicant]
US 9665428B2 · Vairavanathan et al. · 2017 [cited by applicant]
US 9697171B2 · Baptist · 2017 [cited by examiner]
US 9823969B2 · Slik et al. · 2017 [cited by applicant]
US 9830221B2 · Slik et al. · 2017 [cited by applicant]
US 9910742B1 · Faibish et al. · 2018 [cited by applicant]
US 10146787B2 · Bashyam · 2018 [cited by examiner]
US 10761779B2 · Trika et al. · 2020 [cited by applicant]
US 12019515B2 · Hong · 2024 [cited by applicant]
US 20040088297A1 · Coates et al. · 2004 [cited by applicant]
US 20050193192A1 · Sakazaki · 2005 [cited by examiner]
US 20060037018A1 · Fang · 2006 [cited by examiner]
US 20080313241A1 · Li et al. · 2008 [cited by applicant]
US 20110029840A1 · Ozzie et al. · 2011 [cited by applicant]
US 20110314346A1 · Vas · 2011 [cited by examiner]
US 20120011398A1 · Eckhardt · 2012 [cited by examiner]
US 20120191912A1 · Kadatch et al. · 2012 [cited by applicant]
US 20120260055A1 · Murase · 2012 [cited by examiner]
US 20130339818A1 · Baker · 2013 [cited by examiner]
US 20150355857A1 · Ikegaya · 2015 [cited by examiner]
US 20160142485A1 · Mitkar et al. · 2016 [cited by applicant]
US 20160357440A1 · Wang et al. · 2016 [cited by applicant]
US 20170046227A1 · Fan et al. · 2017 [cited by applicant]
US 20170109352A1 · Aronovich et al. · 2017 [cited by applicant]
US 20170109385A1 · Aronovich et al. · 2017 [cited by applicant]
US 20170126470A1 · Bernat · 2017 [cited by examiner]
US 20170155713A1 · Powell et al. · 2017 [cited by applicant]
US 20170242770A1 · Sangamkar et al. · 2017 [cited by applicant]
US 20180074748A1 · Makin et al. · 2018 [cited by applicant]
US 20180081562A1 · Vasudevan · 2018 [cited by applicant]
US 20180357140A1 · Xiang et al. · 2018 [cited by applicant]
US 20220156114A1 · Nagpal et al. · 2022 [cited by applicant]
US 20230281177A1 · Kannan · 2023 [cited by examiner]
US 20240296119A1 · Kirkpatrick et al. · 2024 [cited by applicant]
JP 2014511703A · 2014 [cited by examiner]
Frakes Dan, “Up close with Mountain Lion: Power Nap (Frakes, Dan, Working Mac—Up close with Mountain Lion: Power Nap, Macworld.com,” Aug. 1, 2012, pp. 1-6. [cited by applicant]
Wong T.M., et al., “Verifiable Secret Redistribution for Archive Systems,” Proceedings on First International IEEE Security in Storage Workshop (SISW'02), IEEE Xplore, Dec. 2002, 12 pages, DOI: 10.1109/SISW.2002.1183515. [cited by applicant]