Spanner TrueTime
Google Spannerの時計API。時刻を単一の数値ではなく不確実性区間[earliest, latest]で返し、各データセンターのGPSと原子時計で保証する。長く不可能とされたグローバルな外部一貫性のある直列化可能性を実現する。
発想は、時計が正確なふりをやめ、冗長な時刻ハードウェアのおかげで不確実性(多くは数ミリ秒)を明示的に認めることにある。要となるのが「コミット待機」だ。トランザクションのコミット前にSpannerは不確実性区間(ε)が過ぎるのを待つため、後続のトランザクションがより小さいタイムスタンプを得ないことが保証され、地球全体でタイムスタンプが実際の順序に従う。これにより、惑星規模のデータベースで「外部一貫性」(線形化可能性)が得られる。代償は専用ハードウェア(GPSアンテナと原子時計)と、わずかなコミット遅延である。CockroachDBやYugabyteは、ハードウェアなしでHLCとリトライにより同じ考えを真似ている。2012年の論文は分散データベースの画期的な業績である。