Fault Tolerant External Memory Algorithms

  • Gerth Stølting Brodal
  • Allan Grønlund Jørgensen
  • Thomas Mølhave
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5664)


Algorithms dealing with massive data sets are usually designed for I/O-efficiency, often captured by the I/O model by Aggarwal and Vitter. Another aspect of dealing with massive data is how to deal with memory faults, e.g. captured by the adversary based faulty memory RAM by Finocchi and Italiano. However, current fault tolerant algorithms do not scale beyond the internal memory. In this paper we investigate for the first time the connection between I/O-efficiency in the I/O model and fault tolerance in the faulty memory RAM, and we assume that both memory and disk are unreliable. We show a lower bound on the number of I/Os required for any deterministic dictionary that is resilient to memory faults. We design a static and a dynamic deterministic dictionary with optimal query performance as well as an optimal sorting algorithm and an optimal priority queue. Finally, we consider scenarios where only cells in memory or only cells on disk are corruptible and separate randomized and deterministic dictionaries in the latter.


Maximum Element Priority Queue Internal Memory Block Transfer Memory Fault 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Tezzaron Semiconductor: Soft errors in electronic memory - a white paper (2004),
  2. 2.
    van de Goor, A.J.: Testing Semiconductor Memories: Theory and Practice. ComTex Publishing, Gouda, The Netherlands (1998) ISBN 90-804276-1-6Google Scholar
  3. 3.
    Huang, K.H., Abraham, J.A.: Algorithm-based fault tolerance for matrix operations. IEEE Transactions on Computers 33, 518–528 (1984)CrossRefzbMATHGoogle Scholar
  4. 4.
    Rela, M.Z., Madeira, H., Silva, J.G.: Experimental evaluation of the fail-silent behaviour in programs with consistency checks. In: Proc. 26th Annual International Symposium on Fault-Tolerant Computing, pp. 394–403 (1996)Google Scholar
  5. 5.
    Yau, S.S., Chen, F.C.: An approach to concurrent control flow checking. IEEE Transactions on Software Engineering SE-6(2), 126–137 (1980)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Pradhan, D.K.: Fault-tolerant computer system design. Prentice-Hall, Inc., Englewood Cliffs (1996)Google Scholar
  7. 7.
    Finocchi, I., Italiano, G.F.: Sorting and searching in the presence of memory faults (without redundancy). In: Proc. 36th Annual ACM Symposium on Theory of Computing, pp. 101–110. ACM Press, New York (2004)Google Scholar
  8. 8.
    Aggarwal, A., Vitter, J.S.: The input/output complexity of sorting and related problems. Commun. ACM 31, 1116–1127 (1988)MathSciNetCrossRefGoogle Scholar
  9. 9.
    Finocchi, I., Grandoni, F., Italiano, G.F.: Designing reliable algorithms in unreliable memories. Computer Science Review 1(2), 77–87 (2007)CrossRefzbMATHGoogle Scholar
  10. 10.
    Finocchi, I., Grandoni, F., Italiano, G.F.: Optimal resilient sorting and searching in the presence of memory faults. In: Bugliesi, M., Preneel, B., Sassone, V., Wegener, I. (eds.) ICALP 2006. LNCS, vol. 4051, pp. 286–298. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  11. 11.
    Brodal, G.S., Fagerberg, R., Finocchi, I., Grandoni, F., Italiano, G., Jørgensen, A.G., Moruz, G., Mølhave, T.: Optimal resilient dynamic dictionaries. In: Azar, Y., Erlebach, T. (eds.) ESA 2006. LNCS, vol. 4168, pp. 347–358. Springer, Heidelberg (2006)Google Scholar
  12. 12.
    Petrillo, U.F., 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, pp. 768–779 (2006)Google Scholar
  13. 13.
    Finocchi, I., Grandoni, F., Italiano, G.F.: Resilient search trees. In: Proc. 18th ACM-SIAM Symposium on Discrete Algorithms, pp. 547–554 (2007)Google Scholar
  14. 14.
    Jørgensen, A.G., Moruz, G., Mølhave, T.: Priority queues resilient to memory faults. In: Proc. 10th International Workshop on Algorithms and Data Structures, pp. 127–138 (2007)Google Scholar
  15. 15.
    Arge, L.: External memory data structures. In: Abello, J., Pardalos, P.M., Resende, M.G.C. (eds.) Handbook of Massive Data Sets, pp. 313–358. Kluwer Academic Publishers, Dordrecht (2002)CrossRefGoogle Scholar
  16. 16.
    Vitter, J.S.: Algorithms and data structures for external memory. Foundations and Trends in Theoretical Computer Science 2(4), 305–474 (2008)MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Bayer, R., McCreight, E.: Organization and maintenance of large ordered indexes. Acta Informatica 1, 173–189 (1972)CrossRefzbMATHGoogle Scholar
  18. 18.
    Boyer, R.S., Moore, J.S.: MJRTY: A fast majority vote algorithm. In: Automated Reasoning: Essays in Honor of Woody Bledsoe, pp. 105–118 (1991)Google Scholar
  19. 19.
    Brodal, G.S., Fagerberg, R., Jacob, R.: Cache-oblivious search trees via binary trees of small height. In: Proc. 13th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 39–48 (2002)Google Scholar
  20. 20.
    Brodal, G.S., Katajainen, J.: Worst-case efficient external-memory priority queues. In: Arnborg, S. (ed.) SWAT 1998. LNCS, vol. 1432, pp. 107–118. Springer, Heidelberg (1998)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Gerth Stølting Brodal
    • 1
  • Allan Grønlund Jørgensen
    • 1
  • Thomas Mølhave
    • 1
  1. 1.BRICS, MADALGO, Department of Computer ScienceAarhus UniversityDenmark

Personalised recommendations