Quay lại bộ đề
Question #21 Topic 1
Your weather app queries a database every 15 minutes to get the current temperature. The frontend is powered by Google App Engine and server millions of users. How should you design the frontend to respond to a database failure?
Ứng dụng thời tiết của bạn truy vấn cơ sở dữ liệu sau mỗi 15 phút để lấy nhiệt độ hiện tại. Frontend được chạy bằng Google App Engine và phục vụ hàng triệu người dùng. Bạn nên thiết kế frontend như thế nào để phản hồi khi xảy ra sự cố lỗi cơ sở dữ liệu?
A
Issue a command to restart the database servers.
Phát lệnh khởi động lại các máy chủ cơ sở dữ liệu.
B
Retry the query with exponential backoff, up to a cap of 15 minutes.
Thử lại truy vấn với cơ chế giảm tải lũy thừa (exponential backoff), giới hạn tối đa là 15 phút.
C
Retry the query every second until it comes back online to minimize staleness of data.
Thử lại truy vấn mỗi giây một lần cho đến khi cơ sở dữ liệu hoạt động trở lại để giảm thiểu độ trễ của dữ liệu.
D
Reduce the query frequency to once every hour until the database comes back online.
Giảm tần suất truy vấn xuống còn một giờ một lần cho đến khi cơ sở dữ liệu hoạt động trở lại.
Giải thích & Tài liệu tham khảo
Khi cơ sở dữ liệu gặp lỗi, hệ thống phân tán cần áp dụng các cơ chế tự phục hồi thông minh ở phía máy khách (frontend):
- B. Thử lại truy vấn với cơ chế giảm tải lũy thừa (exponential backoff), giới hạn tối đa là 15 phút: Exponential backoff giúp giãn dần khoảng thời gian giữa các lần thử lại để tránh gây quá tải (DDOS) cho cơ sở dữ liệu đang gặp sự cố. Giới hạn 15 phút là hợp lý vì chu kỳ cập nhật dữ liệu thời tiết là 15 phút, thử lại lâu hơn khoảng này sẽ không còn ý nghĩa.
- A sai vì ứng dụng khách không nên có quyền khởi động lại máy chủ cơ sở dữ liệu.
- C thử lại mỗi giây từ hàng triệu người dùng sẽ tạo ra hiệu ứng thảm họa (thundering herd), làm tê liệt cơ sở dữ liệu hoàn toàn.
- D giảm tần suất xuống 1 giờ sẽ làm dữ liệu bị trễ quá lâu một cách không cần thiết sau khi cơ sở dữ liệu đã hoạt động trở lại.
(Đáp án được gợi ý bởi AI)