1. A computer system comprising: a processor in communication with data storage; a tool in communication with the processor to dynamically select an erasure code, including: a system states module to track state data to ascertain frequency of file access; an adaptive coding module to select one of at least two erasure codes based on the tracked state data, the selection to lower data recovery cost, the at least two erasure codes selected from the group consisting of: a product code and a local reconstruction code, each erasure code including a mode selected from the group consisting of: a fast code and a compact code, the fast code having a low recovery cost and the compact code having a low storage overhead for less frequently accessed data; an encoding module to encode the data with one of the selected erasure codes and one of the modes of the selected erasure code; and the adaptive coding module to dynamically convert data blocks between the fast and compact codes of the selected erasure code responsive to a workload change.