IP Library › Granted Patent US 12,248,690
Granted Patent B2
US 12,248,690 · App. 17/850,984 · Granted Mar 11, 2025

Offloaded device-driven erasure coding

Inventors: Rekha Pitchumani (Oak Hill, VA); Yang Seok Ki (Palo Alto, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F3/064G06F3/0619G06F3/0652G06F3/067G06F3/0689G06F11/1448G06F11/2089
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,248,690
App. No.
17/850,984
Granted
Mar 11, 2025
Kind
B2
Abstract

A method for storing data may include receiving user data at a group of storage devices, wherein the storage devices are interconnected, erasure coding the user data into redundancy blocks at the group of storage devices, and storing the redundancy blocks on at least two of the storage devices. The erasure encoding may be distributed among at least two of the storage devices. The redundancy blocks may be arranged in reliability groups. The redundancy blocks may be grouped by the storage devices independently of the partitioning of the user data by the user. The method may further include recovering data based on redundancy blocks. A storage device may include a storage medium, a network interface configured to communicate with one or more other storage devices, and a storage processing unit configured to erasure code user data into redundancy blocks cooperatively with the one or more other storage devices.

Claims (34)

1. A method for storing data comprising:

receiving, using a network fabric, user data at two or more storage devices that are connected to the network fabric, wherein the two or more devices comprise two or more storage devices;

dividing, based on the receiving, using logic at one or more of the two or more devices, the user data into blocks comprising erasure coded data; and

storing at least a portion of the blocks on at least one of the two or more storage devices;

wherein the erasure coded data is based at least in part on a Reed-Solomon coding algorithm.

2. The method of claim 1 , wherein the two or more storage devices comprise one or more solid state storage devices, and wherein the two or more storage devices are connected to the network fabric through at least one network interface element, the network interface element being configured to support an NVMe-oF protocol.

3. The method of claim 2 , wherein:

the erasure coded data comprises at least one of a parity block or a parity chunk; and

the blocks are arranged by a storage management element.

4. The method of claim 3 , wherein at least one of the one or more solid state storage devices comprises a NAND flash storage device and a DRAM device.

5. The method of claim 4 , wherein at least one of the two or more storage devices is configured to perform one or more garbage collection operations.

6. The method of claim 5 , wherein the two or more storage devices are connected to one or more switches or hubs.

7. The method of claim 6 , wherein one or more storage devices of the two or more storage devices comprises an interconnect interface, the interconnect interface supporting a PCIe protocol.

8. The method of claim 7 , wherein at least one of the one or more switches or hubs is configured to interface via at least one of a PCIe protocol, a SATA protocol, or a SAS protocol.

9. The method of claim 8 , wherein at least one of the one or more solid state storage devices comprises one or more computational elements.

10. The method of claim 9 , wherein at least one of the one or more computational elements is a field programmable gate array (FPGA) or an application specific integrated circuit ASIC device.

11. An apparatus comprising:

a data storage system comprising:

a fabric;

two or more devices connected to the fabric, wherein the two or more devices comprise a first storage device and a second storage device connected to the fabric;

an erasure coding logic at one or more of the two or more devices configured to erasure-code and divide user data into a first erasure coded data and a second erasure coded data based on receiving the user data at one or more of the two or more devices; and

a network interface configured to couple the first storage device and the second storage device to the fabric, wherein the fabric supports an NVMe-oF protocol;

wherein the first erasure coded data is based at least in part on a Reed-Solomon coding algorithm.

12. The data storage system of claim 11 , wherein the first storage device comprises a solid state storage device.

13. The data storage system of claim 12 , wherein the first erasure coded data comprises at least one of a parity block or a parity chunk.

14. The data storage system of claim 13 , wherein:

the solid state storage device comprises a NAND flash storage device and a DRAM device; and

the first storage device is configured to perform a garbage collection operation.

15. The data storage system of claim 14 , wherein the first storage device is connected to one or more switches or hubs.

16. The data storage system of claim 15 , wherein:

the first storage device is configured to support a PCIe protocol; and

at least one of the one or more switches or hubs is configured to interface via at least one of a PCIe protocol, a SATA protocol, or a SAS protocol.

17. The data storage system of claim 16 , wherein the solid state storage device comprises one or more computational elements.

18. The data storage system of claim 17 , wherein at least one of the one or more computational elements is a field programmable gate array (FPGA) or an application specific integrated circuit ASIC device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: PITCHUMANI, REKHA; KI, YANG SEOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 063979/0667 →
Continuity (4)
Continuation 17563019 · Dec 27, 2021
Continuation 15930422 · May 12, 2020
Provisional Application 62967573 · Jan 29, 2020
Related Publication 20220326852A1 · Oct 13, 2022
References Cited (49)
US 7979771B2 · Margolus et al. · 2011 [cited by applicant]
US 8402201B2 · Flynn et al. · 2013 [cited by applicant]
US 8458287B2 · Ozzie · 2013 [cited by examiner]
US 8713405B2 · Healey, Jr. · 2014 [cited by examiner]
US 8862818B1 · Ozdemir · 2014 [cited by applicant]
US 9047306B1 · Frolund et al. · 2015 [cited by applicant]
US 9465692B2 · Doerner · 2016 [cited by applicant]
US 9946642B2 · Tomlin et al. · 2018 [cited by applicant]
US 10019315B2 · Kato · 2018 [cited by examiner]
US 10079612B1 · Li · 2018 [cited by applicant]
US 10289547B2 · Malina · 2019 [cited by examiner]
US 10402266B1 · Kirkpatrick et al. · 2019 [cited by applicant]
US 10437672B2 · Baker et al. · 2019 [cited by applicant]
US 10552058B1 · Jadon et al. · 2020 [cited by applicant]
US 10817392B1 · McAuliffe et al. · 2020 [cited by applicant]
US 10901848B2 · Roberts · 2021 [cited by examiner]
US 10983859B2 · Davis et al. · 2021 [cited by applicant]
US 20090089612A1 · Mathew et al. · 2009 [cited by applicant]
US 20110264884A1 · Kim · 2011 [cited by applicant]
US 20150301934A1 · Baderdinni et al. · 2015 [cited by applicant]
US 20160217040A1 · Jin et al. · 2016 [cited by applicant]
US 20160219120A1 · Vairavanathan et al. · 2016 [cited by applicant]
US 20160334996A1 · Zhong et al. · 2016 [cited by applicant]
US 20160371145A1 · Akutsu et al. · 2016 [cited by applicant]
US 20170077950A1 · Pavlov et al. · 2017 [cited by applicant]
US 20170272209A1 · Yanovsky et al. · 2017 [cited by applicant]
US 20170329532A1 · Goss et al. · 2017 [cited by applicant]
US 20180196745A1 · Karr et al. · 2018 [cited by applicant]
US 20180321876A1 · Ballapuram et al. · 2018 [cited by applicant]
US 20180357019A1 · Karr et al. · 2018 [cited by applicant]
US 20190065389A1 · Choi et al. · 2019 [cited by applicant]
US 20190102250A1 · O'Krafka et al. · 2019 [cited by applicant]
US 20190114114A1 · Trika et al. · 2019 [cited by applicant]
US 20190215013A1 · Anderson · 2019 [cited by applicant]
US 20200133552A1 · Zolotow et al. · 2020 [cited by applicant]
US 20200136656A1 · Monk · 2020 [cited by examiner]
US 20200264800A1 · Wysocki et al. · 2020 [cited by applicant]
US 20210133026A1 · Horn · 2021 [cited by examiner]
TW 201729068A · 2017 [cited by applicant]
WO 2016022993A2 · 2016 [cited by applicant]
Huang, Cheng et al., “Erasure Coding in Windows Azure Storage,” USENIX, Jun. 2012 (Year: 2012), 12 pages. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/930,422, mailed Aug. 17, 2021. [cited by applicant]
Office Action for U.S. Appl. No. 15/930,422, mailed Feb. 19, 2021. [cited by applicant]
Pritchard, Stephen, “RAID, Flash and Erasure Coding: What Works Best with Solid State?,” ComputerWeekly.com, Dec. 4, 2020 (Year: 2020), 6 pages. [cited by applicant]
European Summons to Oral Proceedings for Application No. 21152021.8, mailed May 15, 2023. [cited by applicant]
Office Action for U.S. Appl. No. 17/563,019, mailed Dec. 22, 2022. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/563,019, mailed Sep. 14, 2023. [cited by applicant]
Office Action for U.S. Appl. No. 17/563,019, mailed Mar. 26, 2024. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/563,019, mailed Nov. 7, 2024. [cited by applicant]