排他制御
その他の語句
用語の解説
排他制御とは
(ハイタセイギョ)ファイルやデータベースに書き込み処理を行なう際に、データの整合性を保つために、データの読み書きを一時的に制限すること。
例えば、商品の在庫を管理するデータベースに2人が同時に商品を購入しようとしてアクセスした場合、「顧客Aが残り在庫を確認」→「顧客Bが残り在庫を確認」→「顧客Aが残り在庫を-1する」→「顧客Bが残り在庫を-1する」という処理順序になることがある。
顧客Bは顧客Aの処理が終わる前に残り在庫を確認してしまっているため、顧客Bは顧客Aが商品を購入する前の残り在庫を元に残り在庫を計算してしまう。 この結果、顧客Aが在庫を減らした効果が失われてしまい、2人が商品を購入したのに在庫は1しか減らなくなる。 すると、いざ商品を発送する段階になってなぜか在庫が1個足りないという問題が発生する。
このような問題を防止するために行われる処理が排他制御である。 排他制御を行ないたい場合、データを更新する前にそのデータをロック(鍵をかける)して、他のユーザがデータを読み書きできなくする。
そして、データを更新する際には他のユーザがデータをロックしていないか確認して、ロックされている場合はその処理が終わる(ロックが解除される)まで待ってから処理を始める、という段取りになる。
このような手続きを踏むことで排他制御が実現できるが、複数のファイルにまたがる排他制御を行う場合、1人のユーザがファイルAをロックしてファイルBのロック解放を待ち、もう1人のユーザがファイルBをロックしてファイルAのロック解放を待ち、いつまでたっても処理が進まないという事態に陥る恐れがある。 この現象は「デッドロック」と呼ばれているもので、プログラムの設計に問題がある場合に発生する。
用語解説出典 powered by. IT用語辞典 e-Words
Special PR
CNET Japan
-
「Microsoft Teams」に外線電話も統合--オフィスに縛られない働き方をみる
働き方改革やコロナ禍の影響で、働く場所の意味が変わってきている。ここで問題になるのがオフィスの電話だ。現状の電話は、オフィスという場所に物理的に縛られているからだ。