デッドロックの犠牲者とは何ですか?

デッドロックの被害者はコンピューターユーザーであり、サーバーに接続されたクライアントとして機能し、その接続がデッドロックを解決するために終了することを選択しました。このタイプのデッドロックは、2つの異なるプロセスが同じリソースを利用しようとしている場合にしばしば発生します。これにより、両方のプロセスがロックされます。この問題を解決するために、多くのサーバーデータベースシステムがデッドロックがいつ発生したかを検出し、2つのプロセスのいずれかの接続を終了することを選択できます。デッドロックの被害者は、プログラムによってarbitrarily意的に選択できますが、ユーザーは通常、システムに最も簡単に再接続できる人として選択されます。

「デッドロック被害者」という用語は、通常、接続が終了したときにシステムによって表示されるエラーまたは例外メッセージで使用されます。このエラーは、一般にデッドロックと呼ばれる状況で発生します。一般に、サーバーに接続されている2人のユーザーが同じリソースにアクセスしようとしているときにデッドロックが発生します。システムをロックします。たとえば、ユーザーAがリソース1を使用し、リソース2を使用する必要がある場合、ユーザーBはリソース2を使用してリソース1を使用する必要がある場合、どちらのユーザーも自分のプロセスを終了できないため、デッドロックが発生します。

この例では、2人のユーザーのうちの1人が、デッドロックの被害者としてシステムによって選択され、サーバーへの接続が終了します。これが発生すると、他のユーザーはプロセスを終了し、デッドロックを終了し、デッドロックの被害者がサーバーに再接続できます。ほとんどのサーバーデータベースプログラムは、デッドロック検出で設計されており、通常、一定の時間の後にデッドロックを検出します。デッドロックは必ずしも大きな問題ではありませんが、それはユーザー、特にデッドロックの被害者として選ばれたユーザーにとっては迷惑であり、サーバーデータベースプログラミングの1つ以上の間違いを示している可能性があります。

サーバーが選択する方法sデッドロックの犠牲者はさまざまです。一部のプログラムは、純粋にランダムに被害者を選択します。これはかなり効果的ですが、どんな選択も解決策とデッドロックの終わりにつながるため、これは必ずしも理想的な方法ではありません。通常、サーバーは、2人のユーザーを評価するようにプログラムされており、最も簡単に再接続できる、または切断によりデータの最小量を失うユーザーを選択します。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?