Tính toán phân tán (distributed computing) là mô hình khoa học máy tính nghiên cứu và triển khai các hệ thống bao gồm nhiều máy tính tự trị (gọi là các nút - nodes) giao tiếp với nhau thông qua mạng máy tính để cùng thực hiện các tác vụ tính toán phức tạp. Hệ thống phân tán giúp chuyển đổi các cụm máy chủ phổ thông thành một tài nguyên tính toán thống nhất có hiệu năng vượt trội và tính sẵn sàng cao (Lamport, 1978; Dean & Ghemawat, 2008).
Các thách thức cốt lõi trong hệ thống phân tán
Khác với hệ thống đơn máy tính tập trung, hệ thống phân tán phải đối mặt với các đặc tính phức tạp:
- Không có đồng hồ vật lý chung (Lack of global clock): Mỗi nút mạng có bộ dao động thạch anh riêng với độ trôi dạt thời gian khác nhau, khiến việc xác định trật tự thời gian tuyệt đối của các sự kiện trở nên không khả thi.
- Không có bộ nhớ dùng chung (No shared memory): Mọi sự chia sẻ trạng thái và phối hợp hoạt động đều phải thông qua giao thức truyền thông điệp (message passing) qua mạng bất đồng bộ.
- Sự cố độc lập từng phần (Partial failure): Một số nút hoặc đường truyền mạng có thể bị gián đoạn bất cứ lúc nào trong khi các phần còn lại của hệ thống vẫn tiếp tục vận hành.
Đồng hồ logic Lamport và trật tự sự kiện
Trong công trình kinh điển năm 1978, Leslie Lamport đã định nghĩa quan hệ "xảy ra trước" (ký hiệu ) để thiết lập trật tự thời gian bộ phận trong hệ phân tán (Lamport, 1978):
- Nếu sự kiện và diễn ra trên cùng một tiến trình và xảy ra trước , thì .
- Nếu là sự kiện gửi thông điệp và là sự kiện nhận thông điệp tương ứng, thì .
- Nếu và , thì (tính chất bắc cầu).
- Mỗi nút mạng duy trì một bộ đếm nguyên dương tự tăng gọi là đồng hồ logic Lamport để gán nhãn thời gian cho mọi sự kiện.
Định lý CAP và đánh đổi kiến trúc
Định lý CAP do Eric Brewer đề xuất và được chứng minh hình thức bởi Seth Gilbert và Nancy Lynch (Gilbert & Lynch, 2002) chỉ ra rằng một hệ thống phân tán không thể đồng thời đạt được cả ba thuộc tính:
| Thuộc tính CAP | Định nghĩa kỹ thuật | Sự đánh đổi trong thực tế |
|---|---|---|
| Nhất quán (Consistency) | Mọi thao tác đọc đều nhận được dữ liệu được ghi mới nhất hoặc trả về lỗi. | Khi có phân vùng mạng, hệ thống phải từ chối một số yêu cầu ghi để đảm bảo tất cả các nút luôn có dữ liệu đồng nhất (Hệ thống CP). |
| Khả dụng (Availability) | Mọi nút mạng không gặp sự cố đều trả về phản hồi thành công mà không đảm bảo dữ liệu mới nhất. | Khi có phân vùng mạng, hệ thống chấp nhận trả về dữ liệu cũ tạm thời để đảm bảo dịch vụ không bị gián đoạn (Hệ thống AP). |
| Chịu phân vùng mạng (Partition Tolerance) | Hệ thống tiếp tục hoạt động bất chấp việc các thông điệp mạng bị trễ hoặc thất lạc giữa các cụm máy. | Vì sự cố mạng vật lý là điều tất yếu trong thực tế, các kiến trúc sư phần mềm buộc phải lựa chọn giữa tính nhất quán (CP) hoặc tính khả dụng (AP). |
Mô hình tính toán phân tán hiện đại
Sự phát triển của tính toán phân tán đã định hình hạ tầng Internet toàn cầu:
- Khung xử lý dữ liệu lớn (MapReduce, Apache Spark): Phân chia dữ liệu thành các khối nhỏ và phân phối tác vụ tính toán song song đến hàng ngàn máy chủ chứa dữ liệu (Dean & Ghemawat, 2008).
- Cơ sở dữ liệu phân tán (NoSQL, NewSQL): Áp dụng các mô hình nhất quán linh hoạt (nhất quán cuối cùng - Eventual Consistency) và thuật toán đồng thuận Paxos/Raft để lưu trữ phân tán.
- Điện toán đám mây và kiến trúc Microservices: Tách biệt ứng dụng nguyên khối thành các dịch vụ độc lập triển khai trên các container phân tán, cho phép mở rộng quy mô linh hoạt theo nhu cầu tải.