データベースデッドロックとは?
データベースデッドロックは、2つ以上のトランザクションがそれぞれ他が保持するロックを待ち、自力では解消できない循環を形成する膠着状態です。データベースはその循環を検出し、他が続行できるように1つのトランザクションを犠牲者として中止します。中止されたトランザクションは、その後アプリケーションによって再試行される必要があります。
なぜ重要か
デッドロックは、並行負荷の下で突然のトランザクション失敗として現れます。ロックを一貫した順序で取得し、トランザクションを短く保つことで、発生する頻度を減らせます。
関連ガイド
What Is Pessimistic Locking?Pessimistic locking takes a lock on data as soon as it is read, blocking other transactions from changing it…
What Is Optimistic Locking?Optimistic locking detects conflicting updates at commit time by checking a version field, rather than holdin…
What Is a Transaction Isolation Level?An isolation level sets how much one transaction can see of others in progress, trading consistency guarantee…