Изменения документа Транзакции и блокировки

Редактировал(а) Alexandr Fokin 2024/06/01 13:29

<
От версии < 18.6 >
отредактировано Alexandr Fokin
на 2022/10/05 18:36
К версии < 18.10 >
отредактировано Alexandr Fokin
на 2022/12/12 12:32
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -7,30 +7,37 @@
7 7  * Блокировки могут иметь разный типы
8 8  Разрешить чтение, но запретить запись
9 9  Запретить любой доступ
10 -* Одиночные операции, выполняемые вне явной транзакции, тоже использую блокировки
10 +* Одиночные операции, выполняемые вне явной транзакции, тоже выполняются транзакционно
11 11  * При разрыве соединения неподтвержденная транзакция будет прервана (rollback)
12 -
13 -* Блокировки задаются автоматически во время запросов и транзакций.
14 14  * На блокировки можно явно влиять, используя табличные указания.
15 15  * Например блокировку можно взять при select запросе до окончания транзакции. Другие транзакции при попытке взять блокировку на этот объект будут ожидать.
16 -* В случае обнаружения deadlock sql сервер среди 2 транзакций выбриает одну.
14 +* В случае обнаружения deadlock sql сервер среди 2 транзакций выбирает одну.
17 17  Одна продолжит выполнение, а вторая прервется с ошибкой, которую должно обработать приложение. (В том числе возможно попытаться повторить транзакцию, рассчитывая, что в этот раз блокировки не будет или хотя бы она завершиться удачно, для этой транзакции)
18 18  
19 19  ----
20 20  
21 -**Понятие оптимистичной и пессимистичной блокировок.**
19 +**[[Блокировки>>doc:Архитектура и модели.Блокировки.WebHome]]**
22 22  
23 -Оптимистичная:
24 -Берем элемент (не блокируя) (фиксируем version/timestamp)
25 -Производим обработку.
26 -Проверяем, что version/timestamp не изменился. (иначе ошибка/повторная обработка/игнорирования, что исходные данные изменились с момента начала обработки)
27 -Сохраняем элемент.
21 +==== Внутренние ссылки: ====
28 28  
29 -Пессимистичная:
30 -Берем элемент. (блокируя его некоторым образом) (в момент блокировки другой обработчик не может получить доступ и ожидает)
31 -Производим обработку.
32 -Сохраняем элемент.
23 +====== Дочерние страницы: ======
33 33  
25 +{{children/}}
26 +
27 +====== Обратные ссылки: ======
28 +
29 +{{velocity}}
30 +#set ($links = $doc.getBacklinks())
31 +#if ($links.size() > 0)
32 + #foreach ($docname in $links)
33 + #set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument())
34 + * [[$escapetool.xml($rdoc.fullName)]]
35 + #end
36 +#else
37 + No back links for this page!
38 +#end
39 +{{/velocity}}
40 +
34 34  ----
35 35  
36 36  Руководство по блокировке и управлению версиями строк транзакций
... ... @@ -54,13 +54,8 @@
54 54  Транзакции
55 55  https://www.flenov.info/books/read/transact-sql/32
56 56  
64 +----
57 57  
58 -Optimistic vs. Pessimistic Locking
59 -https://medium.com/@recepinancc/til-9-optimistic-vs-pessimistic-locking-79a349b76dc8
60 -
61 -Optimistic locking and automatic retry
62 -https://enterprisecraftsmanship.com/posts/optimistic-locking-automatic-retry/
63 -
64 64  DotNetRu | Александр Шелёмин «Concurrency в базах данных»
65 65  https://www.youtube.com/watch?v=a6YzdDFzDl8
66 66