RALD: Reliable Transactional Software Controller for Redundancy Array of Log Structured Disks

Zhenyuan Sun, Mingyang Guo, Huanqing Dong, Yunqiu Liu, Zhenjun Liu, Lu Xiong Xu · 2015

An inconsistent update in a parity-based RAID can cause data loss when a disk failure occurs. There are two ways to restore the consistency: 1, Re-calculating parities, which does not work with disk failures. 2, Using transactions to record and replay updated data-contents in the transaction log, which is a single point of failure. It needs much bandwidth to replicate a transaction log of data-contents over network. We proposed the Above-Logging Transaction (ALT), and designed the Redundancy Array of Log-structured Disks (RALD). All updates histories of data-contents were on log-structured disks. ALTs recorded updated data's addresses on those log-structured disks into the transaction log by which ALTs mapped the consistent blocks into the read-only snapshot's space after they finished. To avoid the single point of failure, the RALD copied the ALTs log into those log-structured disks. By using flushes, the RALD utilized write-buffers safely. We had evaluated the RALD on SATA3 HDDs. The RALD can restore consistency from disk failures plus system crashes. The ALT's logs consumes little bandwidth, less than 0.5MB/s per replica. Compared to the Linux MD RAID: on write-dominant traces, the RALD has 20% to 190% more IOPS, on read-dominant traces, the RALD has 30% to 160% more IOPS if its internal caches have effective read-ahead, otherwise it has 10% to 50% less IOPS.

Read the paper · More papers on PaperTik