Есть два способа прочитать ваш вопрос:
- «Является ли Amazon S3 идеальным?»
- «Как мне справиться со случаем, когда Amazon S3 не идеален?»
Ответ на (1) почти наверняка "нет". У них может быть много защиты, чтобы приблизиться, но все еще есть вероятность отказа.
Это оставляет (2). Дело в том, что устройства выходят из строя, иногда очевидными способами, а иногда - способами, которые кажутся работающими, но дают неправильный ответ. Чтобы справиться с этим, многие базы данных используют CRC для каждой страницы, чтобы гарантировать, что прочитанная страница с диска совпадает с той, которая была записана. Этот подход также используется в современных файловых системах (например, ZFS , которые могут записывать несколько копий страницы, каждая с CRC для обработки сбоев raid-контроллера. Я видел, как ZFS исправляет однобитовые ошибки с диска чтение второй копии; диски не идеальны.)
Как правило, вы должны иметь проверку, чтобы убедиться, что ваша система работает, как вы ожидаете. Использование хеш-функции - это хороший подход. Какой подход вы используете при обнаружении сбоя, зависит от ваших требований. Хранение нескольких копий, вероятно, является лучшим подходом (и, безусловно, самым простым), поскольку вы можете получить защиту от сбоев сайта, сбоев подключения и даже сбоев поставщика (выбрав второго поставщика) вместо просто избыточности в самих данных с помощью FEC.