Câu hỏi phỏng vấn Azure
Câu hỏi

Giải thích Optimistic Concurrency Control (OCC) là...

Câu trả lời

Optimistic Concurrency Control (OCC) là một phương pháp kiểm soát đồng thời không sử dụng khóa, được áp dụng trong các hệ thống giao dịch như hệ thống quản lý cơ sở dữ liệu quan hệ. OCC giả định rằng nhiều giao dịch có thể hoàn thành mà không can thiệp lẫn nhau. Trong khi thực hiện, các giao dịch sử dụng dữ liệu mà không cần phải khóa chúng. Trước khi cam kết, mỗi giao dịch sẽ kiểm tra xem có giao dịch nào khác đã sửa đổi dữ liệu mà nó đã đọc hay không. Nếu phát hiện có sự sửa đổi xung đột, giao dịch đang cam kết sẽ bị lùi lại và có thể được khởi động lại[3].

Trong Azure Cosmos DB, OCC được hỗ trợ thông qua các thẻ thực thể HTTP, hay còn gọi là ETags. Mỗi tài nguyên SQL API trong Cosmos DB đều có một ETag, và giá trị ETag này được thiết lập trên máy chủ mỗi khi một mục được cập nhật. ETag hoạt động như một dấu hiệu để kiểm tra phiên bản của một mục, giúp đảm bảo rằng một giao dịch chỉ có thể cập nhật một mục nếu nó đang làm việc trên phiên bản mới nhất của mục đó. Khi một giao dịch muốn cam kết các thay đổi của mình, nó sẽ kiểm tra xem có giao dịch nào khác đã cập nhật các mục dữ liệu tương tự kể từ khi nó đọc chúng hay không. Nếu không, cam kết thành công và số phiên bản hoặc dấu thời gian được tăng lên. Nếu có, cam kết thất bại và giao dịch phải bị hủy bỏ và thử lại[10][13].

Cosmos DB sử dụng ETags cùng với tiêu đề If-Match trong các yêu cầu HTTP để thực hiện OCC. Khi một ứng dụng cập nhật một mục, nó sẽ bao gồm ETag của mục đó trong tiêu đề If-Match của yêu cầu. Nếu ETag trên máy chủ khớp với ETag trong yêu cầu,...

expert

expert

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

middle

Bạn sẽ sử dụng lược đồ dữ liệu nào cho các sự kiện của Event Grid?

senior

Khi nào tôi nên sử dụng Azure SQL so với Azure Table Storage?

middle

Sự khác biệt giữa Tài khoản Lưu trữ Mới và Tài khoản Lưu trữ Cổ điển trong Azure là gì?

Bình luận

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

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