Назад | Перейти на главную страницу

Возможно ли, что переключится только один бит, и мой файл покажет мне букву «Q» вместо «S»

В нашем приложении мы используем Hibernate и PostgreSQL для хранения данных. В одной из таблиц нашей базы данных есть столбец дискриминатора, в котором написано, например, «TIPPSPIEL». Это фиксированная строка, которой никто не может управлять.

Внезапно у нас появилась одна запись в этой огромной таблице, где вместо «TIPPSPIEL» было «TIPPQPIEL». Мы понятия не имеем, как это может случиться.

Возможно ли, что наш жесткий диск каким-либо образом переключается на один бит, так что наша буква «S» больше не кодируется как «1010001», а внезапно становится «Q» на жестком диске с одним переключенным битом, например, 1010011?

Я не разбираюсь в жестких дисках и немного разбираюсь в физике, но полагаю, что в ОС или на диске есть контрольные суммы и другие вещи, чтобы этого не произошло.

Возможно ли, что переключится только один бит, и в моем файле будет отображаться буква «Q» вместо «S»?

ОБНОВИТЬ: Мы провели дальнейший анализ. Наша подчиненная база данных получает свои записи WAL от мастера (функция PostgreSQL). Как бы то ни было: наш подчиненный сервер должен быть синхронизирован. Но ведомое устройство не было синхронизировано относительно этой конкретной строки. Мы могли видеть, что это произошло несколько дней назад, без какого-либо взаимодействия со стороны пользователя по поводу этой конкретной записи. Так что это ДОЛЖНО быть немного перевернутым. страшно!

Мы так редко видим действительно интересный вопрос на этом сайте, поэтому прежде всего спасибо.

Я думаю, что вы видите действительно однобитную ошибку, удивительно, что вы могли заметить это, если честно, но вы правы, предполагая, что был переключен второй наименее значимый бит (при условии, что вы используете ASCII тем не мение).

Что касается контрольных сумм и т. Д., Когда они были записаны на диск, вероятно, они были проверены как хорошо - я почти уверен, что эта проблема возникла впоследствии из-за простой ошибки магнитной утечки. Но вы правы, есть проверки кодировки, это зависит от производителя, но, вероятно, есть ошибка где-то говоря «это выглядит немного странно» - но какой вариант доступен в вашей цепочке ввода-вывода? отказывать вам в целости блока? Я собираюсь предположить, что это один диск без RAID, так как диски с RAID, как правило, имеют больше возможностей, доступных для них при обнаружении ошибок.

Это странно, хотя подобные вещи, вероятно, происходили несколько раз в секунду по всему миру.