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ợ!