MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

DBMSのロックを使用した同時実行制御


ロックは、DBMSで同時実行制御を維持するための不可欠な部分です。ロックベースの同時実行制御を実装するシステムのトランザクションは、必要なロックを取得するまでステートメントを読み書きできません。

ロックベースのプロトコルには2種類のロックがあります。これらは次のとおりです。

  • バイナリロック- これらは、ロックまたはロック解除の2つの状態のいずれかになります。
  • 共有/排他的ロック- 共有ロックは、読み取り操作のみを実行する場合に取得されます。変更されるデータがないため、共有ロックは複数のトランザクション間で共有できます。書き込み操作を行う場合は、専用ロックを使用します。データ値を変更できるのは、排他ロックを保持しているトランザクションのみです。

さまざまなロックプロトコルは-

です

単純なロックプロトコル

書き込み操作が実行される前に、データ値のトランザクションによってロックが取得されます。書き込み操作後、ロックを解除できます。単純ロックプロトコルの例は次のとおりです。

T1 T2
R(A)

R(A)
Lock(B)
R(B)
W(B)
Unlock(B)

Lock(C)

R(C)

W(C)

Unlock(C)
コミット

コミット

上記の2つのトランザクションT1とT2があります。読み取り操作に必要なロックはありませんが、書き込み操作の前に、これらの各トランザクションはロックを取得し、後でそれを解放します。

ツーフェーズロックプロトコル

2フェーズロックプロトコルには、成長フェーズと縮小フェーズの2つのフェーズがあります。トランザクションは、成長段階にある場合にのみロックを取得できます。縮小フェーズに入ると、以前に取得したロックを解放できますが、新しいロックを取得することはできません。排他ロックはXで表され、共有ロックはSで表されます。2フェーズロックプロトコルの例は-

です。
T1 T2
S(A)
R(A)

S(A)

R(A)
X(B)
R(B)
W(B)

X(C)

R(C)

W(C)

Unlock(C)

ロック解除(A)
Unlock(B)
Unlock(A)
コミット

コミット

上記の例では、読み取り操作のみがAで実行されるため、T1とT2は共有ロックを使用して変数Aを共有します。T1は書き込み操作のためにBの排他ロックを取得し、すぐに解放します。 T2はCでも同じことをします。

厳密な2フェーズロックプロトコル

厳密な2フェーズロックプロトコルは、2フェーズロックプロトコルに似ています。唯一の違いは、厳密な2PLプロトコルでは、プロトコルがコミットまたはアボートするまで、プロトコルによって取得されたすべての排他ロックを保持する必要があることです。厳密なツーフェーズロックプロトコルの例は次のとおりです。

T1 T2
S(A)
R(A)

S(A)

R(A)
X(B)
R(B)
W(B)

X(C)

R(C)

W(C)

ロック解除(A)
Unlock(A)
コミット
Unlock(B)

コミット

Unlock(C)

上記の例では、読み取り操作のみがAで実行されるため、T1とT2は共有ロックを使用して変数Aを共有します。T1は書き込み操作のためにBの排他ロックを取得し、T2はCと同じことを行います。排他ロックは解放されるだけです。トランザクションがコミットされた後。ただし、共有ロックにはそのような制限はありません。

厳密な2フェーズロックプロトコル

厳密な2フェーズロックプロトコルは、2フェーズロックプロトコルと厳密な2フェーズロックプロトコルの単なる拡張です。ここで、トランザクションによって保持されているすべてのロックは、共有か排他かに関係なく、トランザクションがコミットまたは中止された場合にのみ解放されます。厳密なツーフェーズロックプロトコルの例は次のとおりです。

T1 T2
S(A)
R(A)

S(A)

R(A)
X(B)
R(B)
W(B)

X(C)

R(C)

W(C)
コミット
Unlock(A)
Unlock(B)

コミット

ロック解除(A)

Unlock(C)

上記の例では、読み取り操作のみがAで実行されるため、T1とT2は共有ロックを使用して変数Aを共有します。T1は書き込み操作のためにBで排他ロックを取得し、T2はCで同じことを行います。共有ロックと排他ロックは、トランザクションがコミットされた後にのみ解放されます。


  1. iOS ショートカット:コントロール センターで 3D タッチを使用する

    Apple は最初に、感圧式タッチ技術である Force Touch を Apple Watch に導入しました。しかし、Android 携帯電話メーカーの Huawei が新しいスマートフォンでこの機能をリリースした直後に、Apple は iPhone での使用をリリースし、普及させました。最初は iPhone 6s でした。 Apple は、このマルチタッチ機能を 3D Touch と呼んでいます。これにより、iPhone ユーザーが最も頻繁にアクセスする手順や機能を開くための革新的な方法が追加されます。 iPhoneの画面を押して圧力を保持することで、3D Touchを使用します。これ

  2. Surface ペンを使用して PowerPoint プレゼンテーションを制御する方法

    Surface ペンは Surface のハイライトの 1 つであり、Windows 10 の改善されたインク機能により、自然で直感的な方法で、アプリを書いたり、描画したり、操作したりできます。 クリック、ダブルクリック、または長押しで利用できるトップボタンを介した便利なペンショートカットもありますが、デフォルトのアクションセットはかなり制限されていました.つまり、Windows 10 Anniversary Updateまでです。現在、Windows 10 では、ユーザーがカスタム ペン ショートカットをインストール済みの UWP または従来のアプリに割り当てることができます。 KeyP