Lamport Timestamps
Định nghĩa
Lamport Timestamps là thuật toán đồng hồ logic đơn giản do Leslie Lamport đề xuất năm 1978. Thuật toán gán một số nguyên đơn điệu cho mỗi sự kiện nhằm tạo ra thứ tự bán phần (partial ordering) hoặc thứ tự toàn phần (total ordering) duy nhất giữa các sự kiện trong hệ thống phân tán.
Quy tắc hoạt động
Mỗi tiến trình duy trì một bộ đếm số nguyên , ban đầu bằng 0:
- Sự kiện nội bộ (Internal Event): Trước khi thực hiện sự kiện nội bộ, tăng bộ đếm: .
- Gửi tin nhắn (Send Message): tăng và gắn giá trị vào tin nhắn .
- Nhận tin nhắn (Receive Message): Khi nhận tin nhắn chứa timestamp , cập nhật bộ đếm: .
Process A: (C=1) -> Send (C=2) -----------\
\
Process B: Receive (C=max(0,2)+1=3) -> Local (C=4)Tính chất
- Causal Order: Nếu , thì .
- Không có chiều ngược lại: Nếu , ta không thể kết luận (vì và có thể là hai sự kiện độc lập/concurrent). Để khắc phục điểm này, hệ thống cần dùng Vector Clocks.