Câu hỏi phỏng vấn Cosmos DB
Câu hỏi

**Optimistic Concurr...

Câu trả lời

Kiểm soát đồng thời lạc quan (Optimistic Concurrency Control - OCC) là một phương pháp quản lý giao dịch trong hệ thống cơ sở dữ liệu hoặc ứng dụng có nhiều giao dịch xảy ra cùng một lúc. Phương pháp này giả định rằng xung đột giữa các giao dịch là hiếm gặp và cho phép các giao dịch thực hiện mà không cần khóa dữ liệu trước. Thay vào đó, OCC sẽ kiểm tra xung đột ở cuối giao dịch, trước khi cam kết (commit) dữ liệu vào cơ sở dữ liệu. Nếu phát hiện có xung đột, giao dịch sẽ bị hủy bỏ và có thể được khởi động lại[1][3].

Trong Azure Cosmos DB, OCC được thực hiện thông qua việc sử dụng các thẻ ETag (HTTP entity tags). Mỗi tài nguyên trong Cosmos DB có một ETag, và ETag này được cập nhật mỗi khi một tài liệu được cập nhật. Khi một giao dịch cập nhật một tài liệu, nó sẽ bao gồm ETag hiện tại trong tiêu đề If-Match của yêu cầu HTTP. Nếu ETag trùng khớp với giá trị ETag trên máy chủ, giao dịch cập nhật sẽ được thực hiện. Nếu ETag không còn hiện hành, máy chủ sẽ từ chối thao tác với mã lỗi "HTTP 412 Precondition failure", và giao dịch cần phải tải lại tài liệu để lấy giá trị ETag mới[4][17].

Citations:
[1] https://fizalihsan.github.io/technology/transaction.html
[2] https://wangziqi2013.github.io/article/2018/03/21/Analyzing-OCC-Anomalies-and-Solutions.html
[3] https://www.linkedin.com/advice/0/what-differen...

expert

expert

Gợi ý câu hỏi phỏng vấn

senior

Tại sao không đặt người dùng, bài viết và bình luận vào chỉ một container trong Cosmos DB?

senior

Giải thích việc sử dụng mô hình nhất quán Bounded Staleness trong Cosmos DB.

middle

Phân vùng logic trong Cosmos DB là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào