Dirty read là gì?

Phrase Database

Việc đọc dữ liệu được ghi bởi một giao dịch (transaction) không được commit được gọi là dirty read.

Việc đọc này được gọi là dirty read bởi vì:

  • Luôn có khả năng giao dịch không được commit có thể roll back sau đó.
  • Do đó, giao dịch không được commit có thể làm cho các giao dịch khác đọc một giá trị thậm chí không tồn tại.
  • Điều này dẫn đến sự không nhất quán của cơ sở dữ liệu.

Hãy xem xét ví dụ sau:

  • T1 đọc giá trị của A.
  • T1 cập nhật giá trị của A trong buffer.
  • T2 đọc giá trị của A từ buffer.
  • T2 ghi giá trị cập nhật của A.
  • T2 commit.
  • T1 lỗi trong các giai đoạn sau và roll back.

Trong ví dụ này

  • T2 đọc giá trị dirty của A được ghi bởi giao dịch không commit T1.
  • T1 lỗi trong các giai đoạn sau và roll back.
  • Do đó, giá trị mà T2 đọc được là không chính xác.
  • Do đó, cơ sở dữ liệu trở nên không nhất quán.
Learning English Everyday