Backend nền tảng
C4 · Định lý CAP
Consistency
C4 · Nâng cao
Khi đường dây giữa hai chi nhánh bị đứt (Partition), bạn phải chọn: hoặc tạm ngừng phục vụ để số liệu luôn đúng (C), hoặc vẫn phục vụ dù số liệu có thể lệch (A).
Cốt lõi
- Consistency
- Availability
- Partition Tolerance.
- Hệ phân tán thì P là bắt buộc → thực chất chọn CP hoặc AP khi có phân vùng mạng.
- AP: Dynamo, Cassandra. CP: HBase, MongoDB (cấu hình mặc định).
- CA chỉ có ý nghĩa với hệ single-node, không phân tán.
Đánh đổi
Thanh toán, tồn kho → CP. Feed, like, view count → AP.
Trong thực tế
Cassandra = AP, MongoDB = CP.
Bug thường gặp
Chọn cơ sở dữ liệu ưu tiên khả dụng (AP) cho số dư tài khoản → hai cập nhật đồng thời ở hai node làm số dư lệch nhau.
Tự hỏi lại
Khi KHÔNG có partition thì đánh đổi gì? (PACELC: Latency vs Consistency). Eventual consistency là gì?