Abstract
In this paper we investigate the design and analysis of algorithms resilient to memory faults. We focus on algorithms that, despite the corruption of some memory values during their execution, are nevertheless able to produce a correct output at least on the set of uncorrupted values. In this framework, we consider two fundamental problems: sorting and searching. In particular, we prove that any O(nlog n) comparison-based sorting algorithm can tolerate the corruption of at most O((nlog n)1/2) keys. Furthermore, we present one comparison-based sorting algorithm with optimal space and running time that is resilient to O((nlog n)1/3) memory faults. We also prove polylogarithmic lower and upper bounds on resilient searching.
Similar content being viewed by others
References
Aho, A., Hopcroft, J.E., Ullman, J.D.: The Design and Analysis of Computer Algorithms. Addison–Wesley, Reading (1974)
Aslam, J.A., Dhagat, A.: Searching in the presence of linearly bounded errors. In: Proc. 23rd ACM Symp. on Theory of Computing (STOC’91), pp. 486–493, 1991
Assaf, S., Upfal, E.: Fault-tolerant sorting networks. SIAM J. Discrete Math. 4(4), 472–480 (1991)
Aumann, Y., Bender, M.A.: Fault-tolerant data structures. In: Proc. 37th IEEE Symp. on Foundations of Computer Science (FOCS’96), pp. 580–589, 1996
Blömer, J., Seifert, J.-P.: Fault based cryptanalysis of the advanced encryption standard (AES). In: Proc. 7th International Conference on Financial Cryptography (FC’03). LNCS vol. 2742, pp. 162–181, 2003
Borgstrom, R.S., Rao Kosaraju, S.: Comparison based search in the presence of errors. In: Proc. 25th ACM Symp. on Theory of Computing (STOC’93), pp. 130–136, 1993
Chen, P.M., Lee, E.L., Gibson, G.A., Katz, R.H., Patterson, D.A.: RAID: high-performance, reliable secondary storage. ACM Comput. Surv. 26(2), 145–185 (1994)
Chlebus, B.S., Gambin, A., Indyk, P.: PRAM computations resilient to memory faults. In: Proc. 2nd Annual European Symp. on Algorithms (ESA’94). LNCS vol. 855, pp. 401–412, 1994
Chlebus, B.S., Gambin, A., Indyk, P.: Shared-memory simulations on a faulty-memory DMM. In: Proc. 23rd International Colloquium on Automata, Languages and Programming (ICALP’96), pp. 586–597, 1996
Chlebus, B.S., Gasieniec, L., Pelc, A.: Deterministic computations on a PRAM with static processor and memory faults. Fundam. Inform. 55(3–4), 285–306 (2003)
Cook, C.R., Kim, D.J.: Best sorting algorithms for nearly sorted lists. Commun. ACM 23, 620–624 (1980)
Dhagat, A., Gacs, P., Winkler, P.: On playing “twenty questions” with a liar. In: Proc. 3rd ACM-SIAM Symp. on Discrete Algorithms (SODA’92), pp. 16–22, 1992
Farach-Colton, M.: Personal communication (January 2002)
Feige, U., Raghavan, P., Peleg, D., Upfal, E.: Computing with noisy information. SIAM J. Comput. 23, 1001–1018 (1994)
Ferraro Petrillo, U., Finocchi, I., Italiano, G.F.: The price of resiliency: a case study on sorting with memory faults. In: Proc. 14th Annual European Symposium on Algorithms (ESA’06), pp. 768–779, 2006
Finocchi, I., Italiano, G.F.: Sorting and searching in the presence of memory faults (without redundancy). In: Proc. 36th ACM Symposium on Theory of Computing (STOC’04), pp. 101–110, 2004
Finocchi, I., Grandoni, F., Italiano, G.F.: Optimal sorting and searching in the presence of memory faults. In: Proc. 33rd ICALP. LNCS vol. 4051, pp. 286–298, 2006
Finocchi, I., Grandoni, F., Italiano, G.F.: Resilient search trees. In: Proc. 18th ACM-SIAM Symposium on Discrete Algorithms (SODA 2007), pp. 547–553, 2007
Hamdioui, S., Al-Ars, Z., Van de Goor, J., Rodgers, M.: Dynamic faults in random-access-memories: concept, faults models and tests. J. Electron. Test. Theory Appl. 19, 195–205 (2003)
Henzinger, M.: The past, present and future of web search engines. Invited talk. In: 1st Int. Coll. Automata, Languages and Programming, Turku, Finland, 12–16 July 2004
Indyk, P.: On word-level parallelism in fault-tolerant computing. In: Proc. 13th Annual Symp. on Theoretical Aspects of Computer Science (STACS’96), pp. 193–204, 1996
Kleitman, D.J., Meyer, A.R., Rivest, R.L., Spencer, J., Winklmann, K.: Coping with errors in binary search procedures. J. Comput. Syst. Sci. 20, 396–404 (1980)
Lakshmanan, K.B., Ravikumar, B., Ganesan, K.: Coping with erroneous information while sorting. IEEE Trans. Comput. 40(9), 1081–1084 (1991)
Leighton, T., Ma, Y.: Tight bounds on the size of fault-tolerant merging and sorting networks with destructive faults. SIAM J. Comput. 29(1), 258–273 (1999)
Leighton, T., Ma, Y., Plaxton, C.G.: Breaking the Θ(nlog 2 n) barrier for sorting with faults. J. Comput. Syst. Sci. 54, 265–304 (1997)
May, T.C., Woods, M.H.: Alpha-particle-induced soft errors in dynamic memories. IEEE Trans. Elect. Dev. 26(2) (1979)
Mehlhorn, K., Näher, S.: LEDA: A Platform for Combinatorial and Geometric Computing. Cambridge University Press, Cambridge (1999)
Muthukrishnan, S.: On optimal strategies for searching in the presence of errors. In: Proc. 5th ACM-SIAM Symp. on Discrete Algorithms (SODA’94), pp. 680–689, 1994
Pelc, A.: Searching with known error probability. Theor. Comput. Sci. 63, 185–202 (1989)
Pelc, A.: Searching games with errors: fifty years of coping with liars. Theor. Comput. Sci. 270, 71–109 (2002)
Plauger, P.J., Stepanov, A.A., Lee, M., Musser, D.R.: The C++ Standard Template Library. Prentice Hall, New York (2000)
Quisquater, J.J., Samyde, D.: Eddy current for magnetic analysis with active sensor. In: Proc. International Conference on Research in SmartCards (E-Smart’02), pp. 185–194, 2002
Ravikumar, B.: A fault-tolerant merge sorting algorithm. In: Proc. 8th Annual Int. Conf. on Computing and Combinatorics (COCOON’02). LNCS vol. 2387, pp. 440–447, 2002
Rényi, A.: A Diary on Information Theory. Wiley, New York (1994) Original publication: Napló az Információelméletröl. Gondolat, Budapest (1976)
Skorobogatov, S., Anderson, R.: Optical fault induction attacks. In: Proc. 4th International Workshop on Cryptographic Hardware and Embedded Systems (CHES’02). LNCS vol. 2523, pp. 2–12, 2002
Tezzaron Semiconductor. Soft errors in electronic memory—a white paper, URL:http://www.tezzaron.com/about/papers/Papers.htm, January 2004
Ulam, S.M.: Adventures of a Mathematician. Scribners, New York (1977)
Van de Goor, A.J.: Testing Semiconductor Memories: Theory and Practice. ComTex Publishing, Gouda (1998)
Yao, A.C., Yao, F.F.: On fault-tolerant networks for sorting. SIAM J. Comput. 14, 120–128 (1985)
Author information
Authors and Affiliations
Corresponding author
Additional information
This work has been partially supported by the Sixth Framework Programme of the EU under Contract Number 507613 (Network of Excellence “EuroNGI: Designing and Engineering of the Next Generation Internet”) and by MIUR, the Italian Ministry of Education, University and Research, under Project ALGO-NEXT (“Algorithms for the Next Generation Internet and Web: Methodologies, Design and Experiments”). A preliminary version of this work was presented at the 36th ACM Symposium on Theory of Computing (STOC’04) .
Rights and permissions
About this article
Cite this article
Finocchi, I., Italiano, G.F. Sorting and Searching in Faulty Memories. Algorithmica 52, 309–332 (2008). https://doi.org/10.1007/s00453-007-9088-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00453-007-9088-4