logical clock論理クロック


詳細
                ,          ,     
    。【  ,             。】

一般的な論理クロック(記述方法):Lamport timestamps(イベント前後関係)、Vector clock(因果関係なし、同時に発生するイベント、vectorは同時発生に使用され、javaの中の容器を思いついたのではないでしょうか.間違いありません!ハハ).
前者は、イベントの順序関係(単一スレッド)を記述するために使用されます.Vectorclockは、同時発生関係(concurrent同時、マルチスレッドのみ同時、マルチスレッドおよびCPUのコア数およびスーパースレッド技術に関する)を記述するために使用される.Vectorclockの方法は、データバージョンの競合(分散型ストレージシステム)、すなわちVersion vectorを発見するために使用されます.
http://www.doc88.com/p-7903104995524.html
または(推奨):https://www.cnblogs.com/bangerlee/p/5448766.html
要約:
分散システムのいくつかのシーンでは、異なるノード間のイベントが発生する順序を記録および比較する必要もあるが、日常生活で物理クロックを使用して時間を記録するのとは異なり、分散システムは論理クロックを使用してイベント順序関係を記録する.
なぜ分散システムは物理クロック(physical clock)を使用してイベントを記録しないのですか?各イベントに対応してタイムスタンプを1つ打って、比較順序が必要なときに対応するタイムスタンプを比較すればいいのではないでしょうか.
 
理由:分散システムでは、ノードごとに記録される時間が異なり、設定されていても NTP 時間同期ノード間でもミリ秒レベルのばらつきがあり、イベントの前後順が比較できないこともあります.【注意:物理クロックは、ミリ秒レベルでは人間から見れば非常に短いが、高速で動作するCPUではミリ秒は非常に長い時間間隔である.この誤差時間間隔では、ノードごとに多くのイベントが発生する可能性があり、イベントの順序を区別する必要がある場合、イベントの順序を区別することができない.】