0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Tìm hiểu những vấn đề trong hệ thống phân tán - Phần 2: Đồng hồ, Đồng bộ và Độ chính xác

Đăng vào 3 tuần trước

• 3 phút đọc

Chủ đề:

distributed system

Nối tiếp phần 1: Những vấn đề trong hệ thống phân tán ### 3. Đồng hồ không đáng tin cậy Trong một hệ thống phân tán, việc quản lý thời gian gặp không ít khó khăn do nhiều lý do:

  1. Độ trễ không thể dự đoán: Thông điệp gửi đi không được nhận ngay lập tức, và thời gian truyền tải có thể thay đổi.
  2. Đồng hồ của các máy khác nhau: Mỗi máy có đồng hồ riêng, thường là dựa trên bộ dao động tinh thể thạch anh, có thể chạy nhanh hơn hoặc chậm hơn so với các máy khác.

Để khắc phục sai lệch giữa các đồng hồ, hệ thống thường sử dụng Network Time Protocol (NTP), cho phép đồng bộ hóa đồng hồ với các máy chủ thời gian chính xác như GPS.

3.1 Monotonic Vs Time-of-Day Clocks

Monotonic clocks

  • Phù hợp để đo thời gian, như timeout hoặc latency trong server responses.
  • Tiêu biểu: clock_gettime(CLOCK_MONOTONIC) trên Linux, hoặc System.nanoTime() trong Java.
  • Thời gian này luôn tăng, không bao giờ giảm.

Một vấn đề với monotonic clocks là sự khác biệt giữa hai thời điểm trên các máy khác nhau không có nhiều ý nghĩa.

Time-of-day clocks

  • Điều này giúp lấy thời gian hiện tại theo cách mà mọi người dùng đồng hồ thông thường.
  • Tiêu biểu: clock_gettime(CLOCK_REALTIME) trên Linux và System.currentTimeMillis() trong Java.

Tuy nhiên, time-of-day clocks có nhược điểm, như có thể nhảy lùi nếu hệ thống bị thay đổi hoặc độ phân giải thấp trên các hệ thống cũ.

Đồng bộ đồng hồ và độ chính xác

Đồng hồ hệ thống trở thành một yếu tố quan trọng trong hệ thống phân tán:

  1. Clock Drift: Đồng hồ của các máy có thể không giống nhau do nhiệt độ và các yếu tố khác.
  2. Lỗi đồng bộ với NTP: Nếu đồng hồ máy quá lệch so với máy chủ NTP, nó có thể không được đồng bộ.
  3. Bị chặn bởi tường lửa: Nếu nút không thể truy cập máy chủ NTP do firewall, có thể sẽ không phát hiện được vấn đề ngay lập tức.
  4. Network Latency: Đồng bộ qua NTP có thể bị ảnh hưởng bởi mạng chậm, với những sai lệch lớn.

Những vấn đề này có thể dẫn đến hỏng dữ liệu và các lỗi phức tạp trong hệ thống phân tán.

Quorum và quyết định "truth" trong hệ thống phân tán

Quorum là cơ chế quan trọng trong việc đảm bảo quyết định của một node chỉ được công nhận khi có đủ sự đồng thuận từ số đông. Điều này giúp ngăn chặn sự không nhất quán và đảm bảo tính chính xác cao trong hệ thống.

Vấn đề các lỗi Byzantine

Các lỗi Byzantine xảy ra khi một hoặc nhiều node trong hệ thống hành xử không như mong đợi, có thể gây khó khăn trong việc đạt được sự đồng thuận. Những vấn đề này có thể đến từ lỗi phần cứng, tấn công mạng hoặc lỗi phần mềm.

Kết luận

Trong phần tiếp theo, chúng ta sẽ cùng khám phá thêm về cách thức mà kiến thức, sự thật và các lý do hợp lý có thể được xác định và duy trì trong một hệ thống phân tán, cũng như những ứng dụng thực tiễn của chúng trong quá trình vận hành.

Hãy tiếp tục theo dõi để cập nhật những thông tin mới nhất về các thuật toán trong hệ thống phân tán, cũng như ứng dụng của họ trong thực tế.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào