Каков пример из реальной жизни, когда вы решили использовать пессимистическую блокировку? - PullRequest
0 голосов
/ 27 февраля 2019

Я прочитал много статей о том, когда следует использовать Оптимистическую и Пессимистическую блокировки, и я в основном понимаю:

  • Оптимистическая блокировка более масштабируема, поэтому, вероятно, используйте ее, если это возможно
  • Использованиепессимистическая блокировка, когда не имеет смысла разрешать одновременные обновления

Мне не удалось найти каких-либо полезных примеров, когда было бы разумно выбирать пессимистическую блокировку (кажется, что оптимистично обычнопредпочтительно).

Было бы очень полезно, если бы кто-то мог ответить за конкретный пример: скажем, у нас есть таблица кредитных карт / счетов и мы хотим авторизовать транзакцию.Целостность очень важна, и я не понимаю, почему было бы полезно разрешить одновременные обновления.Это пример, где мы будем использовать пессимистическую блокировку?

1 Ответ

0 голосов
/ 27 февраля 2019

Это почти дубликат этого прошлого вопроса: Оптимистическая или пессимистическая блокировка

Пессимистическая блокировка хороша в тех случаях, когда вы хотите гарантировать атомарную блокировку нескольких ресурсов.Это помогает избежать взаимоблокировок.

Оптимистическая блокировка основана на неатомарном блокировании, в том смысле, что вам может потребоваться блокировать несколько ресурсов во время транзакции, и если вы получаете блокировки оптимистично, вы делаете это по одномувремя, поэтому в отношении других параллельных транзакций существует условие гонки.

Пессимистическая блокировка также имеет некоторые риски.Вы можете заблокировать некоторые ресурсы без необходимости, если окажется, что вам не нужно их блокировать.Это может зависеть от логики вашей транзакции, но вы должны были заблокировать их как часть запроса атомарной блокировки на тот случай, если они вам понадобятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...