Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Könnte es bei der Verwendung von optimistischem Sperren zu einem Deadlock kommen?

Ich fürchte, Sie müssen bei Ihrer Definition von optimistischer Nebenläufigkeitskontrolle sehr genau sein. In der klassischen Definition von Bernstein, Goodman und Hadzilacos ermöglicht die optimistische Parallelitätssteuerung Threads, die Sperren "virtuell" zu erwerben, mit den Aktualisierungen fortzufahren und dann auf Konsistenzverletzungen zu prüfen, wenn die Transaktion versucht, festzuschreiben. Wenn eine Konsistenzverletzung auftritt, wird die Transaktion zum Abbruch gezwungen und erneut übermittelt. Unter dieser Definition ist nicht klar, wie ein Deadlock auftreten kann, da Threads "nie" blockiert werden, während sie auf eine Sperre warten. Die klassische Definition der optimistischen Nebenläufigkeitskontrolle ist in der Praxis nicht einfach umzusetzen. Neuere Arbeiten zum Hardware-Transaktionsspeicher eröffnen jedoch einige Möglichkeiten und werfen einige Perspektiven auf dieses alte Problem ab.