The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.04 - April (2013 vol.24)
pp: 701-715
B. Balasubramanian , Dept. of Electr. Eng., Princeton Univ., Princeton, NJ, USA
V. K. Garg , Electr. & Comput. Eng. Dept., Univ. of Texas at Austin, Austin, TX, USA
ABSTRACT
Replication is the prevalent solution to tolerate faults in large data structures hosted on distributed servers. To tolerate f crash faults (dead/unresponsive data structures) among n distinct data structures, replication requires f + 1 replicas of each data structure, resulting in nf additional backups. We present a solution, referred to as fusion that uses a combination of erasure codes and selective replication to tolerate f crash faults using just f additional fused backups. We show that our solution achieves O(n) savings in space over replication. Further, we present a solution to tolerate f Byzantine faults (malicious data structures), that requires only nf + f backups as compared to the 2nf backups required by replication. We explore the theory of fused backups and provide a library of such backups for all the data structures in the Java Collection Framework. The theoretical and experimental evaluation confirms that the fused backups are space-efficient as compared to replication, while they cause very little overhead for normal operation. To illustrate the practical usefulness of fusion, we use fused backups for reliability in Amazon's highly available key-value store, Dynamo. While the current replication-based solution uses 300 backup structures, we present a solution that only requires 120 backup structures. This results in savings in space as well as other resources such as power.
INDEX TERMS
replicated databases, client-server systems, computational complexity, data structures, fault tolerant computing, Java, computational complexity, distributed systems, fused data structure backup library, distributed servers, crash fault tolerance, dead data structure replication, unresponsive data structure replication, erasure codes, Byzantine faults, malicious data structures, Java collection framework, Amazon, Dynamo, Computer crashes, Servers, Indexes, Fault tolerance, Fault tolerant systems, Arrays, data structures, Distributed systems, fault tolerance
CITATION
B. Balasubramanian, V. K. Garg, "Fault Tolerance in Distributed Systems Using Fused Data Structures", IEEE Transactions on Parallel & Distributed Systems, vol.24, no. 4, pp. 701-715, April 2013, doi:10.1109/TPDS.2012.96
REFERENCES
[1] B. Balasubramanian and V.K. Garg, "Fused Data Structure Library (Implemented in Java 1.6)," Parallel and Distributed Systems Laboratory, http:/maple.ece.utexas.edu, 2010.
[2] E.R. Berlekamp, Algebraic Coding Theory. McGraw-Hill, 1968.
[3] J. Blömer, M. Kalfane, M. Karpinski, R. Karp, M. Luby, and D. Zuckerman, "An XOR-Based Erasure-Resilient Coding Scheme," Technical Report TR-95-048, Int'l Computer Science Inst., Aug. 1995.
[4] G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, and W. Vogels, "Dynamo: Amazon's Highly Available Key-Value Store," Proc. 21st ACM SIGOPS Symp. Operating Systems Principles (SOSP '07), pp. 205-220, 2007.
[5] R. Gallager, "Low-Density Parity-Check Codes," IRE Trans. Information Theory, vol. IT-8, no. 1, pp. 21-28, Jan. 1962.
[6] V.K. Garg, "Implementing Fault-Tolerant Services Using State Machines: Beyond Replication," Proc. 24th Int'l Conf. Distributed Computing (DISC), pp. 450-464, 2010.
[7] V.K. Garg and V. Ogale, "Fusible Data Structures for Fault Tolerance," Proc. 27th Int'l Conf. Distributed Computing Systems (ICDCS '07), June 2007.
[8] L. Lamport, "The Implementation of Reliable Distributed Multiprocess Systems," Computer Networks, vol. 2, pp. 95-114, 1978.
[9] L. Lamport, R.E. Shostak, and M.C. Pease, "The Byzantine Generals Problem," ACM Trans. Programming Languages and Systems, vol. 4, no. 3, pp. 382-401, 1982.
[10] M. Luby, "LT Codes," Proc. 43rd Symp. Foundations of Computer Science (FOCS '02), p. 271, 2002.
[11] V. Ogale, B. Balasubramanian, and V.K. Garg, "A Fusion-Based Approach for Tolerating Faults in Finite State Machines," Proc. IEEE Int'l Symp. Parallel and Distributed Processing (IPDPS '09), pp. 1-11, 2009.
[12] J.K. Ousterhout, P. Agrawal, D. Erickson, C. Kozyrakis, J. Leverich, D. Mazières, S. Mitra, A. Narayanan, M. Rosenblum, S.M. Rumble, E. Stratmann, and R. Stutsman, "The Case for RAMClouds: Scalable High-Performance Storage Entirely in Dram," ACM SIGOPS Operating Systems Rev., vol. 43, pp. 92-105, 2009.
[13] D.A. Patterson, G. Gibson, and R.H. Katz, "A Case for Redundant Arrays of Inexpensive Disks (RAID)," Proc. ACM SIGMOD Int'l Conf. Management of Data (SIGMOD '88), pp. 109-116, 1988.
[14] W.W. Peterson and E.J. Weldon, Error-Correcting Codes - Revised, second ed. The MIT Press, Mar. 1972.
[15] J.S. Plank, "A Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-Like Systems," Software - Practice and Experience, vol. 27, no. 9, pp. 995-1012, Sept. 1997.
[16] J.S. Plank, S. Simmerman, and C.D. Schuman, "Jerasure: A Library in C/C++ Facilitating Erasure Coding for Storage Applications - Version 1.2," Technical Report CS-08-627, Univ. of Tennessee, Aug. 2008.
[17] J.S. Plank and L. Xu, "Optimizing Cauchy Reed-Solomon Codes for Fault-Tolerant Network Storage Applications," Proc. IEEE Fifth Int'l Symp. Network Computing and Applications, pp. 173-180, 2006.
[18] M.O. Rabin, "Efficient Dispersal of Information for Security, Load Balancing, and Fault Tolerance," J. ACM, vol. 36, no. 2, pp. 335-348, 1989.
[19] I.S. Reed and G. Solomon, "Polynomial Codes over Certain Finite Fields," J. Soc. for Industrial and Applied Math., vol. 8, no. 2, pp. 300-304, 1960.
[20] F.B. Schneider, "Byzantine Generals in Action: Implementing Fail-Stop Processors," ACM Trans. Computer Systems, vol. 2, no. 2, pp. 145-154, 1984.
[21] F.B. Schneider, "Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial," ACM Computing Surveys, vol. 22, no. 4, pp. 299-319, 1990.
[22] C.E. Shannon, "A Mathematical Theory of Communication," Bell Systems Technical J., vol. 27, pp. 379-423 and 623-656, 1948.
[23] B. Balasubramanian and V.K. Garg, "Fused Data Structures for Handling Multiple Faults in Distributed Systems," Proc. Int'l Conf. Distributed Computing Systems (ICDCS '11), pp. 677-688, June 2011.
8 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool