Как известно, существует две стратегии блокировки: оптимистическая и пессимистическая блокировка.
Пессимистическая блокировка - это когда вы блокируете запись для исключительного использования, пока не закончите с ней. Он имеет гораздо лучшую целостность, чем оптимистическая блокировка, но требует от вас осторожности при проектировании приложения, чтобы избежать взаимоблокировок.
Также известно, что Оптимистическое управление параллелизмом - это не то же самое, что Управление параллелизмом нескольких версий (Oracle или MSSQL-Snapshot / MVCC-RC): Оптимистичный и многоверсионный контроль параллелизма - различия?
Но может ли возникнуть взаимоблокировка между двумя транзакциями, если используется OCC (Оптимистический контроль параллелизма) в обоих?
Можно ли сказать, что оптимистическая блокировка снижает вероятность тупиковой ситуации за счет уменьшения согласованности? И только если каждое обновление происходит в отдельной транзакции, то вероятность тупиковой ситуации составляет 0%, но при этом наименьшая согласованность.