15 Stimmen

Ressourcen zur absturzsicheren und fehlertoleranten Programmierung

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.

6voto

oluies Punkte 17326

Akka ist ein Framework für Java und Scala, das mit dem Gedanken des "let-it-crash" geschrieben wurde. Siehe dies Artikel y este Präsentation für eine Einführung in Actors und let-it-crash. Es wird auch genannt Fail-Fast y Arbeiter/Aufseher Stil.

Zwei gute Präsentationen über Erlang sind Systeme, die nie aufhören (und Erlang) y Nachrichtenübermittlung und Gleichzeitigkeit in Erlang

Theron ist eine Schauspieler-Bibliothek für C++, ich glaube auch, dass es etwas in Boost gibt.

Erlang kann auch C oder C++ aufrufen Code siehe dies für eine Diskussion. Java / Scala / Akka können auch C++-Code aufrufen.

(Wenn Sie C++ mögen, empfehle ich Ihnen, einen Blick auf Scala zu werfen, eine sehr schöne Sprache und besser als Java, wenn Sie von C++ kommen).

Auch Jonas Boners Präsentation Skalierbarkeit, Verfügbarkeit und Stabilitätsmuster ist eine gute Präsentation zu diesem Thema.

1voto

TTMAN Punkte 119

Das Aktor-Modell in den Sprachen Erlang und Scala das let it crash-Modell. Siehe dies Artikel .

0voto

Zu den oben genannten Antworten kommt noch hinzu, dass Groovy y GPars die übersehen wurde. Natürlich ist dies nicht C++.

Es gibt eine weitere experimentelle Bibliothek in C++ namens libcppa . Theron ist reifer als dies.

In jedem Fall ist es am besten, eines von beiden zu verwenden:

  1. Erlang
  2. Scala / Akka

0voto

Farshid Ashouri Punkte 13602

Wenn Sie Fehlertoleranzfunktionen in C++ implementieren wollen, müssen Sie Erlang neu schreiben. Erfinden Sie das Rad nicht neu, Erlang OTP ist da und seit über 35 Jahren kampferprobt. Verwenden Sie es!.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X