Object-Oriented Stable Storage Based on Mirroring
Stable storage can be seen as an ideal storage medium that, given a set of failure assumptions, protects user data from corruption or loss. The integrity of the stored data must be guaranteed even in the presence of crash failures. In this paper, we show how to realize stable storage using a technique called mirroring. The main idea is to write the data to two locations instead of one, in a sequential order. If one write operation fails, the technique ensures that the other copy is in a consistent state. It may be the state that was valid before the write operation, or it may already be the new one. Of course, there must be some mechanism to determine which one is correct. The purpose of the paper is therefore to describe the mirroring algorithm, and to present a state automaton covering all possible situations that can occur in the case of crash failures. Finally, an implementation in Ada 95 is presented.
KeywordsMemory Management Mirroring Shadowing Stable Storage Fault Tolerance Ada 95
Unable to display preview. Download preview PDF.
- 1.Lampson, B.W., Sturgis, H.E.: “Crash Recovery in a Distributed Data Storage System”. Technical report, XEROX Research, Palo Alto (June 1979). Much of the material appeared in Distributed Systems-Architecture and Implementation, ed. Lampson, Paul, and Siegert, Lecture Notes in Computer Science, Vol. 105. Springer Verlag (1981), pp. 246–265 and 357–370.Google Scholar
- 2.Ralston, A., Reilly, E.D.: Encyclopedia of Computer Science Third Edition. Van Nostrand Reinhold, New York (1993).Google Scholar
- 4.ISO: International Standard ISO/IEC 8652:1995(E): Ada Reference Manual, Lecture Notes in Computer Science, Vol. 1246. Springer Verlag (1997); ISO 1995.Google Scholar
- 6.Kienzle, J., Jiménez-Peris, R., Romanovsky, A., Patiño-Martinez, M.: “Transaction Support for Ada”. International Conference on Reliable Software Technologies–Ada-Europe’2001, Leuven, Belgium, May 14–18, 2001, to be published in Lecture Notes in Computer Science, Springer Verlag (2001).Google Scholar
- 7.Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison Wesley, Reading, MA (1995).Google Scholar
- 8.Kienzle, J., Strohmeier, A.: “Shared Recoverable Objects”. In Reliable Software Technologies–Ada-Europe’99, Santander, Spain, Lecture Notes in Computer Science, Vol. 1622. Springer Verlag (1999), pp. 387–411.Google Scholar
- 9.Wolf, T., Strohmeier, A.: “Fault Tolerance by Transparent Replication for Distributed Ada 95”. In Reliable Software Technologies–Ada-Europe’99, Santander, Spain, Lecture Notes in Computer Science, Vol. 1622. Springer Verlag (1999), pp. 412–424.Google Scholar