In [[computer science]], '''Tornado Codescodes''' are a class of [[erasure codes]] that support [[error correction]]. Tornado Codescodes require a constant C more redundant blocks than the more data-efficient [[Reed-Solomon]] erasure codes, but are much faster to generate and can fix erasures faster. Software-based implementations of tornado codes are about 100 times faster on small lengths and about 10,000 times faster on larger lengths than [[Reed-Solomon]] erasure codes.<ref>A digital fountain approach to reliable distribution of bulk data. http://portal.acm.org/citation.cfm?id=285243.285258</ref> Since the introduction of Tornado codes, many other similar [[erasure code]]s have emerged, most notably [[Online codes]], [[LT codes]] and [[Raptor codes]].
Tornado Codescodes use a layered approach. All layers except the last use an [[LDPC]] error correction code, which is fast but has a chance of failure. The final layer uses a Reed-Solomon correction code, which is slower but is optimal in terms of failure recovery. Tornado Codescodes dictates how many levels, how many recovery blocks in each level, and the distribution used to generate blocks for the non-final layers.