Ứng dụng định lý CAP trong phát triển hệ thống Big Data

 1. Giới thiệu định lý CAP 

CAP Theorem là nguyên lý quan trọng để thiết kế hệ thống phân tán, đặc biệt trong các hệ thống dữ liệu lớn (Big Data). Big Data đòi hỏi xử lý phân tán trên nhiều node để đạt scalability và fault tolerance. CAP Theorem phát biểu rằng một hệ thống phân tán chỉ có thể đảm bảo tối đa 2 trong 3 tính chất sau:

  • Consistency: Mọi nút trong hệ thống trả về cùng một dữ liệu tại cùng một thời điểm. Tại cùng một thời điểm, dữ liệu mà tất cả các client nhìn thấy phải là giống nhau, bất kể nó kết nối với node nào. Để điều này xảy ra, bất cứ khi nào dữ liệu được ghi vào một node, nó phải được chuyển tiếp hoặc sao chép ngay lập tức tới tất cả các node khác trong hệ thống trước khi việc ghi được coi là "thành công".

  • Availability: Mọi yêu cầu đều nhận được phản hồi (không bị lỗi hoặc timeout), ngay cả khi một phần của hệ thống gặp sự cố.
  • Partition Tolerance: Hệ thống tiếp tục hoạt động ngay cả khi có sự cố mạng giữa các nút.





2. Ứng dụng CAP trong các công nghệ Big Data.

2.1. Hệ thống CP (Consistency + Partition Tolerance)

  • Đặc điểm:
    • Ưu tiên nhất quán dữ liệu (strong consistency), chấp nhận giảm availability khi xảy ra lỗi hệ thống.
    • Phù hợp cho batch processing hoặc OLAP (phân tích dữ liệu).
  • Công nghệ điển hình:
    • Hadoop HDFS:
      • Dữ liệu được replicate trên nhiều node (mặc định 3 bản).
      • Khi ghi dữ liệu, phải đảm bảo tất cả replica được cập nhật (synchronous writes).
    • Google Bigtable/HBase:
      • Dùng Paxos để đồng bộ dữ liệu giữa các region.
      • Đảm bảo mọi đọc/ghi đều nhất quán.

2.2. Hệ thống AP (Availability + Partition Tolerance)

  • Đặc điểm:
    • Ưu tiên phản hồi nhanh và sẵn sàng cao, chấp nhận eventual consistency.
    • Phù hợp cho real-time processing (IoT, log streaming).

  • Công nghệ điển hình:
    • Apache Cassandra:
      • Dùng Gossip Protocol để đồng bộ dữ liệu bất đồng bộ.
      • Cho phép ghi dữ liệu ngay cả khi một số node down.
    • Amazon DynamoDB:
      • Multi-region replication async
      • Luôn phản hồi yêu cầu, dù dữ liệu có thể chưa đồng bộ.

2.3. Hệ thống CA (Consistency + Availability)

  • Không tồn tại trong thực tế cho Big Data vì hệ thống phân tán luôn cần Partition Tolerance.
  • Chỉ áp dụng được trong hệ thống đơn giản (ví dụ: single-node database).