Có thể chỉ là một bit chuyển đổi để tập tin của tôi hiển thị cho tôi một chữ cái Q Q thay vì một chữ Siên


22

Trong ứng dụng của chúng tôi, chúng tôi sử dụng Hibernate và PostgreSQL để lưu trữ dữ liệu. Trong một trong các bảng cơ sở dữ liệu của chúng tôi, chúng tôi có một cột phân biệt đối xử, ví dụ "TIPPSPIEL". Nó là một chuỗi cố định và không thể bị thao túng bởi bất kỳ người dùng nào.

Đột nhiên, chúng tôi có một mục trong bảng lớn này, nơi chúng tôi có "TIPPQPIEL" thay vì "TIPPSPIEL". Chúng tôi không có manh mối làm thế nào điều này có thể xảy ra.

Có thể bằng cách nào đó, đĩa cứng của chúng tôi đang chuyển đổi một bit, vì vậy chữ "S" của chúng tôi không còn được mã hóa thành "1010001" mà đột nhiên trở thành "Q" trên đĩa cứng với một bit được chuyển như thế này: 1010011?

Tôi không phải là một chuyên gia về đĩa cứng một chút vật lý nhưng tôi đoán một hệ điều hành hoặc một đĩa có tổng kiểm tra và các thứ khác để đảm bảo rằng điều này không thể xảy ra.

Có thể chỉ là một bit chuyển đổi để tập tin của tôi hiển thị cho tôi một chữ cái "Q" thay vì "S"?

CẬP NHẬT: Chúng tôi đã phân tích thêm. Cơ sở dữ liệu nô lệ của chúng tôi có được Bản ghi WAL từ chủ (tính năng PostgreSQL). Dù thế nào: máy chủ nô lệ của chúng tôi nên được đồng bộ hóa. Nhưng nô lệ không đồng bộ về hàng đặc biệt này. Chúng ta có thể thấy rằng nó đã xảy ra vài ngày trước mà không có bất kỳ sự tương tác nào từ người dùng về mục cụ thể này. Vì vậy, nó PHẢI là một chút lật xung quanh. đáng sợ!


Tôi muốn giả sử điều này đến từ một bộ nhớ bị lỗi. Bạn vẫn có nhật ký, khi cột đó được viết?
ott--

1
Không thể nhưng có thể, các bit trong quá trình chuyển đổi được thực hiện với mức độ đều đặn cao, xem 'bitqueting'
Sirch

Câu trả lời:


10

Thật hiếm khi chúng ta thấy một câu hỏi thực sự thú vị trên trang web này, vì vậy trước tiên xin cảm ơn bạn.

Tôi nghĩ rằng những gì bạn đang thấy thực sự là một lỗi một bit, thật đáng ngạc nhiên bạn có thể nhận ra đó là sự thật nhưng bạn đã đúng khi cho rằng bit thứ hai ít quan trọng nhất đã bị chuyển đổi (giả sử bạn đang sử dụng ASCII dù sao).

Đối với tổng kiểm tra, vv khi nó được ghi vào đĩa, có khả năng nó sẽ được xác minh là tốt - tôi khá chắc chắn rằng vấn đề này đã phát triển sau đó thông qua một lỗi rò rỉ từ tính đơn giản. Nhưng bạn đã đúng, có các kiểm tra mã hóa được thực hiện, nó khác với nhà sản xuất nhưng có thể có lỗi ở đâu đó nói rằng 'điều này có vẻ hơi lạ' - nhưng chuỗi IO của bạn có sẵn tùy chọn nào? từ chối bạn cả khối? Tôi sẽ giả định rằng đây là một đĩa không RAID đơn vì các đĩa RAID có xu hướng có nhiều tùy chọn hơn khi chúng phát hiện ra lỗi.

Đó là một điều kỳ lạ, mặc dù điều này có thể xảy ra nhiều lần trong một giây trên toàn thế giới.


1
Bạn đã đúng, đó là một thiết lập đĩa không Raid trong trường hợp này. như phân tích sâu hơn của tôi cho thấy nó đã xảy ra rất lâu sau khi hồ sơ được viết.
Janning

1
Nếu 20 năm làm sysadmin tôi đã thấy 3 trường hợp lật một lần. Chỉ một trong số đó có thể được chứng minh 100%. Hai cái còn lại bị nghi ngờ là bit bị lật, chúng tôi không thể biết chắc chắn. (Bit có thể bị lật trong bộ nhớ sau khi đọc tệp. Vào thời điểm chúng tôi nhận thấy sự khác biệt, tệp gốc không còn khả dụng nữa hoặc đã bị chạm vào. Tôi khá chắc chắn rằng nó xảy ra thường xuyên hơn mọi người nghĩ, nhưng nó hiếm khi được chú ý và thường không thể chứng minh được nếu nó được chú ý.
Tonny

1
Không đọc toàn bộ khối là chính xác những gì ổ đĩa làm khi chúng gặp lỗi không thể sửa. Không thể chỉ có một lần lật trong phần dữ liệu người dùng của khu vực và không bị phát hiện. Các bit phải được lật khi nó được ghi vào đĩa.
psusi

Câu hỏi này có nên được thực hiện?
Deer Hunter

@psusi Không phải là không thể, vì bạn chỉ cần đủ số lần lật trong khu vực để làm cho ECC xuất hiện đúng. Không thể, nhưng có thể, và các nhà sản xuất đĩa trích dẫn tỷ lệ lỗi đủ cao mà bạn thực sự phải mong đợi để xem một số. Tôi đã nghe tin đồn rằng mọi người ZFS nhìn thấy chúng (do tổng kiểm tra dữ liệu cấp ZFS) ...
derobert
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.