TrueTime APIとは?
とぅるーたいむえーぴーあい
TrueTime APIとは、Googleが開発した高精度のグローバル時刻APIで、原子時計とGPSを組み合わせて誤差範囲付きの時刻を提供し、分散データベースSpannerの基盤となっています。
TrueTime APIは、Googleが自社のデータセンターインフラに実装した分散時刻サービスです。分散システムにおいてイベントの因果関係や順序を正確に扱うためには、信頼できる高精度な時刻が不可欠ですが、ネットワーク遅延や機器のクロックずれが課題となります。TrueTime APIはこの問題を根本的に解決するために設計されました。
技術的な特徴は、原子時計とGPSを組み合わせた時刻源を複数冗長に保持し、現在時刻を「真の時刻が必ずこの範囲内にある」という区間([earliest, latest])で返す点にあります。通常この区間の幅(不確実性)は数ミリ秒以内に抑えられています。
- TT.now():現在時刻の区間を返す
- TT.after(t):時刻 t が確実に過去かどうかを返す
- TT.before(t):時刻 t が確実に未来かどうかを返す
Google Spannerはこの不確実性区間を利用して「外部一貫性(External Consistency)」を実現しています。トランザクションがコミットされる際、不確実性が消えるまで意図的に待機する「コミット待機」を行うことで、地球規模の分散環境でも線形化可能なトランザクション処理が可能になります。
TrueTime APIはGoogleの社内インフラ専用ですが、その概念はAWSのTime Sync Serviceなど他社の高精度時刻サービスの設計にも影響を与えています。
使い方・例文
「Google SpannerがグローバルなACIDトランザクションを実現できるのは、TrueTime APIによる高精度時刻保証があるからだ」という文脈で分散データベースの技術解説に登場します。
この用語をシェア
最終更新: