Erasure code

In coding theory, an erasure code is a forward error correction (FEC) code under the assumption of bit erasures (rather than bit errors), which transforms a message of k symbols into a longer message (code word) with n symbols such that the original message can be recovered from a subset of the n symbols. The fraction r = k/n is called the code rate. The fraction k’/k, where k’ denotes the number of symbols required for recovery, is called reception efficiency. The recovery algorithm expects that it is known which of the n symbols are lost.

History

Erasure coding was invented by Irving Reed and Gustave Solomon in 1960.[1]

There are many different erasure coding schemes. The most popular erasure codes are Reed-Solomon coding, Low-density parity-check code (LDPC codes), and Turbo codes.[1]

As of 2023, modern data storage systems can be designed to tolerate the complete failure of a few disks without data loss, using one of 3 approaches:[2][3][4]

  • Replication
  • RAID
  • Erasure Coding

While technically RAID can be seen as a kind of erasure code,[5] "RAID" is generally applied to an array attached to a single host computer (which is a single point of failure), while "erasure coding" generally implies multiple hosts,[3] sometimes called a Redundant Array of Inexpensive Servers (RAIS). The erasure code allows operations to continue when any one of those hosts stops.[4][6]

Compared to block-level RAID systems, object storage erasure coding has some significant differences that make it more resilient.[7][8][9][10][11]

Optimal erasure codes

Optimal erasure codes have the property that any k out of the n code word symbols are sufficient to recover the original message (i.e., they have optimal reception efficiency). Optimal erasure codes are maximum distance separable codes (MDS codes).

Parity check

Parity check is the special case where k + 1. From a set of k values , a checksum is computed and appended to the k source values:

The set of k + 1 values is now consistent with regard to the checksum. If one of these values, , is erased, it can be easily recovered by summing the remaining variables:

RAID 5 is a widely-used application of the parity check erasure code.[1]

Polynomial oversampling

Example: Err-mail (k = 2)

In the simple case where k = 2, redundancy symbols may be created by sampling different points along the line between the two original symbols. This is pictured with a simple example, called err-mail:

Alice wants to send her telephone number (555629) to Bob using err-mail. Err-mail works just like e-mail, except

  1. About half of all the mail gets lost.
  2. Messages longer than 5 characters are illegal.
  3. It is very expensive (similar to air-mail).

Instead of asking Bob to acknowledge the messages she sends, Alice devises the following scheme.

  1. She breaks her telephone number up into two parts a = 555, b = 629, and sends 2 messages – "A=555" and "B=629" – to Bob.
  2. She constructs a linear function, , in this case , such that and .

  1. She computes the values f(3), f(4), and f(5), and then transmits three redundant messages: "C=703", "D=777" and "E=851".

Bob knows that the form of f(k) is , where a and b are the two parts of the telephone number. Now suppose Bob receives "D=777" and "E=851".

Bob can reconstruct Alice's phone number by computing the values of a and b from the values (f(4) and f(5)) he has received. Bob can perform this procedure using any two err-mails, so the erasure code in this example has a rate of 40%.

Note that Alice cannot encode her telephone number in just one err-mail, because it contains six characters, and that the maximum length of one err-mail message is five characters. If she sent her phone number in pieces, asking Bob to acknowledge receipt of each piece, at least four messages would have to be sent anyway (two from Alice, and two acknowledgments from Bob). So the erasure code in this example, which requires five messages, is quite economical.

This example is a little bit contrived. For truly generic erasure codes that work over any data set, we would need something other than the f(i) given.

General case

The linear construction above can be generalized to polynomial interpolation. Additionally, points are now computed over a finite field.

First we choose a finite field F with order of at least n, but usually a power of 2. The sender numbers the data symbols from 0 to k − 1 and sends them. He then constructs a (Lagrange) polynomial p(x) of order k such that p(i) is equal to data symbol i. He then sends p(k), ..., p(n − 1). The receiver can now also use polynomial interpolation to recover the lost packets, provided he receives k symbols successfully. If the order of F is less than 2b, where b is the number of bits in a symbol, then multiple polynomials can be used.

The sender can construct symbols k to n − 1 'on the fly', i.e., distribute the workload evenly between transmission of the symbols. If the receiver wants to do his calculations 'on the fly', he can construct a new polynomial q, such that q(i) = p(i) if symbol i < k was received successfully and q(i) = 0 when symbol i < k was not received. Now let r(i) = p(i) − q(i). Firstly we know that r(i) = 0 if symbol i < k has been received successfully. Secondly, if symbol i ≥ k has been received successfully, then r(i) = p(i) − q(i) can be calculated. So we have enough data points to construct r and evaluate it to find the lost packets. So both the sender and the receiver require O(n (n − k)) operations and only O(n − k) space for operating 'on the fly'.

Real world implementation

This process is implemented by Reed–Solomon codes, with code words constructed over a finite field using a Vandermonde matrix.

Most practical erasure codes are systematic codes -- each one of the original k symbols can be found copied, unencoded, as one of the n message symbols.[12] (Erasure codes that support secret sharing never use a systematic code).

Near-optimal erasure codes

Near-optimal erasure codes require (1 + ε)k symbols to recover the message (where ε>0). Reducing ε can be done at the cost of CPU time. Near-optimal erasure codes trade correction capabilities for computational complexity: practical algorithms can encode and decode with linear time complexity.

Fountain codes (also known as rateless erasure codes) are notable examples of near-optimal erasure codes. They can transform a k symbol message into a practically infinite encoded form, i.e., they can generate an arbitrary amount of redundancy symbols that can all be used for error correction. Receivers can start decoding after they have received slightly more than k encoded symbols.

Regenerating codes address the issue of rebuilding (also called repairing) lost encoded fragments from existing encoded fragments. This issue occurs in distributed storage systems where communication to maintain encoded redundancy is a problem.[12]

Applications of erasure coding in storage systems

Erasure coding is now standard practice for reliable data storage.[13][14][15] In particular, various implementations of Reed-Solomon erasure coding are used by Apache Hadoop, the RAID-6 built into Linux, Microsoft Azure, Facebook cold storage, and Backblaze Vaults.[15][12]

The classical way to recover from failures in storage systems was to use replication. However, replication incurs significant overhead in terms of wasted bytes. Therefore, increasingly large storage systems, such as those used in data centers use erasure-coded storage. The most common form of erasure coding used in storage systems is Reed-Solomon (RS) code, an advanced mathematics formula used to enable regeneration of missing data from pieces of known data, called parity blocks. In a (km) RS code, a given set of k data blocks, called "chunks", are encoded into (k + m) chunks. The total set of chunks comprises a stripe. The coding is done such that as long as at least k out of (k + m) chunks are available, one can recover the entire data. This means a (km) RS-encoded storage can tolerate up to m failures.

Example: In RS (10, 4) code, which is used in Facebook for their HDFS,[16] 10 MB of user data is divided into ten 1MB blocks. Then, four additional 1 MB parity blocks are created to provide redundancy. This can tolerate up to 4 concurrent failures. The storage overhead here is 14/10 = 1.4X.

In the case of a fully replicated system, the 10 MB of user data will have to be replicated 4 times to tolerate up to 4 concurrent failures. The storage overhead in that case will be 50/10 = 5 times.

This gives an idea of the lower storage overhead of erasure-coded storage compared to full replication and thus the attraction in today's storage systems.

Initially, erasure codes were used to reduce the cost of storing "cold" (rarely-accessed) data efficiently; but erasure codes can also be used to improve performance serving "hot" (more-frequently-accessed) data.[12]

RAID N+M divides data blocks across N+M drives, and can recover all the data when any M drives fail.[1] In particular, RAID 7.3 refers to triple-parity RAID, and can recover all the data when any 3 drives fail.[17]

Examples

Here are some examples of implementations of the various codes:

Near optimal erasure codes

Near optimal fountain (rateless erasure) codes

Optimal erasure codes

See also

References

  1. ^ a b c d "RAID vs. Erasure Coding. What's the Difference? | Blog | Xinnor". The Fastest and Most Reliable Software RAID | Xinnor. 2023-09-03. Retrieved 2024-09-18.
  2. ^ "Ceph.io — Erasure Coding in Ceph". ceph.io. 2014-04-07. Retrieved 2024-09-18.
  3. ^ a b Lee, Brandon (2023-12-26). "RAID vs Erasure Coding vs Replication". BDRSuite. Retrieved 2024-09-18.
  4. ^ a b O'Reilly, Jim. "RAID Vs. Erasure Coding". www.networkcomputing.com. Retrieved 2024-09-18.
  5. ^ Dimitri Pertin, Alexandre van Kempen, Benoît Parrein, Nicolas Normand. "Comparison of RAID-6 Erasure Codes". The third Sino-French Workshop on Information and Communication Technologies, SIFWICT 2015, Jun 2015, Nantes, France. ffhal-01162047f
  6. ^ "Understanding IBM Spectrum Scale Erasure Code Edition fault tolerance". www.ibm.com. Retrieved 2024-09-18.
  7. ^ "Object Storage Erasure Coding vs. Block Storage RAID". MinIO Blog. 2021-07-27. Retrieved 2024-09-18.
  8. ^ "Erasure coding vs Raid as a data protection method | Computer Weekly". ComputerWeekly.com. Retrieved 2024-09-18.
  9. ^ Kruth, Peter (2023-10-04). "Erasure Code: RAID As It Should Be – Huawei BLOG". Archived from the original on 2023-10-04. Retrieved 2024-09-18.
  10. ^ "Erasure Coding 101". MinIO Blog. 2022-04-25. Retrieved 2024-09-18.
  11. ^ Bhaskaran, Dinesh Kumar (July 6, 2018). "Why erasure coding is the future of data resiliency". Archived from the original on August 7, 2020.
  12. ^ a b c d Rashmi Vinayak. "Erasure Coding for Big-data Systems: Theory and Practice". 2016. p. 2: section "Abstract". p. 9: section "Systematic codes". p. 12: section "Regenerating codes".
  13. ^ "Erasure Encoding—Practice and Principles". 2016.
  14. ^ Matt Sarrel. "Erasure Coding 101". 2022.
  15. ^ a b Brian Beach. "Backblaze Open-sources Reed-Solomon Erasure Coding Source Code". 2015.
  16. ^ Xia, Mingyuan; Saxena, Mohit; Blaum, Mario; Pease, David A. (2015). A Tale of Two Erasure Codes in {HDFS}. pp. 213–226. ISBN 978-1-931971-20-1.
  17. ^ Adam Leventhal. ""Triple-parity RAID and beyond". 2009.
  18. ^ Dimakis, Alexandros G.; Godfrey, P. Brighten; Wu, Yunnan; Wainwright, Martin J.; Ramchandran, Kannan (September 2010). "Network Coding for Distributed Storage Systems". IEEE Transactions on Information Theory. 56 (9): 4539–4551. arXiv:cs/0702015. CiteSeerX 10.1.1.117.6892. doi:10.1109/TIT.2010.2054295. S2CID 260559901.
  19. ^ "home [Erasure Coding for Distributed Storage Wiki]". 2017-07-31. Archived from the original on 2017-07-31. Retrieved 2023-08-20.

Read other articles:

Stan FrebergFreberg di San Diego ComicCon (2009)LahirStanley Friberg(1926-08-07)7 Agustus 1926Pasadena, California, Amerika SerikatMeninggal7 April 2015(2015-04-07) (umur 88)Santa Monica, California, Amerika SerikatSebab meninggalPneumoniaNama lainStanley FrebergStan FribergStanley Victor FrebergPekerjaanAuthorrecording artistvoice actorcomedianradio personalitypuppeteeradvertising creative directorTahun aktif1944–2014Suami/istriDonna Freberg ​ ​(m.&...

 

Audi R8Audi R8 V10 Plus (Type 4S)InformasiProdusenAudi (Audi Sport GmbH)[1]Masa produksi2006–sekarangBodi & rangkaKelasMobil sport (S)Bentuk kerangka2-pintu coupé2-pintu convertible (spyder)Tata letakLongitudinal tengah Audi R8 adalah mobil sport mesin tengah, 2-kursi, yang menggunakan sistem penggerak all-wheel drive permanen quattro merek dagang Audi. Itu diperkenalkan oleh produsen mobil Jerman Audi AG pada tahun 2006. Mobil ini dirancang, dikembangkan, dan diproduksi s...

 

Lagan UluDesaNegara IndonesiaProvinsiJambiKabupatenTanjung Jabung TimurKecamatanGeragaiKode Kemendagri15.07.10.2001 Luas-Jumlah penduduk-Kepadatan- Lagan Ulu adalah desa di kecamatan Geragai, Kabupaten Tanjung Jabung Timur, Jambi, Indonesia. Pranala luar (Indonesia) Keputusan Menteri Dalam Negeri Nomor 050-145 Tahun 2022 tentang Pemberian dan Pemutakhiran Kode, Data Wilayah Administrasi Pemerintahan, dan Pulau tahun 2021 (Indonesia) Peraturan Menteri Dalam Negeri Nomor 72 Tahun 2019 tent...

العلاقات الإثيوبية البنينية إثيوبيا بنين   إثيوبيا   بنين تعديل مصدري - تعديل   العلاقات الإثيوبية البنينية هي العلاقات الثنائية التي تجمع بين إثيوبيا وبنين.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المقارنة إثيو�...

 

العلاقات البريطانية الناوروية المملكة المتحدة ناورو   المملكة المتحدة   ناورو تعديل مصدري - تعديل   العلاقات البريطانية الناوروية هي العلاقات الثنائية التي تجمع بين المملكة المتحدة وناورو.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومر�...

 

Questa voce o sezione sull'argomento sovrani austriaci non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Ferdinando II d'AsburgoGiovanni Pietro de Pomis, ritratto dell'imperatore Ferdinando II d'Asburgo, 1619Imperatore Eletto dei RomaniStemma In carica28 agosto 1619[1] –15 febbraio 1637 Incoronazione9 settembre 1619, Francoforte sul Meno Pre...

Voce principale: Forlì Football Club. Associazione Sportiva ForlìStagione 1938-1939Sport calcio Squadra Forlì Allenatore Foscolo Romualdi Presidente Plinio Pesaresi Serie C4º posto nel girone E. Coppa ItaliaQualificazioni. StadioCampo Tullo Morgagni, viale Roma (110x60). 1937-1938 1939-1940 Si invita a seguire il modello di voce Questa voce raccoglie le informazioni riguardanti l'Associazione Sportiva Forlì nelle competizioni ufficiali della stagione 1938-1939. Indice 1 Stagione 2 ...

 

Traditions of Vajrayana BuddhismPart of a series onChinese BuddhismChinese: Buddha History Buddhism in Central Asia Dharmaguptaka Silk Road transmission Dunhuang manuscripts Four Buddhist Persecutions in China Major figures Lokakṣema Kumārajīva Sengzhao Jizang Paramartha Xuanzang Kuiji Woncheuk Daoxuan Huiyuan Tanluan Daochuo Shandao Zhiyi Zhanran Fazang Chengguan Śubhakarasiṃha Vajrabodhi Amoghavajra Bodhidharma Huineng Daman Hongren Mazu Daoyi Hongzhi Zhengjue Dahui Zonggao Linji Zon...

 

Incubator for Google products Area 120Named after100% of time on 20% ProjectsKey peopleBradley Horowitz, Gabor CselleParent organizationGoogleWebsitearea120.google.com Area 120 is Google's in-house incubator in which employees work on 20% Project product ideas. It has helped develop Gmail, AdSense, Google News, and Google Cardboard.[1] The Area 120 division was created by Sundar Pichai in March 2016 and has since spawned over 50 projects.[1][2] The objective for the Ar...

Coppa Europa di sci alpino 1991 Uomini Donne Vincitori Generale Tobias Barnerssoi Markus Eberle Alexandra Meissnitzer Discesa libera Christophe Plé Gabriele Papp Supergigante Jérôme Noviant Alexandra Meissnitzer Slalom gigante Tobias Barnerssoi Alexandra Meissnitzer Slalom speciale Dietmar Thöni Annelise Coberger 1990 1992 La Coppa Europa di sci alpino 1991 fu la 20ª edizione della manifestazione organizzata dalla Federazione Internazionale Sci. In campo maschile il tedesco Tobias Barne...

 

马来西亚—英国关系 马来西亚 英国 代表機構马来西亚驻英国高级专员公署(英语:High Commission of Malaysia, London)英国驻马来西亚高级专员公署(英语:British High Commission, Kuala Lumpur)代表高级专员 阿末拉席迪高级专员 查尔斯·海伊(英语:Charles Hay (diplomat)) 马来西亚—英国关系(英語:Malaysia–United Kingdom relations;馬來語:Hubungan Malaysia–United Kingdom)是指马来西亚与英国�...

 

Swedish Prime Minister (1969–76, 1982–86) Olof PalmePalme in 1984Prime Minister of SwedenIn office8 October 1982 – 28 February 1986MonarchCarl XVI GustafDeputyIngvar CarlssonPreceded byThorbjörn FälldinSucceeded byIngvar CarlssonIn office14 October 1969 – 8 October 1976MonarchsGustaf VI Adolf Carl XVI GustafPreceded byTage ErlanderSucceeded byThorbjörn FälldinLeader of the Social Democratic PartyIn office14 October 1969 – 28 February 1986Preceded byTag...

British retail company The Flannels Group LimitedTrade nameFlannelsFormerlyCleverjoin Limted (1988–2000)[1]Company typePrivateIndustryRetailFounded1976; 48 years ago (1976)FounderNeil ProsserHeadquartersLondon, United KingdomNumber of locations50+ProductsClothingFootwearAccessoriesServicesFlannels Elite+Flannels RentalNumber of employees700 (2024)ParentSportsdirect.com Retail Limited[2][a]Websiteflannels.com The Flannels Group Limited, trading as Fl...

 

梅拉蒂·达伊瓦·奥克塔维亚尼Melati Daeva Oktavianti基本資料代表國家/地區 印度尼西亞出生 (1994-10-28) 1994年10月28日(29歲)[1] 印度尼西亞万丹省西冷[1]身高1.68米(5英尺6英寸)[1]握拍右手[1]主項:女子雙打、混合雙打職業戰績48勝–27負(女雙)109勝–56負(混雙)最高世界排名第4位(混雙-普拉文·喬丹)(2020年3月17日[2])現時世界排名第...

 

У этого термина существуют и другие значения, см. Загадка (значения). Золотой мяч и другие рассказыThe Golden Ball and Other Stories Жанр сборник рассказов Автор Агата Кристи Язык оригинала английский Дата первой публикации 1971 год Издательство Dodd, Mead and Company[вд] Предыдущее Пассажир из Фр�...

French footballer (born 1993) Jordan Veretout Veretout playing for France U19 in 2012Personal informationFull name Jordan Marcel Gilbert Veretout[1]Date of birth (1993-03-01) 1 March 1993 (age 31)[2]Place of birth Ancenis, FranceHeight 1.77 m (5 ft 10 in)[2]Position(s) MidfielderTeam informationCurrent team MarseilleNumber 27Youth career1999–2003 Belligne2003–2011 NantesSenior career*Years Team Apps (Gls)2011–2015 Nantes 130 (14)2015–2017 As...

 

For other uses, see Celebrity (disambiguation). Motor vehicle Chevrolet Celebrity1986 Chevrolet Celebrity 4-door sedanOverviewManufacturerChevrolet (General Motors)Production1981–1990Model years1982–1990AssemblyCanada:Oshawa, Ontario (Oshawa Car Assembly) (1982–1987)Sainte-Thérèse, Quebec (Sainte-Thérèse Assembly) (1987–1990)Colombia: Bogotá, Distrito Capital (Bogotá Assembly)Mexico: Ramos Arizpe (Ramos Arizpe Assembly) (1982–1989)(1987–1989, export)United States: Fram...

 

أندري هونبال (بالفرنسية: André Hunebelle)‏  معلومات شخصية اسم الولادة (بالفرنسية: André Henri Hunebelle)‏  الميلاد 1 سبتمبر 1896(1896-09-01)ميدون  الوفاة 27 نوفمبر 1985 (89 سنة) [1]  نيس  مواطنة فرنسا  الحياة العملية المهنة مخرج أفلام،  وكاتب سيناريو،  وفنان زجاج ملون  [لغات...

Le graphe de la fonction de Dickman–de Bruijn ρ sur une échelle logarithmique. L'axe horizontal est l'argument u, et l'axe vertical est la valeur ρ(u) de la fonction ρ. En théorie analytique des nombres, la fonction ρ de Dickman ou de Dickman-de Bruijn est une fonction spéciale utilisée dans l'estimation de la proportion d'entiers friables jusqu'à une certaine borne. Elle fut étudiée pour la première fois par l'actuaire Karl Dickman, qui la définit dans son unique publication m...

 

2022年冬季奥林匹克运动会美属萨摩亚代表團美属萨摩亚旗帜IOC編碼ASANOC美屬薩摩亞國家奧林匹克委員會網站oceaniasport.com/index_id_175.html(英文)2022年冬季奥林匹克运动会(北京)2022年2月4日至2月20日運動員1參賽項目1个大项旗手开幕式、闭幕式:內森·克倫普頓(钢架雪车)[1][2]历届奥林匹克运动会参赛记录(总结)夏季奥林匹克运动会19881992199620002004200820122016202...