
Phân tích yêu cầu
- Môi trường: Multi-region Azure Cosmos DB.
- Yêu cầu về consistency:
- Đảm bảo các thao tác cập nhật được thực hiện theo lô (batch) trong một giao dịch luôn hiển thị cùng nhau.
- Điều này có nghĩa là khi một nhóm thay đổi được thực hiện, chúng phải xuất hiện đồng thời trong tất cả các lần đọc.
Bổ sung thông tin từ tài liệu chính thức
Mục này kiểm tra kiến thức của ứng viên về cách chọn mức độ nhất quán phù hợp cho các thao tác trong Azure Cosmos DB.
- Consistent Prefix đảm bảo rằng các cập nhật được thực hiện dưới dạng một batch trong giao dịch sẽ được đọc một cách nhất quán với giao dịch mà chúng đã được commit.
- Bounded Staleness được sử dụng để kiểm soát độ trễ của dữ liệu giữa hai vùng dựa trên phiên bản cập nhật hoặc khoảng thời gian giữa các lần đọc và ghi.
- Session đảm bảo rằng trong một phiên làm việc của client, các lần đọc sẽ luôn thấy các lần ghi trước đó trong phiên đó.
- Eventual không có đảm bảo về thứ tự đọc dữ liệu.
📌 Nguồn tham khảo:
- Explore consistency levels – Microsoft Learn
- Consistency level choices – Azure Cosmos DB | Microsoft Learn
So sánh các mức độ nhất quán trong Azure Cosmos DB
Consistency Level | Đảm bảo tất cả các cập nhật trong giao dịch hiển thị cùng nhau? | Mô tả |
---|---|---|
Consistent Prefix | ✅ Có đảm bảo | Đảm bảo tất cả các cập nhật trong một giao dịch luôn xuất hiện cùng nhau mà không có xáo trộn thứ tự. |
Bounded Staleness | ❌ Không đảm bảo ngay lập tức | Có thể có độ trễ xác định trước giữa các bản cập nhật, dùng để kiểm soát lag giữa các vùng. |
Session | ❌ Không đảm bảo ngoài phạm vi session | Dữ liệu có thể đồng bộ không đồng đều giữa các vùng, chỉ đảm bảo trong session của một client. |
Eventual | ❌ Không đảm bảo | Không có thứ tự nhất quán, dữ liệu có thể cập nhật không đồng đều giữa các vùng. |
Kết luận
✅ Đáp án chính xác: “Consistent Prefix”
🚀 Lý do:
- Consistent Prefix đảm bảo rằng các cập nhật trong một giao dịch luôn hiển thị cùng nhau mà không có sai lệch về thứ tự.
- Là lựa chọn phù hợp nhất để đảm bảo tính nhất quán trong trường hợp các cập nhật được thực hiện theo batch trong một giao dịch.
- Các lựa chọn khác không đáp ứng đầy đủ yêu cầu:
- Bounded Staleness chỉ giới hạn độ trễ giữa các vùng, nhưng không đảm bảo tất cả các cập nhật xuất hiện cùng nhau.
- Session chỉ đảm bảo nhất quán trong phạm vi một phiên của client.
- Eventual không đảm bảo bất kỳ thứ tự nào.
👉 Chọn “Consistent Prefix” là đáp án đúng nhất! ✅