Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7      [все]
 Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
Читаю главу книги Фаулера про автоматическую автономую блокировку и там такая фраза написана:

Фаулер
Оптимистическая автономная блокировка может быть применена в любое время, однако срок её действия ограничивается системной транзакцией, в процессе которой она была установлена. Таким образом, чтобы выполнение бизнес-транзакции не привело к утрате изменений или несогласованности данных, стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции.

Что хотел сказать автор? Какая-то непонятная причинно-следственная связь

P.S. про @Version в хибернейт наслышан.

Вот это читал: https://docs.jboss.org/hibernate/orm/6.0/userguide/html_single/Hibernate_User_Guide.html#locking-optimistic

ALL и DIRTY тоже понимаю
14 окт 19, 18:53    [21994031]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
questioner
про автоматическую автономую блокировку


про оптимистическую автономную блокировку
14 окт 19, 18:55    [21994033]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner,
Скрин давай.
Ну или включай поток своих деревенских ругательств. Как без этого.
14 окт 19, 19:21    [21994048]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner,
Ну или включай поток своих деревенских ругательств. Как без этого.

шта?
14 окт 19, 19:29    [21994060]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner,
Скрин давай.


Картинка с другого сайта.
14 окт 19, 19:33    [21994068]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
PetroNotC Sharp
questioner,
Ну или включай поток своих деревенских ругательств. Как без этого.

шта?
21991298
14 окт 19, 19:41    [21994074]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
пропущено...

шта?
21991298

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1317868&msg=21991299
14 окт 19, 19:42    [21994077]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
PetroNotC Sharp,
Двоечник, и права качает).
Понятие системная транзакция выучил?
Кто начинает, время продолжения?
14 окт 19, 19:51    [21994088]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner,
Дак вот, двоечник.
Системная транзакция begin в субд намного меньше бизнес транзакции.
Ну или равны. Поэтому блокировку в виде номера версии можно взять в любой момент но в пределах системной физической сервера.
14 окт 19, 19:58    [21994093]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Мне особенно вырезанный кусок понравился. Все поставили с ног на голову. Или автор или переводчики постарались.

К сообщению приложен файл. Размер - 147Kb
14 окт 19, 20:01    [21994094]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner,
Дак вот, двоечник.
Системная транзакция begin в субд намного меньше бизнес транзакции.
Ну или равны. Поэтому блокировку в виде номера версии можно взять в любой момент но в пределах системной физической сервера.
это я всё знаю. Научись читать вопрос.
Фаулер
Таким образом, чтобы выполнение бизнес-транзакции не привело к утрате изменений или несогласованности данных, стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции.


Каким таким образом ?
14 окт 19, 20:01    [21994096]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
Leonid Kudryavtsev,
Да. Телега впереди лошади).
14 окт 19, 20:03    [21994097]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
Научись читать вопрос.
четвертый топик тебя все без скрина не понимают).
14 окт 19, 20:04    [21994100]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Лично я так понимаю данный отрывок: "меняем писсимистическую блокировку на оптимистическую" и тут же прилетает фея и чудесным образом и "конфиликты крайне редки" и "могут работать несколько пользователей". Что же раньше мешало нескольким пользователям работать одновременно - совершенно не понятно.

Оптимистическая блокировка прямо как статья 209 УК РСФСР от 1961 года (Об усилении борьбы с лицами, уклоняющимися от общественно-полезного труда и ведущими паразитический образ жизни) - все тут же начинают работать ! и при этом одновременно !
14 окт 19, 20:07    [21994101]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
Leonid Kudryavtsev
Мне особенно вырезанный кусок понравился. Все поставили с ног на голову. Или автор или переводчики постарались.


Да вроде тут то всё верно как раз.

При оптимистической - ничего не лочим. Просто в конце проверяем на всякий случай, что ничего не поменялось. Если что-то поменялось - выдаём ошибку. Ошибка должна быть редкой, чтобы юзера сильно не бесить. Параллельность может быть достигнута если мы допустим не по версии проверяем, а по какому-то ограниченному набору полей
14 окт 19, 20:08    [21994102]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
Каким таким образом ?
изменили 4 записи.
Значит К КАЖДОЙ ИЗ ЧЕТЫРЕХ нужно номер версии применять.
Сложно?
14 окт 19, 20:08    [21994104]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
Научись читать вопрос.
четвертый топик тебя все без скрина не понимают).


Ты не понимаешь) цитата Фаулера в первом же сообщении есть.
14 окт 19, 20:09    [21994105]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
questioner
Да вроде тут то всё верно как раз.

прямо как в анегдоте:

Устраивается секретарша на работу. директор спрашивает:
- Какая у вас скорость печати?
- 1000 знаков в минуту!
- Так много???
- Правда такая ерунда получается...
14 окт 19, 20:10    [21994107]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
Ты не понимаешь)
у тебя и память девичья.
Кто скрины то первый просил?
))))
14 окт 19, 20:11    [21994108]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Перефразирую анакдот по Фаулеру. При использование данной формулировки в вопросах по ЕГЭ ссылка и гонорар автору обязателен

- Может ли с одной записью при оптимистической блокировке работать 1000 пользователей?
- Конечно могут!..... только такая ерунда получается....
14 окт 19, 20:13    [21994109]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
Ты не понимаешь)
у тебя и память девичья.
Кто скрины то первый просил?
))))

21994048
14 окт 19, 20:13    [21994110]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
Ошибка должна быть редкой, чтобы юзера сильно не бесить.

Записывай:
Оптимистическую применяют в публичных веб проектах.
14 окт 19, 20:14    [21994111]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner,
Скрины просили мемберы ещё в прошлых твоих топиках.
))
14 окт 19, 20:15    [21994112]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
Каким таким образом ?
изменили 4 записи.
Значит К КАЖДОЙ ИЗ ЧЕТЫРЕХ нужно номер версии применять.
Сложно?

вот эта фраза тогда что значит?

Фаулер
Оптимистическая автономная блокировка может быть применена в любое время


и зачем она вообще тут
14 окт 19, 20:15    [21994113]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner,
Скрины просили мемберы ещё в прошлых твоих топиках.
))

и?
14 окт 19, 20:16    [21994114]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
Leonid Kudryavtsev
Перефразирую анакдот по Фаулеру. При использование данной формулировки в вопросах по ЕГЭ ссылка и гонорар автору обязателен

- Может ли с одной записью при оптимистической блокировке работать 1000 пользователей?
- Конечно могут!..... только такая ерунда получается....


ну там логика в том, что если мы не предполагаем дофига параллельных изменений, то не будем и блокировать. Если изредка будут накладываться результаты, то ошибку юзеру покажем и ладно.
14 окт 19, 20:18    [21994115]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
PetroNotC Sharp
questioner,
Скрины просили мемберы ещё в прошлых твоих топиках.
))

и?
ох тугой ты.
Не я один просил у тебя скрины.
В тебе проблема.
14 окт 19, 20:21    [21994118]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
вот эта фраза тогда что значит?

Русский язык - "в любое время но в пределах завтрака".
)))
14 окт 19, 20:23    [21994120]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
пропущено...

и?
ох тугой ты.
Не я один просил у тебя скрины.
В тебе проблема.

по-моему тугой тут ты. Тебе в первом посте дали цитату из книги и вопрос именно по этой цитате.
14 окт 19, 20:24    [21994121]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner,
Переверни страницу фаулера.
Работай дальше.
14 окт 19, 20:26    [21994122]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
IMHO
В топку всю эту теорию и теоретиков. Фаулера отправить туда же, где уже Каутский с Троцким.

offtopic on
предлагаю новый мем
- Карузо в исполнении Рабиновича
- Фаулер в пересказе questioner'а
offtopic off

PetroNotC Sharp
questioner
вот эта фраза тогда что значит?

Русский язык - "в любое время но в пределах завтрака".
)))

+++
мне этот отрывок кажется выдернутым из контекста
особенно мысль "про каждую запись"
такое ощущение, что переводчик (или редактор) пару абзацев из текста просто выкинул
14 окт 19, 20:30    [21994123]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
вот эта фраза тогда что значит?

Русский язык - "в любое время но в пределах завтрака".
)))


а применена что значит? когда считали или когда update .... where version=42 .... ?
14 окт 19, 20:33    [21994124]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Фаулер в пересказе меня:
+

Но в целом, все логично ! Причинно-следственная связь совершенно очевидна !

"стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции." == "НЕ стоит применять к записям, НЕ измененным во время транзакции"

Что и правильно !

Если кто-то не понимает русского языка и применяет оптимистическую блокировку ко всем записям и измененным и не изменным - вины Фаулера тут нет ! Он черным по белому в книжке написал "стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции."

:=)
14 окт 19, 20:36    [21994126]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
Leonid Kudryavtsev,
))
14 окт 19, 20:40    [21994127]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
Leonid Kudryavtsev
Фаулер в пересказе меня:
+

Но в целом, все логично ! Причинно-следственная связь совершенно очевидна !

"стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции." == "НЕ стоит применять к записям, НЕ измененным во время транзакции"

Что и правильно !

Если кто-то не понимает русского языка и применяет оптимистическую блокировку ко всем записям и измененным и не изменным - вины Фаулера тут нет ! Он черным по белому в книжке написал "стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции."

:=)

А вот этот текст целиком можно в твоём переводе? с приплетанием бизнес и системных транзакций и причинно-следственнной связи между предложениями.

Фаулер
Оптимистическая автономная блокировка может быть применена в любое время, однако срок её действия ограничивается системной транзакцией, в процессе которой она была установлена. Таким образом, чтобы выполнение бизнес-транзакции не привело к утрате изменений или несогласованности данных, стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции.
14 окт 19, 20:42    [21994128]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
а применена что значит? когда считали или когда update .... where version=42 .... ?
монопесуально
14 окт 19, 20:42    [21994129]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
Фаулер
в процессе


тут же автор имеет ввиду During ?
14 окт 19, 20:44    [21994130]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
А вот этот текст целиком можно в твоём переводе?
нельзя. Тебе на лексемы надо. Целиком нельзя. Кусаться начинаешь).
14 окт 19, 20:53    [21994133]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
А вот этот текст целиком можно в твоём переводе?
нельзя. Тебе на лексемы надо. Целиком нельзя. Кусаться начинаешь).


Тебя не спрашивали - выйди.
14 окт 19, 21:09    [21994144]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
questioner
А вот этот текст целиком можно в твоём переводе?

Фаулер
Оптимистическая автономная блокировка может быть применена в любое время, однако срок её действия ограничивается системной транзакцией, в процессе которой она была установлена. Таким образом, чтобы выполнение бизнес-транзакции не привело к утрате изменений или несогласованности данных, стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции.


Легко, только если ты мне объяснишь смысл слов "срок действия". В принципе, достаточно объяснить смысл слова "действие". Т.к. мне не понятно, какое вообще действие происходит при оптимистической блокировке. Весь смысл оптимистической блокировки в том и есть, что никакого действия нет IMHO.

+

Если действие по Фаулеру это увеличение поля version в оперативной памяти, то срок этого действия будет продолжаться до перезагрузке компьютера или отключения питания. Хотя, возможно, компьютер у Фаулера работает как-то по другому.

НО ! Опять таки ! Все логично !

Если системная транзакция = время со старта компьютера до нажатия на кнопку reset, то тогда опасения Фаулера про "утрату изменений или несогласованность данных" так же вполне понятны и достойны сочувствия.

Например у нас сегодня Oracle не работал. Как сказал системный администратор: " ты мне сразу говори, оно иногда виснет и нужно весь сервер перезагружать" дальше прямая цитата "там бл#ть 16 терабайт. ext4. журнал как в оракле. б%ть. востанавливать. б$%ть 16 терабайт."

Т.ч. возможно во фразе из книжки изначально были и какие-то другие слова, которые просто были выкинуты редактором или переводчиком.
14 окт 19, 21:12    [21994145]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
Leonid Kudryavtsev,

Системная транзакция это в БД которая.
14 окт 19, 21:36    [21994158]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
Тебя не спрашивали - выйди.

"Все занятия у него проходили однаково - Вовочка матерился учетилям." (с)
15 окт 19, 07:12    [21994243]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
Тебя не спрашивали - выйди.

"Все занятия у него проходили однаково - Вовочка матерился учетилям." (с)


Ты себя что ли учителем назвал? не рановато тебе?
15 окт 19, 13:05    [21994532]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner,
А чем прошлый топик закончился?
Вспоминай.
15 окт 19, 13:23    [21994570]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner,
А чем прошлый топик закончился?
Вспоминай.


ничем?
15 окт 19, 13:33    [21994599]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
PetroNotC Sharp
questioner,
А чем прошлый топик закончился?
Вспоминай.


ничем?
садись опять двойка.
Делай следующий скрин.
15 окт 19, 13:35    [21994602]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
пропущено...


ничем?
садись опять двойка.
Делай следующий скрин.


Уймись, учитель недоделанный
15 окт 19, 13:47    [21994625]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner,
"Других учителей в стране нет вовочка" (с)
15 окт 19, 13:48    [21994628]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
questioner
Системная транзакция это в БД которая.

Совершенно полный бред.

Транзакция в СУБД при оптимистической блокировки начинается ровно в тот момент, когда говорят hibernate.commit()

При hibernate коммите, начинаются скидываться изменения в БД (по английски это обычно называют post), послыются update'ы которые и НАЧИНАЮТ транзакцию в СУБД и в конце в БД посылают commit который транзакцию СУБД ЗАВЕРШАЕТ. И все это происходит в рамках одного метода.

Т.ч. никакой времени жизни в рамках "в БД которая" быть не может в принципе. Т.к. при обработке данных никакой транзакции в СУБД быть и не должно. В этом и есть весь смысл большая часть смысла оптимистичной блокировке, что не нужны иметь долго открытую транзакцию с блокировками в СУБД, а все большая часть транзакции и блокировки в СУБД "короткие".

IMHO
15 окт 19, 17:20    [21994851]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Хотя, иногда, в некоторых базах данных и существуют команды START TRANSACTION.... END TRANSACTION но, обычно. транзакции в СУБД начинаются неявно, при первой DML команде (или первой блокировке?) и до COMMIT'а/ROLBACK'а.

Начинает ли команда SELECT новую транзакцию, точно не уверен. Подозреваю, для некоторых СУБД - нифига ничего не начинает.

Но по хорошему это надо доки/гайды от конкретной СУБД перечитывать. Что считается транзакцией и когда конкретно она начинается.

IMHO & AFAIK
15 окт 19, 17:25    [21994857]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Ну и опять таки, к "времени жизни" оптимистической блокировке это отношения имеет чуть меньше, чем никакого

Т.к. никто не мешает мне кэшировать объекты СУБД полученные SELECT'ом хоть со времен царя гороха, хоть со времен позапрошлого включения сервера СУБД, хоть еще более ранних времен. Хранить их версию, обрабатывать, а проверять/инвалидировать кэшь только в момент конфликтов. Такая себе оптимистично-при-оптимистичная блокировка. И, ровно для этого, оптимистичная блокировка и придумана IMHO. Да и называется так же - "оптимистичная". Храним старые-престарые данные и оптимистично надеемся, что они хорошие.
15 окт 19, 17:32    [21994859]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
chpasha
Member

Откуда:
Сообщений: 8596
Leonid Kudryavtsev
Начинает ли команда SELECT новую транзакцию

конечно, ведь уровень изоляции стартуемой транзакции определяет какие данные этот select увидит, разве нет?
15 окт 19, 17:42    [21994864]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
Leonid Kudryavtsev
СУБД начинаются неявно
да. И боюсь фаулер в такие тонкости не опускается.
Его задача - концепция)
15 окт 19, 17:43    [21994865]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
chpasha
Leonid Kudryavtsev
Начинает ли команда SELECT новую транзакцию

конечно, ведь уровень изоляции стартуемой транзакции определяет какие данные этот select увидит, разве нет?

"не все так очевидно" ( C ) дочь офицера

бывают разные степени изоляции транзакций. может быть разная трактовка самого термина "транзакция" у разных писателей СУБД. Тут только читать доку по __конкретной__ СУБД.

COMMIT и ROLLBACK кроме "теоретического" окончания транзакции, должен еще изменения или зафиксировать в файлах базы или откатить. Для SELECT'а ничего фиксировать и/или откатывать не нужно. Т.е. ровно такое же "время жизни транзакции", как и "время жизни оптимистической блокировки". Странное время жизни того, чего физически нет.

IMHO
15 окт 19, 17:49    [21994870]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
Leonid Kudryavtsev,
Совершенно верно. Select не особо волнует разработчика. А вот модификация таблы в середине кода будет закоммичена и уже ее не откатить.
15 окт 19, 17:52    [21994871]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner,
"Других учителей в стране нет вовочка" (с)


C такими петучителями суп не сваришь. Так - тролли, последние
15 окт 19, 19:29    [21994925]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
Leonid Kudryavtsev
СУБД начинаются неявно
да. И боюсь фаулер в такие тонкости не опускается.
Его задача - концепция)


вообще волнуют. Он даже их рисует на картинке
15 окт 19, 19:31    [21994926]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
Leonid Kudryavtsev
questioner
Системная транзакция это в БД которая.

Совершенно полный бред.

Транзакция в СУБД при оптимистической блокировки начинается ровно в тот момент, когда говорят hibernate.commit()

При hibernate коммите, начинаются скидываться изменения в БД (по английски это обычно называют post), послыются update'ы которые и НАЧИНАЮТ транзакцию в СУБД и в конце в БД посылают commit который транзакцию СУБД ЗАВЕРШАЕТ. И все это происходит в рамках одного метода.

Т.ч. никакой времени жизни в рамках "в БД которая" быть не может в принципе. Т.к. при обработке данных никакой транзакции в СУБД быть и не должно. В этом и есть весь смысл большая часть смысла оптимистичной блокировке, что не нужны иметь долго открытую транзакцию с блокировками в СУБД, а все большая часть транзакции и блокировки в СУБД "короткие".

IMHO



В книге ЯВНО говорится, что бизнес-транзакция может охватывать несколько системных транзакций.
15 окт 19, 19:34    [21994931]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865


К сообщению приложен файл. Размер - 132Kb
15 окт 19, 19:38    [21994938]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Оптимистическая блокировка НИКАК со временим жизни транзакции СУБД НЕ связана.

Никто не мешает мне при оптимистик блокировке:
1. Прочитать данные в память сервера приложений
2. Тридцать три и три раза перезагрузить сервер СУБД
3. Записать данные в БД

На то она и оптимистическая. При писсиместической, такое, разумеется, уже не получится. Т.к. кто нибудь между двадцать пятым и тридцатым разом перезагрузки СУБД может поменять данные и данные станут не корректны ))) А при оптимистической - запросто.

IMHO
15 окт 19, 19:56    [21994948]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
P.S.
что на картинке фаулера хорошо и видно
"Извлечь данные" и "записать" у него в разных квадратиках
15 окт 19, 19:58    [21994950]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
читаем исходную фразу из книжки
Оптимистическая автономная блокировка может быть применена в любое время, однако срок её действия ограничивается системной транзакцией, в процессе которой она была установлена.

смотрим на картинку из той же книжки......

Классика
- По какому делу вы пришли ко мне? Говорите как можно скорее, я сейчас иду обедать.
- Мы, управление дома, - с ненавистью заговорил Швондер, - пришли к вам после общего собрания жильцов нашего дома, на котором стоял вопрос об уплотнении квартир дома...
- Кто на ком стоял? - крикнул Филипп Филиппович, - потрудитесь излагать ваши мысли яснее.
- Вопрос стоял об уплотнении.
- Довольно! Я понял!
15 окт 19, 20:05    [21994952]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Пересказ Фаулера в изложении меня любимого

+


читаем исходную фразу из книжки
смотрим на картинку из той же книжки......

и понимаем, что скорее всего Фаулер имел в виду две РАЗНЫЕ блокировка

1) "Оптимистик блокировку" как метод доступа к данным. При которой на самом деле БЛОКИРОВКИ то и НЕТ.
2) И реальную блокировку в СУБД, которая, действительно живет только во время транзакции

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


Тогда фраза хоть и кривая, но хоть какой-то смысл появляется.

Ну а далее, как я уже объяснил ))) 21994126, Фаулер имел в виду, что не нужно блокировать всю таблицу, а только те записи. которые менялись )))

В общем, что Коррузо в перепеве Робиновича, что Фаулер в пересказе.....

Что Фаулер, что Каутский с Троцким - место в топке.

- Все равно не позволю есть, пока не заложите. Зина, примите майонез
у Шарикова.
- Как это так "примите"? - расстроился Шариков, - я сейчас заложу.
Левой рукой он заслонил блюдо от Зины, а правой запихнул салфетку за
воротник и стал похож на клиента в парикмахерской.
- И вилкой, пожалуйста, - добавил Борменталь.
Шариков длинно вздохнул и стал ловить куски осетрины в густом соусе.
- Я еще водочки выпью? - заявил он вопросительно.
- А не будет ли вам? - осведомился Борменталь, - вы последнее время
слишком налегаете на водку.
- Вам жалко? - осведомился Шариков и глянул исподлобья.
- Глупости говорите... - вмешался суровый Филипп Филиппович, но
Борменталь его перебил.
- Не беспокойтесь, Филипп Филиппович, я сам. Вы, Шариков, чепуху
говорите и возмутительнее всего то, что говорите ее безапелляционно и
уверенно. Водки мне, конечно, не жаль, тем более, что она не моя, а
Филиппа Филипповича. Просто - это вредно. Это - раз, а второе - вы и без
водки держите себя неприлично.
Борменталь указал на заклеенный буфет.
- Зинуша, дайте мне, пожалуйста, еще рыбы, - произнес профессор.
Шариков тем временем потянулся к графинчику и, покосившись на
Борменталя, налил рюмочку.
- И другим надо предложить, - сказал Борменталь, - и так: сперва
Филиппу Филипповичу, затем мне, а в заключение себе.
Шариковский рот тронула едва заметная сатирическая улыбка, и он
разлил водку по рюмкам.
- Вот все у вас как на параде, - заговорил он, - салфетку - туда,
галстук - сюда, да "извините", да "пожалуйста-мерси", а так, чтобы
по-настоящему, - это нет. Мучаете сами себя, как при царском режиме.
- А как это "по-настоящему"? - позвольте осведомиться.
Шариков на это ничего не ответил Филиппу Филипповичу, а поднял рюмку
и произнес:
- Ну желаю, чтобы все...
- И вам также, - с некоторой иронией отозвался Борменталь.
Шариков выплеснул содержимое рюмки себе в глотку, сморщился, кусочек
хлеба поднес к носу, понюхал, а затем проглотил, причем глаза его налились
слезами.


15 окт 19, 20:21    [21994961]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
Leonid Kudryavtsev
P.S.
что на картинке фаулера хорошо и видно
"Извлечь данные" и "записать" у него в разных квадратиках


Ну дык в пунктире это системная транзакция (она ж БД шная)
15 окт 19, 20:58    [21994974]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9504
Leonid Kudryavtsev
Для SELECT'а ничего фиксировать и/или откатывать не нужно. Т.е. ровно такое же "время жизни транзакции", как и "время жизни оптимистической блокировки". Странное время жизни того, чего физически нет.
IMHO
Неправильное у вас ИМХО.
Выборка обязана подчиняться общим правилам просто потому, что транзакция - механизм обеспечения атомарности и целостности.
"Грязное чтение" оставим на совести тех СУБД, где оно есть.
15 окт 19, 21:53    [21994992]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner,
Вот ты на форуме вроде никому не отвечаешь, не помогаешь.
Пришел с вопросом и хамишь, слова матерные употребляешь.
Прогресса в обучении нет. Свой пост про DI не помним.
То что ТС спрашивает и не огрызается ты не согласен.
Может тебя плохо воспитывали? Или маньяк какой одичавший.
16 окт 19, 10:17    [21995202]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner,
Упс. Топик уже чистят. Не отвлекайся от темы ТС.
16 окт 19, 10:20    [21995209]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
PetroNotC Sharp, попался
16 окт 19, 11:18    [21995279]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
PetroNotC Sharp, попался Картинка с другого сайта.
хоть и не знаю за что но готов выслать вискарь в твою коллекцию)
16 окт 19, 11:35    [21995291]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Пока не стоит. Я на таблЭтках.
16 окт 19, 11:54    [21995313]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
продолжаю обсуждение в стиле "сколько ангелов может уместиться на острие иглы"
в общем-то - это глубоко пофиг, чисто ради флуда
Basil A. Sidorov
Leonid Kudryavtsev
Для SELECT'а ничего фиксировать и/или откатывать не нужно. Т.е. ровно такое же "время жизни транзакции", как и "время жизни оптимистической блокировки". Странное время жизни того, чего физически нет.
IMHO
Неправильное у вас ИМХО.
Выборка обязана подчиняться общим правилам просто потому, что транзакция - механизм обеспечения атомарности и целостности.
"Грязное чтение" оставим на совести тех СУБД, где оно есть.


"не все так очевидно"
Это только у Фаулера и других теоретиков, транзакция атомарна и целостна. А даже в википедии:
1. не всегда консистентна, т.к. есть разные режимы изоляции
2. не всегда атомарна, т.к. есть сейв-поинты, автономные (вложенные) транзакции, статемент-консистент и перезапуск стайтментов, чекпоинты и прочее

в общем, в реальной жизни ничего автомарного и консистентного и нет

"-а что же есть?
-а ничего и нет, все только видимость" ( C ) сказка о говнокуре и Будде
16 окт 19, 13:38    [21995428]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Продолжая бредить дальше, то про SELECT можно выдвинуть три утверждения. (больше придумать не смог)
1. SELECT - ТОЧНО начинает транзакцию
2. SELECT - точно НЕ начинает транзакцию
3. SELECT - НЕ точно начинает транзакцию

Мое первоначальное высказывание:
Leonid Kudryavtsev
Начинает ли команда SELECT новую транзакцию, точно не уверен.
16 окт 19, 13:39    [21995429]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Делаем маленький тест на Oracle 11g и видим.... что select совершенно НЕ точно начинает новую транзакцию. Есть ли транзакция, нет ли транзакции - то нам совершенно НЕ точно и совершенно НЕ ведомо

+

create or replace package aa_TEST is

procedure init;
  
procedure sel_upd_commit;
  
procedure sel_upd;
    
procedure sel_only;

procedure sel_for_update;

end aa_TEST;
/

create or replace package body aa_TEST is

procedure init is
  begin
    execute immediate 'create table aa_tbl ( id number );';
    execute immediate 'insert into aa_tbl values (0);';
    commit;
  end;
  
procedure sel_upd_commit is
PRAGMA AUTONOMOUS_TRANSACTION; 
    x_rowid rowid;
  begin
    select rowid into x_rowid from aa_tbl where id=0;
    update aa_tbl set id=100500 where id = 500100;
    commit;
  end;
  
procedure sel_upd is
PRAGMA AUTONOMOUS_TRANSACTION; 
    x_rowid rowid;
  begin
    select rowid into x_rowid from aa_tbl where id=0;
    update aa_tbl set id=100500 where id = 500100;
    -- commit;
  end;
    
procedure sel_only is
PRAGMA AUTONOMOUS_TRANSACTION; 
    x_rowid rowid;
  begin
    select rowid into x_rowid from aa_tbl where id=0;
    -- update aa_tbl set id=100500 where id = 500100;
    -- commit;
  end;

procedure sel_for_update is
PRAGMA AUTONOMOUS_TRANSACTION; 
    x_rowid rowid;
  begin
    select rowid into x_rowid from aa_tbl where id=0 for update;
    -- update aa_tbl set id=100500 where id = 500100;
    -- commit;
  end;

end aa_TEST;
/



+

-- Транзакция ТОЧНО началась
-- Транзакция ТОЧНО закончилась
-- ошибки нет
begin
  aa_test.sel_upd_commit;
end;
/
-- Транзакция ТОЧНО началась
-- Транзакция НЕ закончилась
-- ошибка ЕСТЬ
begin
  aa_test.sel_upd;
end;
/
-- Транзакция ????? началась  (не точно?)
-- Транзакция НЕ закончилась
-- ошибки нет
-- А был ли мальчик? А было ли "начало транзакции"?
begin
  aa_test.sel_only;
end;
/

-- Транзакция ТОЧНО началась
-- Транзакция НЕ закончилась
-- ошибки ЕСТЬ
begin
  aa_test.sel_for_update;
end;
/



PL/SQL procedure successfully completed

begin
aa_test.sel_upd;
end;

ORA-06519: active autonomous transaction detected and rolled back
ORA-06512: at "MSM.AA_TEST", line 26
ORA-06512: at line 3

PL/SQL procedure successfully completed

begin
aa_test.sel_for_update;
end;

ORA-06519: active autonomous transaction detected and rolled back
ORA-06512: at "MSM.AA_TEST", line 44
ORA-06512: at line 3
16 окт 19, 13:47    [21995440]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9504
Leonid Kudryavtsev
Делаем маленький тест на Oracle 11g и видим.... что select совершенно НЕ точно начинает новую транзакцию.
Раздел 10 Transactions "Концепт-гада" не очень с вами согласен:
+ выделено мною
Beginning of a Transaction
A transaction begins when the first executable SQL statement is encountered. An executable SQL statement is a SQL statement that generates calls to a database instance, including DML and DDL statements and the SET TRANSACTION statement.
Или хотите предоставить классификацию, в которой оператор select не принадлежит к D(ata)M(anipulation)L(anguage)?
16 окт 19, 14:23    [21995491]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
Господа. Вы зря спорите.
Фаулер не рассматривает транзакцию в базе на уровне оператора select.
Он рассматривает уровень Единица работы с базой (квадратик).
Что физически происходит в субд его не волнует.
16 окт 19, 14:36    [21995525]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Дык как раз до этого посмотрел и перечитал доку по Oracle. Но там формулировки ровно такие же, как у Фаулера

в целом-то - глубоко пофик, как спор про ангелов на конце иглы
ни ангелов никто не видел, ни сфеоическую транзакцакцию в вакууме. пока данные не меняются - началось или нет, глубоко пофиг

IMHO на правах бреда, ни на что другое и не притендую

p.s. тест кейс, когда SELECT есть, а начала транзакции (автономной) как бы и нет - привел. UPDATE (не меняющий никаких записей) и SELECT ... FOR UPDATE начинают "active autonomous transaction", а вот SELECT просто - ноль эффекта
16 окт 19, 14:56    [21995573]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Leonid Kudryavtsev, я-бы вместе с SELECT рассмотрел изоляцию. Это способность
видеть или не видеть dirty, фантомы и прочие штуки которые идут еще с эпохи
файловых БД.

Oracle по дефолту всегда включает READ COMMITED. Другие DBMS - не знаю.

Кроме того есть наверное архитектурный gap между уровнями изоляций JDBC
и практическим количеством этих изоляций которые реально поддерживаются
в текущей DBMS.

Грубо говоря они могут не маппится 1:1.

Вообще рассматривать сферический SQL еще можно. В рамках ASNI стандартов.

Но как рассматривать сферическую DBMS и ее режимы изоляции - я не знаю.
Скорее всего - никак.
16 окт 19, 14:57    [21995576]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
PetroNotC Sharp
Господа. Вы зря спорите.

вот лично я, ни сколько не спорю
исключительно ради флуда )))
16 окт 19, 14:59    [21995584]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
Leonid Kudryavtsev,
)))
Поддерживаю флуд _осознанный_.
16 окт 19, 15:07    [21995601]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
mayton,

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

в общем, как и весь этот топик изначально
16 окт 19, 15:12    [21995608]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9504
Leonid Kudryavtsev
p.s. тест кейс, когда SELECT есть, а начала транзакции (автономной) как бы и нет - привел.
... только select в курсоре PSQL - вообще ни разу не DML и в этом случае надо читать другие разделы документации.
16 окт 19, 15:52    [21995669]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
mayton
я-бы .... рассмотрел изоляцию. Это способность видеть или не видеть....

Грубо говоря они могут не маппится 1:1


Говорю на бытовом языке, за точностью терминов не гонюсь. Мне кажется, есть два разных механизма СУБД

1. обеспечение версионности = "изоляция"
2. обеспечение целостности при записи

Теоретически "транзакция" это и то и другое ("и можно без хлеба" ( C ), желательно в режиме serialized), практически - две разных механизма, которые не всегда маппятся 1:1

Когда есть UPDATE/DELETE/INSERT мы транзакцию всегда можем "пощупать" т.к. работа механизма N2 вполне себе видна

Если же изменений нет - то транзакция становится чисто призрачным теоретическим термином. Есть она, нет ее.... есть ли ангелы, нет ангелов... сколько их может уместиться на кончике иглы?

В том же самом Oracle, "конец транзакции" в виде SCN /system change number/ есть, а вот есть ли что-то реальное (что можно посмотреть, пощупать) для самой "транзакции" или для "начала транзакции" - я не знаю. С ходу не помню.

Было бы удобно считать, что COMMIT/ROLLBACK == конец одной транзакции == начало другой, но вроде доки и теоретики явно разделяют "конец" и "начало". Поэтому после прочтения док, остается какая-то душевная неопределенность, что тогда должно существовать между-транзакционное пространство.... которое, конечно, никто не видел.... но должны же где-то жить зеленые человечки?

IMHO на правах бреда
16 окт 19, 16:02    [21995683]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Продолжим бредить дальше. Чисто теоретически.

Нашел такое определения в И-нет
Транзакция (или логическая единица работы) – неделимая с точки зрения воздействия на базу данных последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации) такая, что либо результаты всех операторов, входящих в транзакцию, отображаются в БД, либо воздействие всех этих операторов полностью отсутствует.


Т.е. если воздействия нет, то как бы и термин "транзакция" не применим (и соответственно "начало транзакции")

Как квантовая запутанность.

SELECT запутан с последующими UPDATE'ами. Нет update-ов, нет транзакции, select ничего и не начинает. А вот если... на растоянии 100500 световых лет строк кода, внезапно оказался UPDATE, то "запутанный SELECT" транзакцию уже давно и начал.

Такая вот аналогия :=) на правах бреда
16 окт 19, 16:03    [21995685]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
Leonid Kudryavtsev
теоретики явно разделяют "конец" и "начало".
+активная, вложенная, автономная)) распеределенная.
В хибере упрощаем. Транзакция на запрос (вызов метода begin) и остальное за скобками темы.
16 окт 19, 16:08    [21995691]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Leonid Kudryavtsev
mayton
я-бы .... рассмотрел изоляцию. Это способность видеть или не видеть....

Грубо говоря они могут не маппится 1:1


Говорю на бытовом языке, за точностью терминов не гонюсь. Мне кажется, есть два разных механизма СУБД

1. обеспечение версионности = "изоляция"
2. обеспечение целостности при записи

Теоретически "транзакция" это и то и другое ("и можно без хлеба" ( C ), желательно в режиме serialized), практически - две разных механизма, которые не всегда маппятся 1:1

Когда есть UPDATE/DELETE/INSERT мы транзакцию всегда можем "пощупать" т.к. работа механизма N2 вполне себе видна

По SELECT

Приведу практический пример. Вы написали микро-сервис который возвращает инфу по клиенту.
Двумя методами. getBrief(clientId), getFull(clientId). Грубо говоря смотрим в виджет который показывает
краткую сводку. А потом кликаем мышкой и видим детализацию. Паттерн норм? Вполне себе норм.
Продкутовый кейс. Такое часто бывает.

Это две операции select. Но между этими операциями база могла изменятся. И клиент мог
менять какие-то свойства. Ну... по крайней мере бизнес говорит что такое вполне себе возможно.
Чего-ж нет то?

Вот и вопрос следующий. Эти два селекта мы рассматриваем в изоляции от изменений БД? Тогда мы должны
соотв зафиксировать режим транзакций и получить согласованный снимок.

Или мы просто делаем 2 независимых селекта и получаем теоретически разные сеты атрибутов клиента.
16 окт 19, 16:14    [21995695]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
Это две операции select. Но между этими операциями база могла изменятся.
так же как и посты на sql.ru.
Ничего страшного. Если учитывать в коде.
Это асинхронность, в принципе.
С ней сложнее писать как и с микросервисами.
16 окт 19, 16:21    [21995705]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
mayton
Тогда мы должны соотв зафиксировать режим транзакций и получить согласованный снимок.

нифига режимы транзакций по памяти не помню
какой режим Вы предлагаете установить "на практике" ("практический пример" ( C )) ?

интересный кейс, т.к. мне кажется, что попытка перевести его в "оптимистик блокировку" (тема топика) может оказаться не такой уж и простой
16 окт 19, 16:24    [21995708]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
mayton
Вы написали микро-сервис который возвращает инфу по клиенту.
Двумя методами. getBrief(clientId), getFull(clientId). Грубо говоря смотрим в виджет который показывает
краткую сводку. А потом кликаем мышкой и видим детализацию. Паттерн норм? Вполне себе норм.
....
и получить согласованный снимок.

Нифига не норм. Как минимум метода "refresh" не хватает )))

получаем статическую фигню, которая всегда возврашает старые данные на момент первого логина юзера

данные может и согласованные, но ... "такая фигня получается" ( C )
16 окт 19, 16:29    [21995712]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
Leonid Kudryavtsev,
Этот юзкейс есть в любой системе в принципе.
orm.ПроверитьНаДолги(Имя
orm.ВыдатьКредит(Имя
Между первым и вторым всегда может ситуация измениться.
Это риски и не надо тут блокировать.
16 окт 19, 16:34    [21995717]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Leonid Kudryavtsev
mayton
Вы написали микро-сервис который возвращает инфу по клиенту.
Двумя методами. getBrief(clientId), getFull(clientId). Грубо говоря смотрим в виджет который показывает
краткую сводку. А потом кликаем мышкой и видим детализацию. Паттерн норм? Вполне себе норм.
....
и получить согласованный снимок.

Нифига не норм. Как минимум метода "refresh" не хватает )))

получаем статическую фигню, которая всегда возврашает старые данные на момент первого логина юзера

данные может и согласованные, но ... "такая фигня получается" ( C )

Я вас умоляю. Никто дополнительную кнопку с Refresh не будет делать. Это и по дизайну и по нагрузке
- ненужная фигня.

Просто я подчеркиваю что SELECT может быть "не так прост...."
16 окт 19, 16:35    [21995720]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
PetroNotC Sharp
Leonid Kudryavtsev,
Этот юзкейс есть в любой системе в принципе.
orm.ПроверитьНаДолги(Имя
orm.ВыдатьКредит(Имя
Между первым и вторым всегда может ситуация измениться.
Это риски и не надо тут блокировать.

Боже упаси. Я и не предлагаю блокировать.

Нормальный SELECT (как в Оракле) вообще никогда и ничего не блокирует.
16 окт 19, 16:36    [21995722]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner,
Вот ты на форуме вроде никому не отвечаешь, не помогаешь.
Пришел с вопросом и хамишь, слова матерные употребляешь.
Прогресса в обучении нет. Свой пост про DI не помним.
То что ТС спрашивает и не огрызается ты не согласен.
Может тебя плохо воспитывали? Или маньяк какой одичавший.



Может ты просто своё внимание переключишь на кого-то другого? Твой бред читать смысла нет - всё мимо.

С воспитанием проблемы у тебя
16 окт 19, 16:44    [21995730]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
пришло осознание, что в хибере просто оптимистическая блокировка, а у Фаулера оптимистическая автономная блокировка.

В хибере она идёт в рамках одной ДБ транзакции, а у Фаулера одна бизнесс транзакция, а БД-шных сколько хочешь
16 окт 19, 16:52    [21995741]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
Просто я подчеркиваю что SELECT может быть "не так прост...."
да. Он не прост.
Тут мы флудим. То усложняем, то пытаемся упростить до мыслей книжки)
16 окт 19, 16:54    [21995744]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
questioner
пришло осознание, что в хибере просто оптимистическая блокировка, а у Фаулера оптимистическая автономная блокировка.

В хибере она идёт в рамках одной ДБ транзакции, а у Фаулера одна бизнесс транзакция, а БД-шных сколько хочешь


Хотя нет....

https://docs.jboss.org/hibernate/orm/6.0/userguide/html_single/Hibernate_User_Guide.html#locking-optimistic
When your application uses long transactions or conversations that span several database transactions, you can store versioning data so that if the same entity is updated by two conversations, the last to commit changes is informed of the conflict, and does not override the other conversation’s work.
16 окт 19, 16:55    [21995746]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Я вообще не понимаю Фаулера здесь. Может его перенести в Программирование или в Проектирование БД

В форуме Java имеет смысол посмотреть с ракурса JDBC/JPA и через призму этих пром-стандартов.
16 окт 19, 16:56    [21995748]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
пришло осознание,
смотрим:
questioner
В хибере она идёт в рамках одной ДБ транзакции

Если расшифруешь "она" тогда посмотрим на твое сознание.
16 окт 19, 16:58    [21995749]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner
Хотя нет....
блин)))))
16 окт 19, 16:59    [21995752]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
Я вообще не понимаю Фаулера здесь. Может его перенести в Программирование или в Проектирование БД

В форуме Java имеет смысол посмотреть с ракурса JDBC/JPA и через призму этих пром-стандартов.
ТС не поймет тебя).
Но я с тобой согласен.
16 окт 19, 17:00    [21995755]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9504
Leonid Kudryavtsev
Если же изменений нет
... дальше можно не теоретизировать, поскольку БД только для чтения - крайне узкий сегмент.
16 окт 19, 17:22    [21995775]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Исключительно ради копи-паста. У меня когнетивный диссонанс
+

chpasha
Leonid Kudryavtsev
Начинает ли команда SELECT новую транзакцию

конечно, ведь ....


Leonid Kudryavtsev
IMHO не все так очевидно


Basil A. Sidorov
Неправильное у вас ИМХО.
Выборка обязана подчиняться общим правилам просто потому.....


Basil A. Sidorov
..."Концепт-гада" не очень с вами согласен....Или хотите предоставить классификацию, в которой оператор select не принадлежит к D(ata)M(anipulation)L(anguage) ?


Basil A. Sidorov
... только select в курсоре PSQL - вообще ни разу не DML и в этом случае надо читать другие разделы документации.


Basil A. Sidorov
... дальше можно не теоретизировать, поскольку БД .... для чтения - крайне узкий сегмент




по поводу SELECT и DML. Тут уже не для флуда, а справедливости ради
+

Интернет
Строго говоря существует пять DML команд

SELECT
INSERT
UPDATE
DELETE
MERGE

На практике профессионалы в области баз данных SELECT обычно не рассматривают как часть DML. Обычно SELECT рассматривается отдельно и это становится понятно когда ....



Ну и напомню, что я и говорил, что INSERT,UPDATE,DELETE транзакцию точно начинает, а вот про SELECT'ом - я не уверен,

И пример 21995440, который IMHO вполне показывает, что в ряде случаев (пусть и редких) Oracle вполне со мной согласен.

Определение "Active Transactions" из того же концепта "An active transaction has started but not yet committed or rolled back"

блок с автономной транзацией, SELECT есть, а "has started" нет

UPDATE, SELECT FOR UPDATE - "has started" есть
SELECT - нет

Практика. Oracle 11g. Автономные транзакции.
16 окт 19, 18:41    [21995808]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Ради справедливости к документации Oracle
Leonid Kudryavtsev
...Мне кажется, есть два разных механизма СУБД...

и тут Oracle Co. вполне со мной согласен

глава N 9 - Data Concurrency and Consistency
глава N 10 - Transactions

если бегло просмотреть главу 10, то ничего про SELECT там нет. Одни сплошные INSERT / UPDATE. Что подразумевают авторы под "executable SQL statement" то лично для меня великая тайна. Судя по всему, некоторые разновидности команды SELECT они не подразумевали.

И да, бегло данную главу перед началом дискуссии я прочитал. Но, повторюсь, в главе Transactions никаких явных слов про SELECT нет.

P.S.
Добавил в автономный блок команду
TRANSACTION NAME 'my_transaction';
как и обещал концепт - транзакция (автономная) началась (ошибка), а вот просто SELECT - нифига )))
16 окт 19, 18:53    [21995812]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
Ради справедливости к Basil A. Sidorov )))

В главе N 9 Data Concurrency and Consistency есть понятие Transaction-Level Read Consistency которое each statement in a transaction sees data from the same point in time, which is the time at which the transaction began.

Но тут у нас уже происходит зацикливание: Командир всегда прав, если командир не прав - смотри пункт 1.

:=)

IMHO
16 окт 19, 18:59    [21995815]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9504
Leonid Kudryavtsev,
"DML оператор select" и "select в PSQL курсоре" - сильно разные вещи, хотя и там и там есть одинаковые буквы.
16 окт 19, 20:16    [21995842]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9504
Leonid Kudryavtsev
В главе N 9 Data Concurrency and Consistency есть понятие Transaction-Level Read Consistency
Транзакция и уровень изоляции транзакции - тоже разные вещи, хотя тоже совпадают некоторые буквы.
16 окт 19, 20:17    [21995844]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
H5N1
Member

Откуда: Yo.! из "Сравнения субд"
Сообщений: 249
Leonid Kudryavtsev
Когда есть UPDATE/DELETE/INSERT мы транзакцию всегда можем "пощупать" т.к. работа механизма N2 вполне себе видна

Если же изменений нет - то транзакция становится чисто призрачным теоретическим термином. Есть она, нет ее.... есть ли ангелы, нет ангелов... сколько их может уместиться на кончике иглы?

наркоманы, прочтите концептс уже. там же три странички.
после set transaction isolation level serializable; первый же селект стартанет транзакцию. и ее замечательно можно пощупать, т.к. все следующие селекты вернут данные на момент старта первого DML, на момент старта первого селекта.
16 окт 19, 20:53    [21995856]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2732
наркоманы все что свзяно с БД ,это удел хибера и ИИ
все что не укладывается в crud =cпроектировано как говно=это слова Джоша Лонга
забудье уже про ващи селекты и хранимые процедуры

кто хочет приходите в питер на joker,чтобы понять насколько вы устарели в рамках современой разработки приложений
я вам вангую вы прозрете насоколько ваши знания устарели
16 окт 19, 21:51    [21995879]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
H5N1,

Для oracle есть ещё два способа.
16 окт 19, 22:15    [21995888]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
H5N1,
Наркоман. Тип изоляции в бд никто не меняет.
Это ты так, для справки сказал что в африке бывают семиголовые чудища.
16 окт 19, 23:21    [21995924]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
H5N1
Member

Откуда: Yo.! из "Сравнения субд"
Сообщений: 249
PetroNotC Sharp
H5N1,
Наркоман. Тип изоляции в бд никто не меняет.
Это ты так, для справки сказал что в африке бывают семиголовые чудища.

это для деревенских, что не слышали, что такое уровень изоляции простой способ взять и убедится что селект это DML и вполне себе стартует транзакцию.
16 окт 19, 23:41    [21995929]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
H5N1,
Плохо когда теретики спорят с практиками.
Одни говорят - транзакция стартует!!!
А другие говорят - что значит стартует, если абсолютно ничего не меняется. Откатить даже нельзя))).
Тут пришел ты и для доказательства предложил изменить НУ (начальные условия).
В общем весело отдыхаем.
16 окт 19, 23:54    [21995938]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9504
PetroNotC Sharp
А другие говорят - что значит стартует, если абсолютно ничего не меняется. Откатить даже нельзя)))
Жили-были три поросёнка: Ниф-Ниф, Нуф-Нуф и Нах-Нах.
Заканчивай, Петро, выделываться.
17 окт 19, 07:03    [21996001]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
Basil A. Sidorov,
Не боись. Я не много)
17 окт 19, 07:09    [21996003]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Варианты получения консистентных селектов.

SQL> set transaction read only;
SQL> select ..... (first select)
SQL> select ..... (second consistent select)
commit;


Еще вариант. С помощью flashback query
(запомиаем текущий scn)
SELECT current_scn FROM V$DATABASE;

SQL> select ..... (first select) as of scn .....
SQL> select ..... (second consistent select) as of scn .....

+ тоже самое через current timestamp.

Можно еще рассмотреть через materialized views (в старых версиях это называлось snapshot) или temporary tables.
17 окт 19, 10:03    [21996113]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton,
Да. Но как говорят фаулеры и им подобные, на сервере это не применяется.
А советуют прменять " read-first — транзакционная стратегия высокого параллелизма".
Это когда сначала все читающие, а потом пишем.
Пишет контейнер в прграммной транзакции.
....
Это не решает конечно твою проблему с двумя select, но зато не тормозит и высокий параллелизм.
17 окт 19, 10:39    [21996165]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton,
То есть ты привел решение от админа и в субд. А фаулер решает не трогая механизмы бд.
17 окт 19, 10:40    [21996171]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Да я и есть бывший админ БД.

А что топик запрещает нам обсуждать механику БД. Кажется мы уже достаточно далеко ушли от Фаулера.
А он - чортов теоретик и говорит как нужно сажать клубнику квадратным способом. Только сам он никогда
в колхозе не был. И не знает сельхоза.
17 окт 19, 10:44    [21996179]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
Да я и есть бывший админ БД.
У меня отличная память. Я знаю конечно.
Просто ты с одной стороны посмотрел, я с другой стороны.
Это здорово смотреть с разных сторон.
17 окт 19, 10:51    [21996199]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton,
То есть по концепции выше, для высокого параллелизма и масштабирования, предлагается вообще вывести чтение ЗА ТРАНЗАКЦИИ.
Компромисс в архитектуре неизбежная вещь (с)
Поэтому то что сутки обсуждаем предлагается вообще не обсуждать и забыть.
17 окт 19, 11:06    [21996236]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Топик не про параллелизм а про блокировки.

Я-бы различал эти понятия хотя-бы чтоб не скатываться в прочие вопросы типа перформанса.
Какой перформанс если оператор "ушла на обед" и оставила открытой форму редактирования
клиента?

Это другая задача.
17 окт 19, 11:12    [21996252]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
Топик не про параллелизм а про блокировки.
тут админы пишут.
"если много транзакций и они длинные, то блокировка на запись переходит на страничную...."
Связь прямая параллелизма и транзакции.
17 окт 19, 11:15    [21996258]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton,
То есть если select пихаем в транзакцию, она будет 5 сек. Если убираем - 5миллисек.
17 окт 19, 11:17    [21996261]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
PetroNotC Sharp
mayton
Топик не про параллелизм а про блокировки.
тут админы пишут.
"если много транзакций и они длинные, то блокировка на запись переходит на страничную...."
Связь прямая параллелизма и транзакции.

Какие админы? С какой DBMS?
17 окт 19, 11:17    [21996262]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
PetroNotC Sharp
mayton,
То есть если select пихаем в транзакцию, она будет 5 сек. Если убираем - 5миллисек.

Покажи макет кода. Я хочу обсуждать предметно.
17 окт 19, 11:18    [21996265]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
Какие админы? С какой DBMS?
с веба. Они не правы что ли?
17 окт 19, 11:18    [21996267]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
PetroNotC Sharp
mayton
Какие админы? С какой DBMS?
с веба. Они не правы что ли?

О оракле нет страниц. Есть сегменты. Экстенты. Блоки. И строки.
17 окт 19, 11:19    [21996271]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9504
mayton
Топик не про параллелизм а про блокировки.
Если, таки, речь про СУБД, то кроме "блокировочников" есть и "версионники". Не серебрянная пуля, но вполне себе рабочее решение.
17 окт 19, 11:25    [21996274]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
PetroNotC Sharp
mayton,
То есть если select пихаем в транзакцию, она будет 5 сек. Если убираем - 5миллисек.

Покажи макет кода. Я хочу обсуждать предметно.
21995717
17 окт 19, 11:25    [21996278]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
PetroNotC Sharp
mayton
пропущено...

Покажи макет кода. Я хочу обсуждать предметно.
21995717

Я не могу это комментировать. Тут нет темы для обсуждения.
17 окт 19, 11:27    [21996283]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Basil A. Sidorov
mayton
Топик не про параллелизм а про блокировки.
Если, таки, речь про СУБД, то кроме "блокировочников" есть и "версионники". Не серебрянная пуля, но вполне себе рабочее решение.

Oracle/Postgres - версионники изначально.

Microsoft SQL получил опцию версионности в каких-то 2000х. Тоесть MS уже можно считать версионником.
Насколько глубоко это реализовано - я ХЗ. Пускай знатоки в топике скажут как оно там внутри.

Насчет других я не знаю. Практически мало использовал. По MySQL сложно сказать. Там - Lego конструктор.
Зависит от всяких engines. Тоесть вопрос сложный пока не увидим как создавалась табличка.
17 окт 19, 11:32    [21996292]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton,
Почему? Первый метод с select 5 сек подымает все долги клиента. Второй пишет.
Но решать тебе.
17 окт 19, 11:32    [21996293]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
Тоесть MS уже можно считать версионником.
нельзя.
17 окт 19, 11:32    [21996294]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
PetroNotC Sharp
mayton,
Почему? Первый метод с select 5 сек подымает все долги клиента. Второй пишет.
Но решать тебе.

Туфта какая-то. Что мы обсуждаем?
17 окт 19, 11:35    [21996298]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
PetroNotC Sharp
mayton
Тоесть MS уже можно считать версионником.
нельзя.

Почему?
17 окт 19, 11:35    [21996301]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Я насетапил такую компарисон табличку для Ora/PG/MS

https://db-engines.com/en/system/Microsoft SQL Server;Oracle;PostgreSQL

Обратите внимание. По версии этого ресурса основные опции такие как ACID/Concurrency/Durability у них одинаковы.
17 окт 19, 11:44    [21996318]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
Microsoft SQL получил опцию версионности в каких-то 2000х.
получение ОПЦИИ доказало что оно теперь версионник?
17 окт 19, 11:46    [21996322]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
PetroNotC Sharp
mayton
Microsoft SQL получил опцию версионности в каких-то 2000х.
получение ОПЦИИ доказало что оно теперь версионник?

Вот статья об MS-2008 которая поясняет некоторые возможности.

https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms187101(v=sql.105)?redirectedfrom=MSDN

Ты зря вышел на тропу войны. Я вовсе не хочу доказывать тезис любой ценой. Я охотно соглашусь если
ты предложишь своё определение версионности.

Поэтому дорогой друг. Закопай свой топор.
17 окт 19, 11:49    [21996333]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton,
Да ну какая тропа)).
Я на третьем посту уже дыхалку потерял и интерес. Уже выдохся)).
Притом, код пример от EE это один код. А от хибера второй и JPA третий.
17 окт 19, 12:09    [21996362]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Как правильно сказал один господин в топике - мы натягиваем сову на глобус.

Может хватит натягивать? Я вообще всегда за конкретику. А тут ее нет.
17 окт 19, 12:14    [21996370]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton
Как правильно сказал один господин в топике - мы натягиваем сову на глобус.
у котрого "седое зрение"?))
Он как всегд прав.
Я бы автора без кода со всеми его топиками отправлял в форум теории.
У нас без кода больше никто так не спрашивает.
17 окт 19, 12:24    [21996390]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
– Взять бы этого Канта, да за такие доказательства года на три в Соловки! – совершенно неожиданно бухнул Иван Николаевич.

17 окт 19, 12:28    [21996396]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
mayton
Как правильно сказал один господин в топике - мы натягиваем сову на глобус.
у котрого "седое зрение"?))
Он как всегд прав.
Я бы автора без кода со всеми его топиками отправлял в форум теории.
У нас без кода больше никто так не спрашивает.

Ты бы ротик прикрыл уже или занял его чем-то другим. В чем толк от твоего присутствия в этом топике? очевидно, что по теме тебе сказать нечего.
17 окт 19, 14:20    [21996562]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
Оооо. Я же говорил что ТС будет против. Он жизнь положил переводя фаулера))).
17 окт 19, 14:38    [21996586]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
Оооо. Я же говорил что ТС будет против. Он жизнь положил переводя фаулера))).


Я ж говорил - в каждой бочке затычка
17 окт 19, 15:21    [21996638]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
questioner,
Ты хочешь топик закрыть? Или тебе 15 лет?
17 окт 19, 15:24    [21996641]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner,
Ты хочешь топик закрыть? Или тебе 15 лет?


На вот послушай - https://music.yandex.ru/album/3254846/track/27216767


P.S. Рот себе лучше закрой
17 окт 19, 15:26    [21996645]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
H5N1
Member

Откуда: Yo.! из "Сравнения субд"
Сообщений: 249
PetroNotC Sharp
тут админы пишут.
"если много транзакций и они длинные, то блокировка на запись переходит на страничную...."
Связь прямая параллелизма и транзакции.


mayton
Туфта какая-то. Что мы обсуждаем?

этот клоун услышал где-то про эскалации блокировок, что присуще некоторым блокировчникам типа mssql, db2, sybase
оракл кажется единственный, кто догадался хранить блокировки как атрибут данных, все остальные хранят списки блокировок в оперативной памяти. ради экономии памяти блокировка может быть сконвертированна в более крупную, типа блокировка целиком страницы или даже таблицы.
17 окт 19, 20:00    [21996904]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton,
а ты говорил топор зарывать))). Ту чуть промешкал и тебя зароют))
H5N1
этот клоун

Давай я тебя буду звать Проктолог.
Ты же узкий специалист по сравнению БД?
Дак вот, проктолог. Твоё уточнение мало коррелирует с темой топика.
Фаулер не рассматривает механизмы СУБД в принципе.
Поэтому в Java сегодня не твой день. Приходи ещё.
17 окт 19, 21:11    [21996942]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8001
H5N1
...типа блокировка целиком страницы....

вроде oracle ровно так и блокирует - целиком блок
17 окт 19, 21:47    [21996959]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Блокировки фиксируются на строчном уровне.

Хотя есть в oracle масса других механик (undo) которые гранулярны на уровне db_blocks.
17 окт 19, 22:31    [21996964]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton,
Ну пускай растет сегмент отката. Сути дела это не меняет.
17 окт 19, 22:44    [21996975]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
H5N1
Member

Откуда: Yo.! из "Сравнения субд"
Сообщений: 249
Leonid Kudryavtsev
H5N1
...типа блокировка целиком страницы....

вроде oracle ровно так и блокирует - целиком блок

пурга

mayton
Хотя есть в oracle масса других механик (undo) которые гранулярны на уровне db_blocks.

мудрый оракл накладывает версионность не на строки, а целиком на весь блок, что позволяет воротить тучи оптимизаций при записи + получать версионность автоматом хоть на bjson. но к чему это ?
18 окт 19, 00:04    [21996994]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Мы не можем обсуждать оптимистик транзакции и блокировки в вакууме. Все равно вопрос скатывается к СУБД. Траблшутинг требует.

Хотя есть люди которые считают что на уровне JPA и Хибернейт можно порешать все бизнесовые проблемы.
18 окт 19, 07:35    [21997031]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2481
mayton,
Ну почему. В рамках топика автору ответили давно.
И фаулер квадратик нарисовал это метод старт транзакции в драйвер бд. Глубже драйвера можно не опускаться.
А драйвер просто передал команду.
...
Субд кто хочет, тот и обсуждает сам по себе. Кому скучно)
18 окт 19, 08:10    [21997051]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
questioner
Member

Откуда:
Сообщений: 1865
Обсуждение БД тут реально не нужно. Кто бы объяснил, что имел ввиду Фаулер в цитате, что приведена в первом сообщении...
18 окт 19, 11:39    [21997256]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Пушкин
А народ то над ним насмеялся: "Поделом тебе, старый невежа! Впредь тебе, невежа, наука: не садится не в свои сани!"
18 окт 19, 11:42    [21997260]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7      [все]
Все форумы / Java Ответить