내 파일에 "S"대신 문자 "Q"가 표시되도록 하나의 비트 만 전환 할 수 있습니까?


22

우리의 애플리케이션에서는 Hibernate와 PostgreSQL을 사용하여 데이터를 저장합니다. 데이터베이스 테이블 중 하나에 예를 들어 "TIPPSPIEL"과 같은 판별 기 열이 있습니다. 고정 문자열이며 사용자가 조작 할 수 없습니다.

갑자기이 거대한 테이블에 "TIPPSPIEL"대신 "TIPPQPIEL"이있는 항목이 하나있었습니다. 우리는 이것이 어떻게 일어날 수 있는지 전혀 모른다.

하드 디스크가 1 비트를 전환한다는 의미가있을 수 있으므로 문자 "S"가 더 이상 "1010001"로 인코딩되지 않지만 다음과 같이 1 비트가 전환 된 하드 디스크에서 갑자기 "Q"가됩니다 : 1010011?

나는 하드 디스크의 비트 물리학 전문가가 아니지만 OS 또는 디스크에 체크섬 및 기타 일이 발생하지 않도록하기 위해 체크섬 및 기타 항목이 있다고 생각합니다.

파일이 "S"대신 "Q"문자를 표시하도록 하나의 비트 만 전환 할 수 있습니까?

업데이트 : 우리는 추가 분석을했습니다. 슬레이브 데이터베이스는 마스터 (PostgreSQL 기능)에서 WAL 레코드를 가져옵니다. 무엇이든 : 우리의 슬레이브 서버는 동기화되어 있어야합니다. 그러나이 특정 행과 관련하여 슬레이브는 동기화되지 않았습니다. 이 특정 항목에 대한 사용자의 상호 작용없이 며칠 전에 발생한 것을 알 수 있습니다. 따라서 약간 뒤집어 야합니다. 무서운!


오히려 이것이 잘못된 메모리에서 나온 것으로 가정합니다. 해당 열을 쓸 때 여전히 로그가 있습니까?
— ott--

1
가능하지는 않지만, 운송중인 비트는 높은 규칙 성으로 뒤집어집니다. '비트 쿼팅'
— Sirch

답변:


10

이 사이트에서 실제로 흥미로운 질문을하는 것은 매우 드물기 때문에 우선 감사합니다.

나는 당신이보고있는 것이 실제로 단일 비트 오류가 있다고 생각합니다. 놀랍게도 정직하게 말할 수는 있지만 두 번째로 중요한 비트가 전환되었다고 가정하면 정확합니다 (ASCII를 사용한다고 가정) 어쨌든).

디스크에 쓰여질 때 체크섬 등은 잘 확인되었을 것입니다.이 문제는 간단한 자기 누설 오류를 통해 나중에 발생했을 것입니다. 그러나 당신은 맞습니다, 인코딩 검사가 완료되었습니다. 제조 업체마다 다르지만 어딘가에 '이것이 조금 이상해 보입니다' 라는 오류가 있을 수 있습니다. 그러나 IO 체인은 어떤 옵션을 사용할 수 있습니까? 당신은 전체 블록을 거부? RAID 디스크는 오류를 감지 할 때 더 많은 옵션을 사용할 수 있으므로 RAID가 아닌 단일 디스크라고 가정하겠습니다.

이런 종류의 일이 아마도 전 세계에서 1 초에 여러 번 일어 났지만 그것은 이상한 일입니다.


1
이 경우에는 비 RAID 디스크 설정이었습니다. 추가 분석에 따르면 레코드가 작성된 후 오랫동안 발생했습니다.
— Janning

1
20 년 동안 시스템 관리자로 일한 경우 단일 비트 플립 3 건이 나타났습니다. 그중 하나만 100 % 증명할 수있었습니다. 다른 2 개는 비트가 뒤집힌 것으로 의심되어 확실하게 알 수 없었습니다. (파일을 읽은 후 비트가 메모리에 넘겨 졌을 수 있습니다. 우리가 불일치를 발견했을 때 원본 파일을 더 이상 사용할 수 없거나 건드리지 않았습니다. 모든 사람이 생각하는 것보다 더 자주 발생한다고 확신하지만 거의 눈에 띄지 않습니다. 일반적으로 눈에 띄는 경우 증명할 수 없음
— Tonny

1
전체 블록 읽기 실패는 수정 불가능한 오류가 발생했을 때 드라이브가 수행하는 작업입니다. 섹터의 사용자 데이터 부분에 단일 비트 플립 만 있고 감지되지 않는 것은 불가능합니다. 비트를 디스크에 쓸 때 비트가 뒤집어 졌어 야합니다.
— psusi

이 질문을 정식으로해야합니까?
— 사슴 사냥꾼

@psusi ECC가 제대로 나오도록하려면 섹터에 충분한 비트 플랩이 필요하기 때문에 불가능하지 않습니다. 그러나 가능하지는 않지만 디스크 제조업체는 실제로 예상 할 수있을만큼 높은 오류율을 인용합니다. ZFS 사람들이 ZFS 수준의 데이터 체크섬으로 인해이를보고 있다는 소문을 들었습니다.
— derobert
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.