IT用語集 › データベース › クロックスキュー

クロックスキュー

データベース Svenska → 更新: 2026-10-21

水晶発振器はずれていき、NTPの同期も完全ではないため、サーバーごとに時計の示す時刻がわずかに違うこと。タイムスタンプでイベントの順序を決める分散システムに潜む、厄介なバグの原因。

問題はこうだ。ノードAの時計がノードBより進んでいると、実際にはBで後から起きたイベントのタイムスタンプのほうが小さくなり、順序が狂う。具体的な危険として、「Last-Write-Wins」の競合解決では、新しい更新がたまたま小さいタイムスタンプを得たせいで黙って捨てられることがあり、時刻ベースのロックやリースが早すぎる、あるいは遅すぎる失効を起こす。NTPは通常、差をミリ秒以内に保つが、調整中に時刻が飛ぶ(巻き戻ることもある)。対策は、経過時間の測定には単調クロック、順序付けには論理クロックやハイブリッドクロック(Lamport、HLC)、あるいはSpannerのTrueTimeのように不確実性の区間を明示する方法である。分散システムで「タイムスタンプを使えばいい」が危険な根本的理由の一つだ。HLCやSpannerのTrueTimeと関連する。

← 用語集に戻る