сериализация — аварийное восстановление данных в приложении C ++

У меня есть приложение C ++, которое обрабатывает сетевые пакеты с высокой скоростью передачи данных.
Это приложение имеет различные структуры данных (карты / списки STL и т. Д.), Поддерживающие состояние приложения. Эти структуры данных часто обновляются.
Входные данные для этого приложения подвержены ошибкам, что делает его уязвимым для сбоев.

Я хочу сохранить состояние приложения (различные структуры данных) на постоянном носителе, чтобы восстановить его после сбоя.
Есть ли какие-либо рамки / библиотеки / практики, которые могут помочь мне в достижении того же.

Просьба не направлять этот поток на «устранение уязвимости к сбоям».

0

Решение

Вы должны взглянуть на Перезагрузка и восстановление фреймворка рецепт от Кейт Грегори. Это видео, которое объясняет, как использовать эту стратегию. Кроме того, взгляните на Восстановление приложений и перезагрузка для справки. Я использовал и изменил этот рецепт, и он работает безупречно.

0

Другие решения

относительно

Входные данные для этого приложения подвержены ошибкам, что делает его уязвимым для сбоев

Нет, ввод никогда не должен вызывать сбой приложения*. Это не вход, который подвержен ошибкам. Это приложение.

Единственное, что вы можете сделать, если вы действительно хотите, чтобы информация сохранялась, это сохранить ее в первую очередь, до каждая авария.

Предсказатель аварий может, конечно, пригодиться для этого.

Но общее понятие просто: сохраняйте то, что вам нужно сохранить, прежде чем сбой сделает это практически невозможным.

В разбитом состоянии вы не может полагаться ни на что внутри приложения.

Сохранение информации в этом состоянии, по крайней мере, потребует обширной проверки в момент использования этой сохраненной информации.

Короче,

  • Лучше всего исправить ошибки, но

  • в противном случае, в качестве временной меры вы можете сохранить информацию, когда она станет доступной (до вылетает) но потом

  • с целью переосмысления всего Шебанга с нуля, который я рекомендую.


*Конечно, если это не определено для этого.

-1

По вопросам рекламы [email protected]