アプリに簡単な同期機能を書き込むことを検討していますが、ポップアップした懸念の 1 つは、それぞれ独自のクロックを持つ 2 つのリモート コンピューター間の時刻の同期です (特に、ファイル/オブジェクトの変更日に関して)。
このトピックについて多くの研究が行われていると確信しており、あまり理論的になりたくないのですが、リモートクロック間の時間的な不一致を最小限に抑えるためのベストプラクティスが受け入れられているかどうか疑問に思っています.
たとえば、タイムゾーンの問題を回避するために常に世界時 (UTC) を使用することから始めますが、2 台のコンピューターのシステム時刻がまったく同じであるという保証はありません。幸いなことに、私がやっている仕事はそれほどきめの細かいものではないので、それほど重要な問題ではありませんが、それでもまだ興味があります.
1 つの解決策は、ローカル システム クロックではなく、グローバル タイム サーバーなど、両端で常に同じクロックを使用することです。おそらく、これを (共有リソース ロックと組み合わせて) 同期された時刻が偶発的に重複しないことを保証できますが、あまり実用的ではありません。
私の頭に浮かんだ 1 つの考えは、おそらくシステム クロックのオフセットをグローバル タイム サーバーで計算することによって、各ノード (各クライアント) を、ある時点で計算されたオフセットと同期させることです。オフセット自体は短期間で大きく変化する可能性は低いため、これは時々行うだけで済みます。
更新: 2 台のコンピューターのシステム クロックを実際に同期することに興味がないことを付け加えておきます。ほとんどの場合、オペレーティング システムがこれを処理すると思います。これは、アプリケーションの 2 つのインスタンスが同期された時刻を使用していることを確認する方法の問題にすぎませんが、この時代では、システム クロックはとにかく非常に小さなデルタ内でほぼ確実に同期されると思います。