Mir gefällt der LWN-Artikel "Nur-Absturz-Software" und ich würde gerne mehr über absturzsichere und fehlertolerante Programmierung lernen.
Es ist erstaunlich schwer sicherzustellen, dass der dauerhafte Zustand in Fehlersituationen konsistent ist. Ich spreche hier nicht einmal von verteilten Operationen: Auch das ist auf einem einzelnen Knoten schwierig: Sogar die normale Berkeley DB (BDB Data Store oder BDB Concurrent Data Store) kann eine zerstörte Datenbank haben, wenn das System abstürzt. Nicht nur, dass High-Level-Anwendungsbeschränkungen gebrochen werden, die Datenbank kann auch nicht korrekt geöffnet werden, wenn das System abstürzt.
Was sind gute Quellen für absturzsichere und fehlertolerante Entwürfe, Ansätze und Programmierung?
Wenn sich die Ressourcen auf C++- und POSIX-Umgebungen konzentrieren, würde ich das begrüßen.