Share

Quay lại
Trang chủ / Kiến thức / Phát triển offshore / Mất dữ liệu cập nhật (Lost Update) là gì? Xử lý như thế nào?

Mất dữ liệu cập nhật (Lost Update) là gì? Xử lý như thế nào?

15/12/2023
01/12/2021
Mất dữ liệu cập nhật (Lost Update) là gì? Xử lý như thế nào?

Dữ liệu là phần không thể thiếu của một website, phần mềm, hay bất kỳ hệ thống nào. Việc giữ cho dữ liệu bảo mật và không bị mất mát là vô cùng quan trọng. 

Bài toán đặt ra là khi hệ thống có nhiều người dùng cùng can thiệp vào một dữ liệu có thể sẽ gây ra hiện tượng mất dữ liệu khi cập nhật hay còn gọi là Lost update. Vậy lost update là gì? Cách xử lý dữ liệu như thế nào để tránh trường hợp này. Hãy cùng tìm hiểu về Lost update ở bài viết dưới đây nhé!

Lost update là gì?

Khi có nhiều hơn một người dùng cùng truy cập vào hệ thống để cập nhật dữ liệu trong cùng một khoảng thời gian sẽ xảy ra hiện tượng lost update.        

Ví dụ về lost update

Ở ví dụ trong ảnh, cô bạn Alice đã cập nhật Qty = 2, nhưng sau khi cập nhật xong Alice sẽ thấy Qty = 9. Lý do vì anh chàng Bob đã update giá trị Qty = 9 sau Alice nên hệ thống sẽ nhận dữ liệu mà Bob đã cập nhật. Alice không biết Bob đã cập nhật cùng lúc đó nên cô ấy nghĩ rằng hệ thống đang gặp lỗi.

Những hậu quả khi chưa xử lý được lost update.

  • Hệ thống lỗi, gây trải nghiệm rất tệ cho người dùng.

  • Thất thoát dữ liệu. Quy mô hệ thống càng lớn, lượng dữ liệu thất thoát càng lớn.

  • Với hệ thống đặt lịch, bán hàng sẽ ảnh hưởng nghiêm trọng đến doanh số.

Xem thêm: Amazon RDS là gì? Tổng quan về dịch vụ lưu trữ đám mây.

Cách xử lý lost update.

Có hai cách xử lý lost update phổ biến nhất là: Khóa chủ quan (Optimistic Locking) và Khóa bi quan (Pessimistic Locking)

1. Khóa chủ quan (Optimistic Locking).

Với phương pháp Khóa chủ quan, bất kỳ người dùng nào cũng có thể đọc và thực hiện cập nhật dữ liệu. Tuy nhiên, khi có nhiều hơn 1 người dùng cùng thực hiện hành động cập nhật cùng 1 dữ liệu, người đầu tiên thực hiện cập nhật sẽ cập nhật thành công. Những người còn lại sẽ được thông báo rằng dữ liệu đó đang được sử dụng, không thể thực hiện cập nhật lúc đó và có thể thử lại sau.

Ưu điểm của Optimistic Locking là không khóa bất kỳ dữ liệu trong suốt quá trình cập nhật dữ liệu mà chỉ trả ra ngoại lệ khi dữ liệu đó đang được cập nhật.

Bất lợi khi sử dụng cách này là người dùng sẽ phải thử cập nhật hoặc tải lại trang nhiều lần nếu không thể cập nhật. Điều này vẫn có khả năng gây ra trải nghiệm người dùng không tốt trên hệ thống. 

Kích hoạt khóa chủ quan trong Spring data JPA.

2. Khóa bi quan (Pessimistic Locking)

Khi sử dụng khóa bi quan, dữ liệu mà người dùng truy cập sẽ bị khoá cho đến khi người dùng thực hiện xong quá trình cập nhật. Người dùng khác sẽ không thể truy cập dữ liệu này trong khi bị khoá.

Cách này đem lại hiệu năng tốt hơn nhưng thực hiện quy mô lớn sẽ gặp khó khăn.

Kích hoạt khoá bi quan trong Spring data JPA.

Kết luận.

Trên đây là những rủi ro khi xử lý cập nhật dữ liệu và cách xử lý bài toán lost update. Ngoài ra công ty Rabiloo chúng tôi còn cung cấp dịch vụ phát triển website với độ bảo mật cao và những giải pháp phòng tránh mất dữ liệu của người dùng. Liên hệ ngay với chúng tôi để được tư vấn.

 

Share


Cập nhật bài viết mới nhất từ chuyên gia

Không được để trống
Không được để trống
Không được để trống
Không được để trống
Tìm kiếm
Tags
Website là gì? Khái niệm, cấu tạo, phân loại các Website hiện nay
24/11/2023
21/12/2023
Website là gì? Khái niệm, cấu tạo, phân loại các Website hiện nay

Gặp gỡ và lắng nghe

Không được để trống
Không được để trống
Không được để trống
Không được để trống