Являются ли тупики базы данных фактом жизни? - PullRequest
1 голос
/ 26 августа 2010

Мы все знаем о методах предотвращения взаимоблокировок db - получения блокировок в том же порядке и т. Д. Но в какой-то момент системы, находящиеся под давлением, могут просто и тут страдать от взаимных блокировок. Должны ли мы просто принять это и всегда быть готовыми повторить попытку, когда возникнет тупик, или же тупики следует считать абсолютно верботенными, и мы должны сделать все от нас зависящее, чтобы их предотвратить?

Ответы [ 3 ]

6 голосов
/ 26 августа 2010

Ответ - да.

Вы должны сделать все, что в ваших силах, чтобы предотвратить их, но будете ли вы когда-нибудь удовлетворены тем, что сделали их невозможными?

1 голос
/ 26 августа 2010

Сделайте все, что в ваших силах, чтобы предотвратить их, и будьте готовы повторить попытку, когда они произойдут.:)

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

0 голосов
/ 26 августа 2010

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

Facebookбыло бы хорошим примером этого, не имеет значения, когда все увидят ваше обновление, или если разные пользователи по всему миру увидят разные версии вашего профиля.До тех пор, пока обновление работает или в конечном итоге не работает, этого достаточно.

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