JP2021002350A - 消去コードベースのデータ処理方法および装置 - Google Patents
消去コードベースのデータ処理方法および装置 Download PDFInfo
- Publication number
- JP2021002350A JP2021002350A JP2020108769A JP2020108769A JP2021002350A JP 2021002350 A JP2021002350 A JP 2021002350A JP 2020108769 A JP2020108769 A JP 2020108769A JP 2020108769 A JP2020108769 A JP 2020108769A JP 2021002350 A JP2021002350 A JP 2021002350A
- Authority
- JP
- Japan
- Prior art keywords
- parity
- data
- chunks
- storage controller
- slice
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
図1および図2は、異なるアーキテクチャを有する2つのストレージシステムを示す。図1のストレージシステムは、ストレージノードと、少なくとも1つのクライアントとを含む。クライアントとストレージノードは、通信ネットワーク(例えば、EthernetまたはInfiniBand)を使用することによって接続される。ストレージノードには、ストレージコントローラおよび複数のストレージデバイスが設けられ、ストレージノードは、実際には、ストレージアレイ、例えば、Huawei(登録商標)Oceanstor(登録商標)18000シリーズおよびDorado(登録商標)V3シリーズであってもよい。図2は、分散ストレージシステムを示す。ストレージシステムは、少なくとも1つのクライアントと、複数のストレージノードとを含み、各ストレージノードは、実際には、サーバであってもよい。クライアントとストレージノードは、通信ネットワーク(例えば、EthernetまたはInfiniBand)を使用することによって接続される。ストレージシステムの少なくとも1つのストレージノードは、ストレージコントローラを含み、各ストレージノードは、ストレージデバイスを含み、すべてのストレージノードは、通信ネットワークを使用することによって互いに通信接続を確立する。図1および図2のストレージデバイスは、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、または他のタイプのストレージディスクであり得る。
602 バス
604 プロセッサ
606 通信インターフェース
608 メモリ
800 ストレージコントローラ
802 バス
804 プロセッサ
806 通信インターフェース
808 メモリ
810 データ処理チップ
1000 ストレージコントローラ
1002 通信モジュール
1004 処理モジュール
8102 サイト選択ユニット
8104 演算ユニット
8106 ストレージユニット
8108 読み取り/書き込みインターフェース
Claims (14)
- 消去コードベースのデータ処理方法であって、
ストレージコントローラによって、K個のデータチャンクを取得するステップであって、Kが正の整数である、ステップと、
前記ストレージコントローラによって、2*Kデータスライスを取得するために、各データチャンクを2つのデータスライスに分割するステップと、
前記ストレージコントローラによって、2*Mパリティスライスを取得するために、パリティ行列に基づいて前記2*Kデータスライスをエンコードするステップであって、前記2*MパリティスライスがM個のパリティチャンクを形成し、Mが正の整数である、ステップと、
前記ストレージコントローラによって、前記K個のデータチャンクと前記M個のパリティチャンクを複数のストレージデバイスに格納するステップと
を含み、
前記パリティ行列は、2*M行と2*(K+M)列の要素を含み、要素の各列は、1つのデータスライスまたは1つのパリティスライスに対応し、要素の各行は、1つの排他的論理和式に対応し、要素の各行に対応する前記排他的論理和式が使用され、前記2*Kデータスライスのいくつかに基づいて1つのパリティスライスを取得する、
データ処理方法。 - 前記パリティ行列は、前記ストレージコントローラに事前設定され、前記パリティ行列は、少なくとも1つの設定ルールを満たす、請求項1に記載のデータ処理方法。
- 前記少なくとも1つの設定ルールは、前記パリティ行列の要素が0、1、または有限体の要素であることを含む、請求項2に記載のデータ処理方法。
- 前記少なくとも1つの設定ルールは、前記パリティ行列にあり、任意のデータチャンクに含まれる2つのデータスライスまたは任意のパリティチャンクに含まれる2つのパリティスライスに対応する2つの列が、2*M行と2列の要素を含む最初のサブ行列を形成することを含み、前記最初のサブ行列の任意の2つの偶数行または任意の2つの奇数行によって形成された2*2行列の少なくとも1つは、フルランクである、請求項2または3に記載のデータ処理方法。
- 前記少なくとも1つの設定ルールは、前記パリティ行列にあり、任意のr個のチャンクに含まれる2*rスライスに対応する2*r列が、2*M行と2*r列の要素を含む2番目のサブ行列を形成することを含み、前記2番目のサブ行列のランクは、2rであり、rは、M以下の整数である、請求項2から4のいずれか一項に記載のデータ処理方法。
- 前記ストレージコントローラによって、前記K個のデータチャンクおよび前記M個のパリティチャンクのr個のチャンクが破損していると決定するステップと、
前記ストレージコントローラによって、前記パリティ行列の要素の複数の行に対応する排他的論理和式に基づいて前記r個の破損したチャンクを再構築するステップと
をさらに含む、請求項2から5のいずれか一項に記載のデータ処理方法。 - 通信モジュールと、処理モジュールとを備え、
前記通信モジュールは、K個のデータチャンクを取得し、Kは、正の整数である、ように構成され、
前記処理モジュールは、2*Kデータスライスを取得するために、各データチャンクを2つのデータスライスに分割し、2*Mパリティスライスを取得するために、パリティ行列に基づいて前記2*Kデータスライスをエンコードし、前記2*Mパリティスライスは、M個のパリティチャンクを形成し、Mは、正の整数である、ように構成され、前記パリティ行列は、2*M行と2*(K+M)列の要素を含み、要素の各列は、1つのデータスライスまたは1つのパリティスライスに対応し、要素の各行は、1つの排他的論理和式に対応し、要素の各行に対応する前記排他的論理和式が使用され、前記2*Kデータスライスのいくつかに基づいて1つのパリティスライスを取得し、
前記通信モジュールは、前記K個のデータチャンクおよび前記M個のパリティチャンクを複数のストレージデバイスに格納するように構成される、
ストレージコントローラ。 - 前記パリティ行列は、前記ストレージコントローラに事前設定され、前記パリティ行列は、少なくとも1つの設定ルールを満たす、請求項7に記載のストレージコントローラ。
- 前記少なくとも1つの設定ルールは、前記パリティ行列の要素が0、1、または有限体の要素であることを含む、請求項8に記載のストレージコントローラ。
- 前記少なくとも1つの設定ルールは、前記パリティ行列にあり、任意のデータチャンクに含まれる2つのデータスライスまたは任意のパリティチャンクに含まれる2つのパリティスライスに対応する2つの列が、2*M行と2列の要素を含む最初のサブ行列を形成することを含み、前記最初のサブ行列の任意の2つの偶数行または任意の2つの奇数行によって形成された2*2行列の少なくとも1つは、フルランクである、請求項8または9に記載のストレージコントローラ。
- 前記少なくとも1つの設定ルールは、前記パリティ行列にあり、任意のr個のチャンクに含まれる2*rスライスに対応する2*r列が、2*M行と2*r列の要素を含む2番目のサブ行列を形成することを含み、前記2番目のサブ行列のランクは、2rであり、rは、M以下の整数である、請求項8から10のいずれか一項に記載のストレージコントローラ。
- 前記処理モジュールは、前記K個のデータチャンクおよび前記M個のパリティチャンクのr個のチャンクが破損していると決定し、前記パリティ行列の要素の複数の行に対応する排他的論理和式に基づいて前記r個の破損したチャンクを再構築するようにさらに構成される、請求項8から11のいずれか一項に記載のストレージコントローラ。
- プロセッサと、メモリとを備え、前記プロセッサは、請求項1から6のいずれか一項に記載の方法を実施するために前記メモリ内のプログラムを実行するように構成される、ストレージコントローラ。
- 非一時的可読記憶媒体であって、前記非一時的可読記憶媒体に格納されたプログラムがストレージコントローラによって実行されると、前記ストレージコントローラは、請求項1から6のいずれか一項に記載の方法を実施する、非一時的可読記憶媒体。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910551394 | 2019-06-24 | ||
CN201910551394.2 | 2019-06-24 | ||
CN201911128710.1A CN111090540B (zh) | 2019-06-24 | 2019-11-18 | 基于纠删码的数据处理方法与装置 |
CN201911128710.1 | 2019-11-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021002350A true JP2021002350A (ja) | 2021-01-07 |
JP7047018B2 JP7047018B2 (ja) | 2022-04-04 |
Family
ID=70393168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020108769A Active JP7047018B2 (ja) | 2019-06-24 | 2020-06-24 | 消去コードベースのデータ処理方法および装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11249846B2 (ja) |
EP (1) | EP3758238A1 (ja) |
JP (1) | JP7047018B2 (ja) |
CN (1) | CN111090540B (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
CN113806133A (zh) * | 2020-06-12 | 2021-12-17 | 华为技术有限公司 | 一种数据写入方法和装置 |
CN112052115B (zh) * | 2020-09-28 | 2022-07-08 | 山东云海国创云计算装备产业创新中心有限公司 | 数据存储纠删方法、装置、设备及计算机可读存储介质 |
US11899941B2 (en) | 2021-11-11 | 2024-02-13 | Samsung Electronics Co., Ltd. | Storage device and operating method thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019076912A1 (en) * | 2017-10-16 | 2019-04-25 | Memoscale As | SYSTEMATIC AND XOR-BASED CODING TECHNIQUE FOR DISTRIBUTED STORAGE SYSTEMS |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093182B2 (en) * | 1999-08-02 | 2006-08-15 | Inostor Corporation | Data redundancy methods and apparatus |
US6993701B2 (en) | 2001-12-28 | 2006-01-31 | Network Appliance, Inc. | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array |
US7219289B2 (en) * | 2005-03-15 | 2007-05-15 | Tandberg Data Corporation | Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same |
US7930611B2 (en) * | 2007-03-09 | 2011-04-19 | Microsoft Corporation | Erasure-resilient codes having multiple protection groups |
US9304857B2 (en) * | 2011-12-12 | 2016-04-05 | Cleversafe, Inc. | Retrieving data from a distributed storage network |
US9537609B2 (en) * | 2012-08-02 | 2017-01-03 | International Business Machines Corporation | Storing a stream of data in a dispersed storage network |
SG10201500905QA (en) * | 2015-02-05 | 2016-09-29 | Nanyang Polytechnic | LDPC Codes For Storage System |
US10078472B2 (en) * | 2015-02-27 | 2018-09-18 | International Business Machines Corporation | Rebuilding encoded data slices in a dispersed storage network |
CN104850468B (zh) * | 2015-05-31 | 2018-04-27 | 上海交通大学 | 基于校验矩阵的纠删码解码方法 |
WO2017113276A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 分布式存储系统中的数据重建的方法、装置和系统 |
CN110089035B (zh) * | 2016-12-24 | 2021-01-29 | 华为技术有限公司 | 存储控制器、数据处理芯片及数据处理方法 |
US10289488B1 (en) * | 2017-04-27 | 2019-05-14 | EMC IP Holding Company LLC | System and method for recovery of unrecoverable data with erasure coding and geo XOR |
CN109213420A (zh) * | 2017-06-29 | 2019-01-15 | 杭州海康威视数字技术股份有限公司 | 数据存储方法、装置及系统 |
US10944429B1 (en) * | 2020-01-02 | 2021-03-09 | Silicon Motion, Inc. | Data accessing method using data protection with aid of parity check matrix having partial sequential information, and associated apparatus |
-
2019
- 2019-11-18 CN CN201911128710.1A patent/CN111090540B/zh active Active
-
2020
- 2020-06-24 JP JP2020108769A patent/JP7047018B2/ja active Active
- 2020-06-24 US US16/910,924 patent/US11249846B2/en active Active
- 2020-06-24 EP EP20181838.2A patent/EP3758238A1/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019076912A1 (en) * | 2017-10-16 | 2019-04-25 | Memoscale As | SYSTEMATIC AND XOR-BASED CODING TECHNIQUE FOR DISTRIBUTED STORAGE SYSTEMS |
Also Published As
Publication number | Publication date |
---|---|
CN111090540A (zh) | 2020-05-01 |
CN111090540B (zh) | 2022-06-14 |
US11249846B2 (en) | 2022-02-15 |
EP3758238A1 (en) | 2020-12-30 |
US20200401480A1 (en) | 2020-12-24 |
JP7047018B2 (ja) | 2022-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7047018B2 (ja) | 消去コードベースのデータ処理方法および装置 | |
CN113407122B (zh) | Raid重建的方法和设备 | |
US10783038B2 (en) | Distributed generation of random data in a storage system | |
CN110089035B (zh) | 存储控制器、数据处理芯片及数据处理方法 | |
US10346056B2 (en) | Declustered array of storage devices with chunk groups and support for multiple erasure schemes | |
US10210045B1 (en) | Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system | |
US10146618B2 (en) | Distributed data storage with reduced storage overhead using reduced-dependency erasure codes | |
Papailiopoulos et al. | Simple regenerating codes: Network coding for cloud storage | |
US9081752B2 (en) | Redundant disk encoding via erasure decoding | |
CN109643258B (zh) | 使用高速率最小存储再生擦除代码的多节点修复 | |
US9606866B2 (en) | Method of, and apparatus for, improved data recovery in a storage system | |
CN110750382A (zh) | 用于提高数据修复性能的最小存储再生码编码方法及系统 | |
WO2017048373A1 (en) | Co-derived data storage patterns for distributed storage systems | |
US10355711B2 (en) | Data processing method and system based on quasi-cyclic LDPC | |
WO2021012164A1 (zh) | 数据重构的方法、装置、计算机设备、存储介质及系统 | |
WO2024108930A1 (zh) | 数据恢复方法及相关设备 | |
CN110431531B (zh) | 存储控制器、数据处理芯片及数据处理方法 | |
US9229811B2 (en) | Folded codes for correction of latent media errors | |
JP2018536220A (ja) | データ・ストレージ・システムにおける自律パリティ交換方法、プログラム、およびシステム | |
JP2017505498A (ja) | データ記憶方法及びデータ記憶デバイス、記憶されているデータの復号方法及び復号デバイス、並びに対応するコンピュータプログラム | |
US20190020359A1 (en) | Systematic coding technique for erasure correction | |
TWI794541B (zh) | 儲存空間之自動組態之設備及方法 | |
JP2004185256A (ja) | Raidシステム | |
KR20230138384A (ko) | 정보 비트를 인코딩하는 장치를 포함하는 스토리지 시스템 및 그에 대한 방법 | |
Lu et al. | On the implementation of Zigzag codes for distributed storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200804 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200807 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210826 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211206 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220228 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220323 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7047018 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |