Tôi đang tìm cách viết một khả năng đồng bộ hóa đơn giản vào ứng dụng của tôi và một trong những mối quan tâm đã nảy sinh là đồng bộ hóa thời gian giữa hai máy tính từ xa. cụ thể liên quan đến ngày sửa đổi tệp/đối tượng). Tôi chắc chắn có rất nhiều nghiên cứu đã được thực hiện về chủ đề này và không muốn quá lý thuyết, nhưng tôi tự hỏi liệu có bất kỳ phương pháp hay nhất nào được chấp nhận để giảm thiểu chênh lệch thời gian giữa các đồng hồ từ xa không? Không. Ví dụ: bắt đầu luôn sử dụng giờ quốc tế (UTC) để tránh các vấn đề về múi giờ, nhưng không đảm bảo rằng hai máy tính sẽ có cùng thời gian hệ thống giống nhau. May mắn thay, công việc tôi đang làm không phải là rất tốt, vì vậy nó không phải là một mối quan tâm khủng khiếp quan trọng, nhưng tôi vẫn còn tò mò.Đồng bộ hóa (đồng hồ) giữa hai máy tính từ xa
Một giải pháp sẽ là luôn sử dụng cùng một đồng hồ trên cả hai đầu, chẳng hạn như máy chủ thời gian toàn cầu, thay vì đồng hồ hệ thống cục bộ. Có lẽ điều này (kết hợp với khóa tài nguyên được chia sẻ) có thể đảm bảo không trùng lặp ngẫu nhiên thời gian được đồng bộ hóa, nhưng nó không thực tế lắm.
Một ý nghĩ chỉ xuất hiện trong đầu của tôi là đồng bộ hóa từng nút (mỗi khách hàng) với giá trị được tính toán tại một thời điểm trước đó, có thể bằng cách tính toán độ lệch của đồng hồ hệ thống với máy chủ thời gian toàn cầu. Điều này sẽ chỉ cần được thực hiện đôi khi bản thân bù đắp sẽ không có khả năng thay đổi đáng kể trong một khoảng thời gian ngắn.
Cập nhật: Hãy để tôi chỉ thêm rằng tôi không quan tâm đến việc thực sự đồng bộ hóa đồng hồ hệ thống của hai máy tính - Tôi cho rằng hệ điều hành sẽ xử lý điều này trong hầu hết các trường hợp. Đây chỉ là một câu hỏi làm thế nào để đảm bảo hai trường hợp của một ứng dụng đang sử dụng thời gian đồng bộ, mặc dù trong ngày và tuổi này, tôi cho rằng đồng hồ hệ thống gần như chắc chắn sẽ được đồng bộ hóa trong một số vùng đồng bằng rất nhỏ.
Tôi nhìn lên giấy của Lamport, và nó dường như được trích dẫn rộng rãi trong các cuộc thảo luận về đồng bộ hóa đồng hồ .. Thật không may, [có vẻ như] (http://www.amazon.com/Distributed-Systems-Principles-Paradigms-2nd/dp/0132392275) thuật toán này không phù hợp với các ứng dụng thời gian thực (như được thảo luận ở đây] (http://stackoverflow.com/questions/12760388/how-to-set-a-variable-that-represents-a- time-in-the-future-in-the-absolute-terms-obj)) .. bất kỳ lời khuyên nào về các thuật toán đồng bộ hóa đồng hồ thời gian thực không phụ thuộc vào NTP? – abbood