내 파일에 "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.