Hãy cùng xem các mô hình hệ thống phân tán.
Chúng ta sẽ đề cập đến các nội dung sau:
- Bản chất của hệ thống phân tán trong thực tế
- Xây dựng một mô hình tổng quát
- Các thuộc tính mà mỗi hệ thống tuân theo
- Các loại hệ thống phân tán
- Hệ thống đồng bộ
- Hệ thống bất đồng bộ
1. Bản chất của hệ thống phân tán trong thực tế
Các hệ thống phân tán trong thực tế có thể khác nhau rất nhiều trên nhiều khía cạnh. Những khác biệt này phụ thuộc vào các yếu tố như mạng triển khai chúng, phần cứng mà chúng chạy trên đó, v.v.
Do đó, chúng ta cần một khung chung để giải quyết các bài toán một cách tổng quát. Bằng cách này, chúng ta không cần lặp lại quá trình lập luận cho từng biến thể khác nhau của các hệ thống này.
2. Xây dựng một mô hình tổng quát
Để tạo ra một mô hình của hệ thống phân tán, chúng ta phải xác định một số thuộc tính mà hệ thống đó phải thỏa mãn. Nếu chúng ta chứng minh được một thuật toán là đúng đắn đối với mô hình này, thì có thể chắc chắn rằng thuật toán đó cũng sẽ đúng đắn với tất cả các hệ thống thỏa mãn những thuộc tính này.
3. Các thuộc tính mà mỗi hệ thống tuân theo
Những thuộc tính quan trọng chính trong một hệ thống phân tán liên quan đến:
- Cách các nút trong hệ thống phân tán tương tác với nhau
- Cách các nút trong hệ thống phân tán có thể gặp lỗi
4. Các loại hệ thống phân tán
Có hai loại hệ thống phân tán chính, phụ thuộc vào bản chất của giao tiếp:
- Hệ thống đồng bộ
- Hệ thống bất đồng bộ
5. Hệ thống đồng bộ
Hệ thống đồng bộ là hệ thống trong đó mỗi nút đều có một đồng hồ chính xác, và tồn tại một giới hạn trên đã biết cho độ trễ truyền thông điệp và thời gian xử lý. Do đó, quá trình thực thi được chia thành các vòng (rounds). Theo cách này, mỗi nút gửi thông điệp đến các nút khác, các thông điệp được chuyển đến, và mỗi nút thực hiện tính toán dựa trên các thông điệp mà nó nhận được. Trong suốt quá trình này, tất cả các nút chạy đồng bộ theo từng bước.
6. Hệ thống bất đồng bộ
Hệ thống bất đồng bộ là hệ thống trong đó không tồn tại giới hạn trên cố định cho thời gian một nút cần để gửi một thông điệp, hoặc cho khoảng thời gian giữa các bước thực thi liên tiếp của một nút. Các nút trong hệ thống không có một khái niệm thời gian chung, và do đó chạy với tốc độ độc lập.
Bài học trước đã thảo luận về những thách thức phát sinh từ tính bất đồng bộ của mạng.
Vì vậy, đến thời điểm này, có thể thấy rằng mô hình đồng bộ dễ mô tả, dễ lập trình và dễ suy luận hơn nhiều. Tuy nhiên, mô hình bất đồng bộ lại gần với các hệ thống phân tán trong thực tế hơn, chẳng hạn như Internet, nơi chúng ta không thể kiểm soát toàn bộ các thành phần liên quan. Ngoài ra, chỉ tồn tại những đảm bảo tối thiểu về thời gian cần thiết để gửi một thông điệp giữa hai địa điểm.
Do đó, hầu hết các thuật toán mà chúng ta sẽ xem xét trong khóa học này đều giả định mô hình hệ thống bất đồng bộ.