1

Как я узнал, что «оптимистичная блокировка», которая иногда упоминается как «оптимистичный контроль параллелизма», на самом деле не имеет блокировки. Типичной реализацией является CAS (Compare-And-Swap). Так что, я думаю, что без блокировки, почему это все еще называется «оптимистичная блокировка»? Есть ли историческая причина, потому что этот термин возник из мира баз данных?Оптимистическая блокировка Оптимистичное управление параллелизмом

+0

В основном «замки» - это абстрактный абстрактный термин, используемый для любого взаимного исключения. Иногда язык используется свободно, как можно сказать, «блокировать» поток - это «блокировать» этот поток от прогрессирования. Лучше быть более точным и использовать такие термины, как «взаимное исключение», которое имеет более определенное определение. – CMCDragonkai

ответ

1

Как вы правильно указали, транзакция не получит никакой блокировки для строки/постоянного объекта, которую она пытается обновить. Но, поскольку вы также можете знать, что оптимистическая блокировка работает по принципу Versiosing. Значение ... Столбец версии базы данных-таблицы-записи (если вы его установили) будет увеличиваться каждый раз, когда он будет обновляться транзакцией. Кроме того, любая транзакция, которая пытается обновить конкретную запись, должна сравнить номер версии записи во время извлечения с номером версии записи во время обновления. Это похоже на то, что у вас есть ключ (как в Lock-Key), который называется номером версии, и пытается увидеть, совпадает ли он с совпадением (означает, что запись не обновляется другим tx тем временем), и вы обновляете. Если совпадение не выполняется (запись обновляется другим tx..и ваш ключ больше не будет работать).

Следовательно, блокировка версий/блокировки отображается так, как будто у вас есть ключ (называемый Version) для практически не существующей блокировки. И реальное значение блокировки можно понять в ситуации, когда ваша текущая версия записи не соответствует и ПРЕДОТВРАЩАЕТ (означает LOCKED), чтобы обновить запись.

 Смежные вопросы

  • Нет связанных вопросов^_^