skip to main content
10.1145/3337821.3337829acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicppConference Proceedingsconference-collections
research-article

N-Code: An Optimal RAID-6 MDS Array Code for Load Balancing and High I/O Performance

Authors Info & Claims
Published:05 August 2019Publication History

ABSTRACT

Existing RAID-6 codes are developed to optimize either reads or writes for storage systems. To improve both read and write operations, this paper proposes a novel RAID-6 MDS array code called N-Code. N-Code exhibits three aspects of salient features: (i) read performance. N-Code assigns both horizontal parity chains and horizontal parities across disks, without generating a dedicated parity disk. Such a parity layout not only makes all the disks service normal reads, but also allows continuous data elements to share the same horizontal chain to optimize degraded reads; (ii) write performance. Diagonal parities are distributed across disks in a decentralized manner to optimize partial stripe writes, and horizontal parity chains enable N-Code to reduce I/O costs of partial stripe writes by merging I/O operations; and (iii) balancing performance. Decentralized horizontal/diagonal parities potentially support the I/O balancing optimization for single writes.

A theoretical analysis indicates that apart from the optimal storage efficiency, N-Code is featured with the optimal complexity for both encoding/decoding computations and update operations. The results of empirical experiments shows that N-Code demonstrates higher normal-read, degraded-read, and partial-stripe-write performance than the seven baseline popular RAID-6 codes. In particular, in the partial-stripe-write case, N-Code accelerates partial stripe writes by 32%-66% relative to horizontal codes; when it comes to degraded reads, N-Code improves degraded reads by 32%-53% compared to vertical codes. Furthermore, compared to the baseline codes, N-Code enhances load balancing by a factor anywhere between 1.19 to 9.09 for single-write workload, and between 1.3 to 6.92 for read-write mixed workload.

References

  1. Mario Blaum, Jim Brady, Jehoshua Bruck, and Jai Menon. 1995. EVENODD: An efficient scheme for tolerating double disk failures in RAID architectures. Computers, IEEE Transactions on 44, 2 (1995), 192--202. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Mario Blaum and Ron M Roth. 1999. On lowest density MDS codes. Information Theory IEEE Transactions on 45, 1 (1999), 46--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Mario Blaum and Ron M. Roth. 1999. On lowest density MDS codes. Information Theory, IEEE Transactions on 45, 1 (1999), 46--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Brad Calder, Ju Wang, Aaron Ogus, Niranjan Nilakantan, Arild Skjolsvold, Sam Mckelvie, Yikang Xu, Shashwat Srivastav, Jiesheng Wu, and Huseyin Simitci. 2011. Windows Azure Storage:a highly available cloud storage service with strong consistency. In ACM Symposium on Operating Systems Principles. 143--157. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Yuval Cassuto and Jehoshua Bruck. 2009. Cyclic lowest density MDS array codes. Information Theory, IEEE Transactions on 55, 4 (2009), 1721--1729. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Peter Corbett, Bob English, Atul Goel, Tomislav Grcanac, Steven Kleiman, James Leong, and Sunitha Sankar. 2004. Row-diagonal parity for double disk failure correction. In Proceedings of the 3rd USENIX Conference on File and Storage Technologies. 1--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Corporation EMC. July 2007. EMC CLARiiON RAID 6 Technology: A Detailed Review. White Paper. http://tahoe-lafs.org/trac/tahoe-http://www.emc.com/collateral/hardware/white-papers/h2891-clariion- raid-6.pdfGoogle ScholarGoogle Scholar
  8. Bin Fan, Wittawat Tantisiriroj, Lin Xiao, and Garth Gibson. 2009. DiskReduce:RAID for data-intensive scalable computing. In The Workshop on Petascale Data Storage. 6--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Yingxun Fu and Jiwu Shu. 2015. D-Code: An Efficient RAID-6 Code to Optimize I/O Loads and Read Performance. In Parallel and Distributed Processing Symposium. 603--612. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Yingxun Fu, Jiwu Shu, Xianghong Luo, Zhirong Shen, and Qingda Hu. 2017. Short Code: An Efficient RAID-6 MDS Code for Optimizing Degraded Reads and Partial Stripe Writes. IEEE Trans. Comput. 66, 1 (2017), 127--137. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. 2003. The Google file system. In ACM SIGOPS Operating Systems Review, Vol. 37. ACM, 29--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Kevin M Greenan, Xiaozhou Li, and Jay J Wylie. 2010. Flat XOR-based erasure codes in storage systems: Constructions, efficient recovery, and tradeoffs. In Mass Storage Systems and Technologies (MSST), 2010 IEEE 26th Symposium on. IEEE, 1--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. James Lee Hafner. 2005. Weaver codes: Highly fault tolerant erasure codes for storage systems. In Proceedings of the 4th conference on USENIX Conference on File and Storage Technologies, Vol. 4. 16--16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. James Lee hafner. 2006. HoVer erasure codes for disk arrays. In Dependable Systems and Networks, 2006. DSN 2006. International Conference on. IEEE, 217--226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Yuchong Hu, Henry C. H. Chen, Patrick P. C. Lee, and Yang Tang. 2012. NCCloud: applying network coding for the storage repair in a cloud-of-clouds. (2012), 21--21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Cheng Huang, Minghua Chen, and Jin Li. 2007. Pyramid codes: Flexible schemes to trade space for access efficiency in reliable data storage systems. In Network Computing and Applications, 2007. NCA 2007. Sixth IEEE International Symposium on. IEEE, 79--86.Google ScholarGoogle ScholarCross RefCross Ref
  17. Cheng Huang, Huseyin Simitci, Yikang Xu, Aaron Ogus, Brad Calder, Parikshit Gopalan, Jin Li, and Sergey Yekhanin. 2012. Erasure coding in windows azure storage. In Usenix Conference on Technical Conference. 2--2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Chao Jin, Hong Jiang, Dan Feng, and Lei Tian. 2009. P-Code: A new RAID-6 code with optimal properties. In Proceedings of the 23rd international conference on Supercomputing. ACM, 360--369. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Swaroop Kavalanekar, Bruce Worthington, Qi Zhang, and Vishal Sharda. 2008. Characterization of storage workload traces from production windows servers. In Workload Characterization, 2008. IISWC 2008. IEEE International Symposium on. IEEE, 119--128.Google ScholarGoogle ScholarCross RefCross Ref
  20. John Kubiatowicz, David Bindel, Yan Chen, Steven Czerwinski, Patrick Eaton, Dennis Geels, Ramakrishna Gummadi, Sean Rhea, Hakim Weatherspoon, and Chris Wells. 2002. OceanStore: an architecture for global-scale persistent storage. ACM. 190--201 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Mingqiang Li and Patrick P. C. Lee. 2014. STAIR codes: a general family of erasure codes for tolerating device and sector failures in practical storage systems. In Usenix Conference on File and Storage Technologies. 147--162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Mingqiang Li and Jiwu Shu. 2011. C-Codes: Cyclic Lowest-Density MDS Array Codes Constructed Using Starters for RAID 6. Ibm Corporation (2011).Google ScholarGoogle Scholar
  23. Michael Luby and David Zuckermank. 1995. An XOR-Based Erasure-Resilient Coding Scheme. Technical Report. Tech Report.Google ScholarGoogle Scholar
  24. F. J Macwilliams and N. J. A Sloane. 1977. The theory of error-correcting codes. North-Holland Pub. Co. 185-186 pages.Google ScholarGoogle Scholar
  25. David A Patterson, Garth Gibson, and Randy H Katz. 1988. A case for redundant arrays of inexpensive disks (RAID). Vol. 17. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Eduardo Pinheiro, Wolf-Dietrich Weber, and Luiz André Barroso. 2007. Failure trends in a large disk drive population. In Proceedings of the 5th USENIX conference on File and Storage Technologies. 2--2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. James S plank. 2007. A new MDS erasure code for RAID-6. In Technical Report CS-07-602, University of Tennessee.Google ScholarGoogle Scholar
  28. James S Plank. 2008. A new minimum density RAID-6 code with a word size of eight. In Network Computing and Applications, 2008. NCA'08. Seventh IEEE International Symposium on. IEEE, 85--92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. James S. Plank. 2008. The RAID-6 Liberation Codes. In 6th USENIX Conference on File and Storage Technologies, FAST 2008, February 26-29, 2008, San Jose, CA, USA. 97--110. http://www.usenix.org/events/fast08/tech/plank.html Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. James S. Plank, Mario Blaum, and James L. Hafner. 2013. SD codes: erasure codes designed for how storage systems really fail. In Usenix Conference on File and Storage Technologies. 95--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Irving S Reed and Gustave Solomon. 1960. Polynomial codes over certain finite fields. Journal of the Society for Industrial & Applied Mathematics 8, 2 (1960), 300--304.Google ScholarGoogle ScholarCross RefCross Ref
  32. Peter Scheuermann, Gerhard Weikum, and Peter Zabback. 1993. Adaptive load balancing in disk arrays. In Foundations of Data Organization and Algorithms. Springer, 345--360. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Peter scheuermann, Gerhard Weikum, and Peter Zabback. 1998. Data partitioning and load balancing in parallel disk systems. the VLDB Journal 7, 1 (1998), 48--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Bianca Schroeder and Garth A Gibson. 2007. Disk failures in the real world: What does an MTTF of 1,000,000 hours mean to you. In Proceedings of the 5th USENIX conference on File and Storage Technologies, Vol. 6. 2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Zhirong Shen and Jiwu Shu. 2014. HV Code: An All-Around MDS Code to Improve Efficiency and Reliability of RAID-6 Systems. In Ieee/ifip International Conference on Dependable Systems and Networks. 550--561. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Itzhak Tamo, Zhiying Wang, and Jehoshua Bruck. 2011. Zigzag Codes: MDS Array Codes With Optimal Rebuilding. IEEE Transactions on Information Theory 59, 3 (2011), 1597--1616. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Shenggang Wan, Qiang Cao, Changsheng Xie, Ben Eckart, and Xubin He. 2010. Code-M: Anon-mds erasure code scheme to support fast recovery from up to two-disk failures in storage systems. In Dependable Systems and Networks (DSN), 2010 IEEE/IFIP International Conference on. IEEE, 51--60.Google ScholarGoogle Scholar
  38. Chentao Wu, Xubin He, Guanying Wu, Shenggang Wan, Xiaohua Liu, Qiang Cao, and Changsheng Xie. 2011. HDP code: A Horizontal-Diagonal Parity Code to Optimize I/O load balancing in RAID-6. In Dependable Systems & Networks (DSN), 2011 IEEE/IFIP 41st International Conference on. IEEE, 209--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Chentao Wu, Shenggang Wan, Xubin He, and Qiang Cao. 2011. H-Code: A Hybrid MDS Array Code to Optimize Partial Stripe Writes in RAID-6. In Parallel & Distributed Processing Symposium. 782--793. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Ping Xie, Jianzhong Huang, Qiang Cao, Xiao Qin, and Changsheng Xie. 2013. V2-Code: A new non-MDS array code with optimal reconstruction performance for RAID-6. In Cluster Computing (CLUSTER), 2013 IEEE International Conference on. IEEE, 1--8.Google ScholarGoogle ScholarCross RefCross Ref
  41. Ping Xie, Jianzhong Huang, Qiang Cao, and Changsheng Xie. 2014. Balanced P-Code: A RAID-6 Code to Support Highly Balanced I/Os for Disk Arrays. In IEEE International Conference on Networking, Architecture, and Storage. 133--137. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Qin Xin, Ethan L Miller, Thomas Schwarz, Darrell DE Long, Scott A Brandt, and Witold Litwin. 2003. Reliability mechanisms for very large storage systems. In Mass Storage Systems and Technologies, 2003.(MSST 2003). Proceedings. 20th IEEE/11th NASA Goddard Conference on. IEEE, 146--156. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Lihao Xu, Vasken Bohossian, Jehoshua Bruck, and David G Wagner. 1999. Low-density MDS codes and factors of complete graphs. Information Theory, IEEE Transactions on 45, 6 (1999), 1817--1826. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Lihao Xu and Jehoshua Bruck. 1999. X-code: MDS array codes with optimal encoding. Information Theory, IEEE Transactions on 45, 1 (1999), 272--276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. GV Zaitsev, Victor Alexandrovich Zinov'ev, and NV Semakov. 1983. Minimum-check-density codes for correcting bytes of errors, erasures, or defects. Problemy Peredachi Informatsii 19, 3 (1983), 29--37.Google ScholarGoogle Scholar

Index Terms

  1. N-Code: An Optimal RAID-6 MDS Array Code for Load Balancing and High I/O Performance

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        ICPP '19: Proceedings of the 48th International Conference on Parallel Processing
        August 2019
        1107 pages
        ISBN:9781450362955
        DOI:10.1145/3337821

        Copyright © 2019 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 5 August 2019

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        Overall Acceptance Rate91of313submissions,29%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader