5

私は、他のコンピューター間のクロックのずれを認識し、および/またはそのようなことを防ぐ必要がある、時間に敏感な操作を行っています。クロック スキューを検出または防止するにはどうすればよいですか?

私の場合、圧縮された日時スタンプを Azure Blob に書き込んでいます。異なるノードがその日時スタンプを異なる方法で解釈すると、悲惨なことになります (閏日または閏秒の間に発生する可能性があるため)。


より詳しい情報

ローカル ノードの現在時刻のクロック スキューを検出しようとしています。

各ノードは、時間依存の情報を Blob/Table に書き込みます。タイムスタンプが X より古い場合、特定のアクションが発生します。時刻が同期されていないと、データが失われたり破損したりする可能性があります。

考えられる解決策

おそらく、各ノードに定期的に現在の日付を BLOB ストレージ (32 バイト) に書き込んでもらい、定期的にクエリを実行させることができます。

4

1 に答える 1

2

ローカルノードの時刻とNTPタイムサーバーの時刻との間のスキューを通知する.NETNTPクライアントAPIがいくつかあります。例えば:

NTPクライアントを使用して、現地時間とスキューの両方をBLOBに格納できます。別のノードでblobを読み取る場合、そのノードのローカル時間とスキューを計算し、それをblobの保存された時間とスキューと比較できます。

于 2012-10-17T16:35:45.633 に答える