Kiến trúc hệ thốngCác mẫu nhất quán (Consistency Patterns)

Các mẫu nhất quán (Consistency Patterns)

Nội dung bài

Các mẫu nhất quán (Consistency Patterns)

Đánh đổi9 phút đọcThe System Design Primer - mục "Consistency patterns"

Mục lục
  1. Nội dung gốc
  2. Ghi chú của người dịch

Các mẫu nhất quán (Consistency Patterns)

Nội dung gốc

Khi có nhiều bản sao của cùng một dữ liệu, ta đứng trước các lựa chọn về cách đồng bộ chúng sao cho client nhìn thấy dữ liệu một cách nhất quán. Nhắc lại định nghĩa tính nhất quán trong định lý CAP: mọi lần đọc đều nhận được kết quả của lần ghi gần nhất, hoặc nhận lỗi.

Sau khi ghi, lần đọc kế tiếp thấy gì ở ba mức nhất quán Ghi Đọc Yếu có thể không thấy Cuối cùng thấy sau, chắc chắn Mạnh thấy ngay Càng mạnh, càng chắc thấy dữ liệu mới, nhưng mỗi lần ghi càng chậm
Yếu: có thể không bao giờ thấy dữ liệu mới. Cuối cùng: thấy sau, nhưng chắc chắn. Mạnh: thấy ngay lập tức.

Nhất quán yếu (Weak consistency)

Sau một lần ghi, các lần đọc có thể thấy hoặc không thấy dữ liệu mới. Hệ thống chỉ cố gắng ở mức tốt nhất có thể (best effort).

Cách tiếp cận này xuất hiện trong các hệ như memcached. Nhất quán yếu phù hợp với những tình huống thời gian thực như VoIP, video chat, game nhiều người chơi thời gian thực. Ví dụ, nếu bạn đang gọi điện và mất sóng vài giây, khi có sóng lại bạn sẽ không nghe được những gì đã nói trong lúc mất kết nối.

Nhất quán cuối cùng (Eventual consistency)

Sau một lần ghi, các lần đọc rồi sẽ thấy dữ liệu mới (thường trong vòng vài mili-giây). Dữ liệu được nhân bản bất đồng bộ.

Cách tiếp cận này xuất hiện trong các hệ như DNS và email. Nhất quán cuối cùng phù hợp với các hệ thống có tính sẵn sàng cao.

Nhất quán mạnh (Strong consistency)

Sau một lần ghi, các lần đọc sẽ thấy dữ liệu mới. Dữ liệu được nhân bản đồng bộ.

Cách tiếp cận này xuất hiện trong các hệ thống tệp và các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Nhất quán mạnh phù hợp với các hệ thống cần giao dịch (transaction).

Nhân bản đồng bộ (nhất quán mạnh) so với bất đồng bộ (nhất quán cuối cùng) Nhân bản đồng bộ (mạnh) Master Replica chờ xong mới trả lời client Nhân bản bất đồng bộ (cuối cùng) Master Replica trả lời ngay, cập nhật sau Đồng bộ: chậm hơn nhưng luôn khớp. Bất đồng bộ: nhanh, có thể đọc phải bản cũ.
Nhân bản đồng bộ chờ replica ghi xong mới trả lời client (mạnh, chậm hơn). Nhân bản bất đồng bộ trả lời ngay, replica cập nhật sau (cuối cùng, nhanh hơn nhưng có cửa sổ dữ liệu cũ).

Nguồn và đọc thêm


Nguồn: The System Design Primer - mục "Consistency patterns" — Donne Martin và cộng đồng đóng góp

Giấy phép: CC BY 4.0 (nguyên bản: Donne Martin, The System Design Primer)

Xem bản gốc

Bài tiếp theoCác mẫu sẵn sàng (Availability Patterns)