Animate some novel erasure codes for a web-demo

Erasure code is a forward error correction (FEC) code that has been used in storage systems to help in recovery of data. The concept of erasure code is to encode “k” amount of data blocks of a data object into “n” amount of blocks (“k” message blocks with “n-k” parity blocks). The data or parity blo...

Full description

Saved in:
Bibliographic Details
Main Author: Ang, Fu Yi
Other Authors: Anwitaman Datta
Format: Final Year Project
Language:English
Published: 2013
Subjects:
Online Access:http://hdl.handle.net/10356/55086
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary:Erasure code is a forward error correction (FEC) code that has been used in storage systems to help in recovery of data. The concept of erasure code is to encode “k” amount of data blocks of a data object into “n” amount of blocks (“k” message blocks with “n-k” parity blocks). The data or parity blocks can be recovered using a subset of “k” blocks that is not corrupted of the “n” blocks. CORE (Cross-Object REdundancy) is storage primitive that builds on the traditional erasure code. The CORE matrix is denoted by CORE(n, k, t), a collection of “t” objects (or rows) where each row is encoded using a Reed Solomon RS(n, k) scheme. CORE matrix provides additional way of recovering the data or parity blocks vertically through the vertical parity blocks, which would reduce the cost of recovery of a failure block as compared to traditional erasure code. To help understand the methodology of the CORE matrix, animations are created in this project to aid in understanding the concept. A user interface is also created for the animations to run on. The user interface allows users to key in the parameters of the CORE matrix to change the size of the CORE matrix. Animations are created for complicated algorithms of CORE matrix that includes recovery and update algorithms. Failure clustering and recoverability check algorithms, which are much simpler, are also made available as support features. HTML5, JavaScript and CSS3 are chosen as the language to create the web-based animations and the user interface. The algorithms of the CORE matrix are made much more interesting and easier to understand with the use of systematic animation. Values are used to explain the complex arithmetic, which helps for users that does not have a good mathematics background. Currently this project is only supported on Chrome and Safari browsers due to some new features of CSS3 that is not supported by the other browsers. One of the future recommendations would be to extend its supported to other browsers and different devices.