8

分散データベースで同時実行制御にタイムスタンプを使用することの利点/欠点について調べています。私が読んでいる資料では、タイムスタンプはロックに影響を与える可能性のある従来のデッドロックの問題を克服しますが、脆弱な「グローバルデッドロック」の問題がまだあると述べています。

この資料では、グローバル デッドロックは、ローカル グラフの待機グラフにはサイクルが存在しないが、グローバル グラフにはサイクルが存在する状況として説明されています。

どうしてこうなったんだろう?タイムスタンプ システムがこの問題を引き起こす可能性がある状況を誰か説明できますか?

4

2 に答える 2

5

これはおそらく最も単純な例です。マシンAB. マシン A にはロックがT1ありT2、関係はT1 < T2です。マシンBにはT3T4がありT3 > T4ます。

現在、ローカル グラフは、T2 が T1 を待たなければならず、T3 が T4 を待たなければならないということだけです。したがって、ローカルサイクルはありません。しかし、ここで、T4 < T1T1 が T4 を待たなければならない場合を考えてみましょう。同時にT2 < T3、T3 は T2 を待たなければなりません。この場合、グローバルにサイクルがあります。

では、そのサイクルはどのように起こるのでしょうか。ここで重要なのは、分散システムでは完全な情報が得られないということです。そのため、マシン間の依存関係が存在することを後で知ることができます。そして、問題があります。

于 2012-06-24T20:37:10.340 に答える
0

タイムスタンプは、マシン上のローカル プロセス間の競合解決を決定するために使用されます。そのレベルでデッドロックを解決する手段を提供します。分散プロセスの場合、異なるマシン上の 2 つのプロセスが互いに待機している可能性があります。これは実際には通常のデッドロックですが、マシン間で発生します。これは「グローバル」デッドロックと呼ばれます。私見タイムスタンプもそこで使用される可能性がありますが、明らかに非現実的です。

これに関する情報はhttp://www.cse.scu.edu/~jholliday/dd_9_16.htmにあります。

于 2012-06-29T14:50:47.943 に答える