Ресурсы о программировании на отказоустойчивость и отказоустойчивость - PullRequest
15 голосов
/ 09 марта 2010

Мне нравится статья LWN "Программное обеспечение только для сбоев" , и я хотел бы узнать больше о программировании, обеспечивающем отказоустойчивость и отказоустойчивость.

Удивительно трудно гарантировать, что постоянное состояние является последовательным в ситуациях сбоя. Здесь я даже не говорю о распределенных операциях: это сложно и для одного узла: даже обычная БД Berkeley (хранилище данных BDB или параллельное хранилище данных BDB) может иметь разрушенную базу данных в случае сбоя системы. Мало того, что ограничения приложения высокого уровня нарушены, база данных может быть не открыта правильно, если происходит сбой системы.

Каковы хорошие ресурсы об отказоустойчивых и отказоустойчивых проектах, подходах и программировании.

Если ресурсы сосредоточены на средах C ++ и POSIX, я был бы признателен за это.

Ответы [ 3 ]

6 голосов
/ 24 июля 2010

Akka - это фреймворк для Java и Scala, который написан с учетом проблем, возникающих при работе с ним. Посмотрите эту статью и эту презентацию для ознакомления с актерами и дайте ему разбиться. Он также называется Fail-Fast и рабочий / супервизор стиль.

Два хороших представления об эрланге: Системы, которые никогда не останавливаются (и Эрланг) и Параллелизм передачи сообщений в Эрланге

Theron - это библиотека актеров для C ++, я также думаю, что в Boost тоже есть что-то.

Также Эрланг может звонить на C или C ++ код , смотрите это для обсуждения. Java / Scala / Akka также может вызывать код C ++.

(Если вам нравится C ++, я предлагаю вам взглянуть на Scala, очень хороший язык и лучше, чем Java, если вы пришли из C ++.)

Также презентация Джонаса Бонера Модели масштабируемости, доступности и стабильности - хорошая презентация по теме.

2 голосов
/ 24 июля 2010

Модель Aktor на языках Erlang и Scala, модель let it crash. Смотрите эту статью .

0 голосов
/ 04 февраля 2012

Чтобы добавить к вышеуказанному набору ответов, есть Groovy и GPars , которые были пропущены. Конечно это не C ++.

В C ++ есть еще одна экспериментальная библиотека, которая называется libcppa . Терон более зрелый, чем этот.

В любом случае, лучшим вариантом будет использовать:

  1. Erlang
  2. Скала / Акка
...