1. A method for data storage, comprising: storing two or more data items in a non-volatile memory; calculating redundancy information over the data items, and storing the redundancy information in a volatile memory; and upon a failure to retrieve a data item from the non-volatile memory, reconstructing the data item from remaining data items stored in the non-volatile memory and from the redundancy information stored in the volatile memory.