細粒度ロックのメリットと問題 ロックする単位をデータベース全体ではなく、分割して口座ごとのような細粒度にしてやれば、プロセサAは口座1をロックして専用使用し、プロセサBは口座2をロックして専用使用するという風に並列処理ができ、両方が同じ口座にアクセスする場合だけが排他制御でどちらかが待たされるということになる。 しかし、このように口座ごとに細粒度のロックを行うと、プロセサAが口座1から口座2への振り込みを処理し、プロセサBが口座2から口座1への振り込みを処理する場合、プロセサAが口座1をロックしプロセサ2が口座2をロックすると、プロセサAは振込先の口座2のロックを得られないし、プロセサBは口座1のロックを得られないので、デッドロックに陥ってしまう。 このような2つのプロセサと2つのロック変数の場合は比較的単純であるが、より多くのプロセサとロックが絡み合ってくると、複雑なデッドロックやライブ