Failure-Tolerant Storage Devices