Lock Upgrade

Wenn eine Transaktion ein Datenobjekt liest, dann hält sie eine nicht exklusive Sperre (Read Lock) auf das Datenobjekt. Wenn diese Transaktion später das gleiche Datenobjekt verändert, dann muss die Sperre in eine exklusive Sperre umgewandelt werden. Der Vorgang der Umwandlung heisst Lock Upgrade.

Wenn mehrere Transaktionen auf die oben beschriebene Weise verfahren, besteht die Gefahr eines Deadlocks. Der Deadlock tritt dann auf, wenn zwei Transaktionen das Datenobjekt lesen bevor eine der beiden Transaktionen die exklusive Sperre erhält, um das Datenobjekt zu verändern. Unter diesen Umständen kann keine der beiden Transaktionen einen Lock Upgrade durchführen. Derartige Deadlocks lassen sich bei relationalen Datenbanken (siehe relationale Datenbank) dadurch verhindern, dass bereits beim Lesen der Datenobjekte eine exklusive Sperre angefordert wird (SELECT ... FOR UPDATE).