TrueTime
Định nghĩa
TrueTime là API đồng bộ thời gian phân tán do Google thiết kế cho cơ sở dữ liệu Spanner. API này không chỉ trả về một mốc thời gian duy nhất mà trả về một khoảng thời gian đại diện cho khoảng độ bất định thời gian thực (time uncertainty bound ).
Cơ chế hoạt động
TrueTime API -> [t_earliest, t_latest]
trong đó: t_latest - t_earliest = 2 * epsilon (thường epsilon < 7ms)- Phần cứng chuyên dụng: Google trang bị kết hợp cả Master Clock bằng Đồng hồ nguyên tử (Atomic Clocks) và Đầu thu GPS tại mỗi data center để giảm giá trị xuống mức cực nhỏ (vài millisecond).
- Commit Wait Rule: Để đảm bảo tính nhất quán Strict Serializability trên quy mô toàn cầu, khi giao dịch commit tại , node phải chờ đúng khoảng thời gian trước khi cho phép giao dịch đọc dữ liệu. Việc chờ này đảm bảo luôn thấy timestamp của xảy ra hoàn toàn trong quá khứ.
Ý nghĩa trong Distributed Databases
TrueTime cho phép Google Spanner đạt được tính nhất quán Strict Serializability và External Consistency trên quy mô toàn cầu mà không cần sự trợ giúp của một đợt giao tiếp giữa các datacenter để thỏa thuận thứ tự timestamp.
Trade-off
- Ưu điểm: Đạt tính nhất quán cao nhất thế giới (External Consistency) với hiệu năng truy vấn đọc vượt trội.
- Nhược điểm: Đòi hỏi hạ tầng phần cứng đắt đỏ (GPS + Atomic Clock) và cam kết vận hành cực kỳ nghiêm ngặt; nếu phồng to do sự cố phần cứng, latency ghi của hệ thống sẽ tăng theo.