ceph/ceph — pull request #2155 by apeters1971 (2014-07-28 14:37:17+00:00)
Title: EC: add plugin for Intel ISA-L library

This pull request contains the implementation for the ISA erasure coding plug-in library.

It imports the source code of ISA 2.10 into the CEPH tree and provides two encoding techniques. The default technique uses a Vandermonde matrix. The parameter space for (k,m) is limited to maximum of (32,3) and (21,4). For m>4 the generated Vandermonde matrix is not MDS anymore - in this case the cauchy matrix (technique=cauchy) can be used.

The Vandermonde decoding is optimized for single disk failures where a region XOR function is used instead of GF multiplications.

The implementation caches the decoding matrices 'on the fly' in an LRU cache which is sized to store all possible decoding matrices up to a (12,4) configuration.

The region XOR and the ISA library use run-time CPU flags to switch the implementation to use CPU extensions.