powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
156 сообщений из 156, показаны все 7 страниц
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876180
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Читаю главу книги Фаулера про автоматическую автономую блокировку и там такая фраза написана:

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

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

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

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

ALL и DIRTY тоже понимаю
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876182
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
questioner про автоматическую автономую блокировку


про оптимистическую автономную блокировку
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876191
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Скрин давай.
Ну или включай поток своих деревенских ругательств. Как без этого.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876200
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
Ну или включай поток своих деревенских ругательств. Как без этого.
шта?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876207
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
Скрин давай.


...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876212
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerPetroNotC Sharpquestioner,
Ну или включай поток своих деревенских ругательств. Как без этого.
шта? 21991298
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876214
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876223
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,
Двоечник, и права качает).
Понятие системная транзакция выучил?
Кто начинает, время продолжения?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876227
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Дак вот, двоечник.
Системная транзакция begin в субд намного меньше бизнес транзакции.
Ну или равны. Поэтому блокировку в виде номера версии можно взять в любой момент но в пределах системной физической сервера.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876228
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне особенно вырезанный кусок понравился. Все поставили с ног на голову. Или автор или переводчики постарались.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876230
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
Дак вот, двоечник.
Системная транзакция begin в субд намного меньше бизнес транзакции.
Ну или равны. Поэтому блокировку в виде номера версии можно взять в любой момент но в пределах системной физической сервера. это я всё знаю. Научись читать вопрос.
Фаулер Таким образом , чтобы выполнение бизнес-транзакции не привело к утрате изменений или несогласованности данных, стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции.

Каким таким образом ?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876231
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Да. Телега впереди лошади).
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876234
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerНаучись читать вопрос.четвертый топик тебя все без скрина не понимают).
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876235
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично я так понимаю данный отрывок: "меняем писсимистическую блокировку на оптимистическую" и тут же прилетает фея и чудесным образом и "конфиликты крайне редки" и "могут работать несколько пользователей". Что же раньше мешало нескольким пользователям работать одновременно - совершенно не понятно.

Оптимистическая блокировка прямо как статья 209 УК РСФСР от 1961 года (Об усилении борьбы с лицами, уклоняющимися от общественно-полезного труда и ведущими паразитический образ жизни) - все тут же начинают работать ! и при этом одновременно !
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876236
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevМне особенно вырезанный кусок понравился. Все поставили с ног на голову. Или автор или переводчики постарались.

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

При оптимистической - ничего не лочим. Просто в конце проверяем на всякий случай, что ничего не поменялось. Если что-то поменялось - выдаём ошибку. Ошибка должна быть редкой, чтобы юзера сильно не бесить. Параллельность может быть достигнута если мы допустим не по версии проверяем, а по какому-то ограниченному набору полей
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876237
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerКаким таким образом ?изменили 4 записи.
Значит К КАЖДОЙ ИЗ ЧЕТЫРЕХ нужно номер версии применять.
Сложно?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876238
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerНаучись читать вопрос.четвертый топик тебя все без скрина не понимают).

Ты не понимаешь) цитата Фаулера в первом же сообщении есть.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876239
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerДа вроде тут то всё верно как раз.
прямо как в анегдоте:

Устраивается секретарша на работу. директор спрашивает:
- Какая у вас скорость печати?
- 1000 знаков в минуту!
- Так много???
- Правда такая ерунда получается...
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876240
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerТы не понимаешь)у тебя и память девичья.
Кто скрины то первый просил?
))))
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876241
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перефразирую анакдот по Фаулеру. При использование данной формулировки в вопросах по ЕГЭ ссылка и гонорар автору обязателен

- Может ли с одной записью при оптимистической блокировке работать 1000 пользователей?
- Конечно могут!..... только такая ерунда получается....
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876242
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerТы не понимаешь)у тебя и память девичья.
Кто скрины то первый просил?
))))
21994048
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876243
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerОшибка должна быть редкой, чтобы юзера сильно не бесить .
Записывай:
Оптимистическую применяют в публичных веб проектах.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876244
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Скрины просили мемберы ещё в прошлых твоих топиках.
))
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876245
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerКаким таким образом ?изменили 4 записи.
Значит К КАЖДОЙ ИЗ ЧЕТЫРЕХ нужно номер версии применять.
Сложно?
вот эта фраза тогда что значит?

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

и зачем она вообще тут
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876246
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
Скрины просили мемберы ещё в прошлых твоих топиках.
))
и?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876247
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevПерефразирую анакдот по Фаулеру. При использование данной формулировки в вопросах по ЕГЭ ссылка и гонорар автору обязателен

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

ну там логика в том, что если мы не предполагаем дофига параллельных изменений, то не будем и блокировать. Если изредка будут накладываться результаты, то ошибку юзеру покажем и ладно.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876250
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerPetroNotC Sharpquestioner,
Скрины просили мемберы ещё в прошлых твоих топиках.
))
и?ох тугой ты.
Не я один просил у тебя скрины.
В тебе проблема.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876252
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerвот эта фраза тогда что значит?
Русский язык - "в любое время но в пределах завтрака".
)))
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876253
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestionerпропущено...

и?ох тугой ты.
Не я один просил у тебя скрины.
В тебе проблема.
по-моему тугой тут ты. Тебе в первом посте дали цитату из книги и вопрос именно по этой цитате.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876254
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Переверни страницу фаулера.
Работай дальше.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876255
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO
В топку всю эту теорию и теоретиков. Фаулера отправить туда же, где уже Каутский с Троцким.

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

PetroNotC Sharpquestionerвот эта фраза тогда что значит?
Русский язык - "в любое время но в пределах завтрака".
)))
+++
мне этот отрывок кажется выдернутым из контекста
особенно мысль "про каждую запись"
такое ощущение, что переводчик (или редактор) пару абзацев из текста просто выкинул
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876256
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestionerвот эта фраза тогда что значит?
Русский язык - "в любое время но в пределах завтрака".
)))

а применена что значит? когда считали или когда update .... where version=42 .... ?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876258
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фаулер в пересказе меня:

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

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

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

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

:=)
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876259
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
))
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876260
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevФаулер в пересказе меня:

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

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

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

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

:=)

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

ФаулерОптимистическая автономная блокировка может быть применена в любое время, однако срок её действия ограничивается системной транзакцией, в процессе которой она была установлена. Таким образом, чтобы выполнение бизнес-транзакции не привело к утрате изменений или несогласованности данных, стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876261
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerа применена что значит? когда считали или когда update .... where version=42 .... ?монопесуально
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876262
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фаулерв процессе

тут же автор имеет ввиду During ?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876264
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerА вот этот текст целиком можно в твоём переводе?нельзя. Тебе на лексемы надо. Целиком нельзя. Кусаться начинаешь).
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876267
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerА вот этот текст целиком можно в твоём переводе?нельзя. Тебе на лексемы надо. Целиком нельзя. Кусаться начинаешь).

Тебя не спрашивали - выйди.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876268
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerА вот этот текст целиком можно в твоём переводе?

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

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


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

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

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

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

Т.ч. возможно во фразе из книжки изначально были и какие-то другие слова, которые просто были выкинуты редактором или переводчиком.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876277
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

Системная транзакция это в БД которая.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876312
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerТебя не спрашивали - выйди.
"Все занятия у него проходили однаково - Вовочка матерился учетилям." (с)
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876523
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerТебя не спрашивали - выйди.
"Все занятия у него проходили однаково - Вовочка матерился учетилям." (с)

Ты себя что ли учителем назвал? не рановато тебе?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876547
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
А чем прошлый топик закончился?
Вспоминай.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876564
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
А чем прошлый топик закончился?
Вспоминай.

ничем?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876567
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerPetroNotC Sharpquestioner,
А чем прошлый топик закончился?
Вспоминай.

ничем?садись опять двойка.
Делай следующий скрин.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876576
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestionerпропущено...


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

Уймись, учитель недоделанный
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876578
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
"Других учителей в стране нет вовочка" (с)
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876686
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerСистемная транзакция это в БД которая.
Совершенно полный бред.

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

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

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

IMHO
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876692
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, иногда, в некоторых базах данных и существуют команды START TRANSACTION.... END TRANSACTION но, обычно. транзакции в СУБД начинаются неявно, при первой DML команде (или первой блокировке?) и до COMMIT'а/ROLBACK'а.

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

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

IMHO & AFAIK
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876694
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и опять таки, к "времени жизни" оптимистической блокировке это отношения имеет чуть меньше, чем никакого

Т.к. никто не мешает мне кэшировать объекты СУБД полученные SELECT'ом хоть со времен царя гороха, хоть со времен позапрошлого включения сервера СУБД, хоть еще более ранних времен. Хранить их версию, обрабатывать, а проверять/инвалидировать кэшь только в момент конфликтов. Такая себе оптимистично-при-оптимистичная блокировка. И, ровно для этого, оптимистичная блокировка и придумана IMHO. Да и называется так же - "оптимистичная". Храним старые-престарые данные и оптимистично надеемся, что они хорошие.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876698
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНачинает ли команда SELECT новую транзакцию
конечно, ведь уровень изоляции стартуемой транзакции определяет какие данные этот select увидит, разве нет?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876699
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevСУБД начинаются неявнода. И боюсь фаулер в такие тонкости не опускается.
Его задача - концепция)
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876702
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaLeonid KudryavtsevНачинает ли команда SELECT новую транзакцию
конечно, ведь уровень изоляции стартуемой транзакции определяет какие данные этот select увидит, разве нет?
"не все так очевидно" ( C ) дочь офицера

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

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

IMHO
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876703
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Совершенно верно. Select не особо волнует разработчика. А вот модификация таблы в середине кода будет закоммичена и уже ее не откатить.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876735
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
"Других учителей в стране нет вовочка" (с)

C такими петучителями суп не сваришь. Так - тролли, последние
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876736
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpLeonid KudryavtsevСУБД начинаются неявнода. И боюсь фаулер в такие тонкости не опускается.
Его задача - концепция)

вообще волнуют. Он даже их рисует на картинке
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876739
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevquestionerСистемная транзакция это в БД которая.
Совершенно полный бред.

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

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

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

IMHO


В книге ЯВНО говорится, что бизнес-транзакция может охватывать несколько системных транзакций.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876744
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876748
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оптимистическая блокировка НИКАК со временим жизни транзакции СУБД НЕ связана.

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

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

IMHO
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876749
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
что на картинке фаулера хорошо и видно
"Извлечь данные" и "записать" у него в разных квадратиках
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876751
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читаем исходную фразу из книжки
Оптимистическая автономная блокировка может быть применена в любое время, однако срок её действия ограничивается системной транзакцией, в процессе которой она была установлена.
смотрим на картинку из той же книжки......

Классика - По какому делу вы пришли ко мне? Говорите как можно скорее, я сейчас иду обедать.
- Мы, управление дома, - с ненавистью заговорил Швондер, - пришли к вам после общего собрания жильцов нашего дома, на котором стоял вопрос об уплотнении квартир дома...
- Кто на ком стоял? - крикнул Филипп Филиппович, - потрудитесь излагать ваши мысли яснее.
- Вопрос стоял об уплотнении.
- Довольно! Я понял!
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876758
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пересказ Фаулера в изложении меня любимого



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

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

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

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


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

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

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

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

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

Ну дык в пунктире это системная транзакция (она ж БД шная)
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876775
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevДля SELECT'а ничего фиксировать и/или откатывать не нужно. Т.е. ровно такое же "время жизни транзакции", как и "время жизни оптимистической блокировки". Странное время жизни того, чего физически нет.
IMHOНеправильное у вас ИМХО.
Выборка обязана подчиняться общим правилам просто потому, что транзакция - механизм обеспечения атомарности и целостности.
"Грязное чтение" оставим на совести тех СУБД, где оно есть.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876915
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Вот ты на форуме вроде никому не отвечаешь, не помогаешь.
Пришел с вопросом и хамишь, слова матерные употребляешь.
Прогресса в обучении нет. Свой пост про DI не помним.
То что ТС спрашивает и не огрызается ты не согласен.
Может тебя плохо воспитывали? Или маньяк какой одичавший.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876920
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Упс. Топик уже чистят. Не отвлекайся от темы ТС.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876957
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, попался
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876962
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonPetroNotC Sharp, попался
хоть и не знаю за что но готов выслать вискарь в твою коллекцию)
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39876975
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока не стоит. Я на таблЭтках.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877044
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продолжаю обсуждение в стиле "сколько ангелов может уместиться на острие иглы"
в общем-то - это глубоко пофиг, чисто ради флуда
Basil A. SidorovLeonid KudryavtsevДля SELECT'а ничего фиксировать и/или откатывать не нужно. Т.е. ровно такое же "время жизни транзакции", как и "время жизни оптимистической блокировки". Странное время жизни того, чего физически нет.
IMHOНеправильное у вас ИМХО.
Выборка обязана подчиняться общим правилам просто потому, что транзакция - механизм обеспечения атомарности и целостности.
"Грязное чтение" оставим на совести тех СУБД, где оно есть.

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

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

"-а что же есть?
-а ничего и нет, все только видимость" ( C ) сказка о говнокуре и Будде
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877045
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжая бредить дальше, то про SELECT можно выдвинуть три утверждения. (больше придумать не смог)
1. SELECT - ТОЧНО начинает транзакцию
2. SELECT - точно НЕ начинает транзакцию
3. SELECT - НЕ точно начинает транзакцию

Мое первоначальное высказывание:
Leonid KudryavtsevНачинает ли команда SELECT новую транзакцию, точно не уверен.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877053
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаем маленький тест на Oracle 11g и видим.... что select совершенно НЕ точно начинает новую транзакцию. Есть ли транзакция, нет ли транзакции - то нам совершенно НЕ точно и совершенно НЕ ведомо


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
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;
/





Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
-- Транзакция ТОЧНО началась
-- Транзакция ТОЧНО закончилась
-- ошибки нет
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;
/



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
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
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877078
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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)?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877092
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа. Вы зря спорите.
Фаулер не рассматривает транзакцию в базе на уровне оператора select.
Он рассматривает уровень Единица работы с базой (квадратик).
Что физически происходит в субд его не волнует.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877112
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык как раз до этого посмотрел и перечитал доку по Oracle. Но там формулировки ровно такие же, как у Фаулера

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

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

p.s. тест кейс, когда SELECT есть, а начала транзакции (автономной) как бы и нет - привел. UPDATE (не меняющий никаких записей) и SELECT ... FOR UPDATE начинают "active autonomous transaction", а вот SELECT просто - ноль эффекта
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877113
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev, я-бы вместе с SELECT рассмотрел изоляцию. Это способность
видеть или не видеть dirty, фантомы и прочие штуки которые идут еще с эпохи
файловых БД.

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

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

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

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

Но как рассматривать сферическую DBMS и ее режимы изоляции - я не знаю.
Скорее всего - никак.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877117
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpГоспода. Вы зря спорите.
вот лично я, ни сколько не спорю
исключительно ради флуда )))
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877124
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
)))
Поддерживаю флуд _осознанный_.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877129
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

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

в общем, как и весь этот топик изначально
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877154
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevp.s. тест кейс, когда SELECT есть, а начала транзакции (автономной) как бы и нет - привел.... только select в курсоре PSQL - вообще ни разу не DML и в этом случае надо читать другие разделы документации.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877161
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonя-бы .... рассмотрел изоляцию. Это способность видеть или не видеть....

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

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

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

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

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

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

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

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

IMHO на правах бреда
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877163
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжим бредить дальше. Чисто теоретически.

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


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

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

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

Такая вот аналогия :=) на правах бреда
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877168
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevтеоретики явно разделяют "конец" и "начало".+активная, вложенная, автономная)) распеределенная.
В хибере упрощаем. Транзакция на запрос (вызов метода begin) и остальное за скобками темы.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877172
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevmaytonя-бы .... рассмотрел изоляцию. Это способность видеть или не видеть....

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

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

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

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

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

По SELECT

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

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

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

Или мы просто делаем 2 независимых селекта и получаем теоретически разные сеты атрибутов клиента.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877180
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭто две операции select. Но между этими операциями база могла изменятся.так же как и посты на sql.ru.
Ничего страшного. Если учитывать в коде.
Это асинхронность, в принципе.
С ней сложнее писать как и с микросервисами.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877183
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТогда мы должны соотв зафиксировать режим транзакций и получить согласованный снимок.

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

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

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

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

данные может и согласованные, но ... "такая фигня получается" ( C )
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877192
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Этот юзкейс есть в любой системе в принципе.
orm.ПроверитьНаДолги(Имя
orm.ВыдатьКредит(Имя
Между первым и вторым всегда может ситуация измениться.
Это риски и не надо тут блокировать.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877195
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevmaytonВы написали микро-сервис который возвращает инфу по клиенту.
Двумя методами. getBrief(clientId), getFull(clientId). Грубо говоря смотрим в виджет который показывает
краткую сводку. А потом кликаем мышкой и видим детализацию. Паттерн норм? Вполне себе норм.
....
и получить согласованный снимок.

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

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

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

Просто я подчеркиваю что SELECT может быть "не так прост...."
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877197
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpLeonid Kudryavtsev,
Этот юзкейс есть в любой системе в принципе.
orm.ПроверитьНаДолги(Имя
orm.ВыдатьКредит(Имя
Между первым и вторым всегда может ситуация измениться.
Это риски и не надо тут блокировать.
Боже упаси. Я и не предлагаю блокировать.

Нормальный SELECT (как в Оракле) вообще никогда и ничего не блокирует.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877204
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
Вот ты на форуме вроде никому не отвечаешь, не помогаешь.
Пришел с вопросом и хамишь, слова матерные употребляешь.
Прогресса в обучении нет. Свой пост про DI не помним.
То что ТС спрашивает и не огрызается ты не согласен.
Может тебя плохо воспитывали? Или маньяк какой одичавший.


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

С воспитанием проблемы у тебя
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877210
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пришло осознание, что в хибере просто оптимистическая блокировка, а у Фаулера оптимистическая автономная блокировка.

В хибере она идёт в рамках одной ДБ транзакции, а у Фаулера одна бизнесс транзакция, а БД-шных сколько хочешь
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877213
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПросто я подчеркиваю что SELECT может быть "не так прост...."да. Он не прост.
Тут мы флудим. То усложняем, то пытаемся упростить до мыслей книжки)
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877215
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877216
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вообще не понимаю Фаулера здесь. Может его перенести в Программирование или в Проектирование БД

В форуме Java имеет смысол посмотреть с ракурса JDBC/JPA и через призму этих пром-стандартов.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877217
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerпришло осознание,смотрим:
questionerВ хибере она идёт в рамках одной ДБ транзакции
Если расшифруешь "она" тогда посмотрим на твое сознание.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877218
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerХотя нет....блин)))))
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877220
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ вообще не понимаю Фаулера здесь. Может его перенести в Программирование или в Проектирование БД

В форуме Java имеет смысол посмотреть с ракурса JDBC/JPA и через призму этих пром-стандартов.ТС не поймет тебя).
Но я с тобой согласен.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877235
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevЕсли же изменений нет... дальше можно не теоретизировать, поскольку БД только для чтения - крайне узкий сегмент.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877259
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исключительно ради копи-паста. У меня когнетивный диссонанс

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

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

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


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. Автономные транзакции.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877262
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ради справедливости к документации 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 - нифига )))
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877264
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ради справедливости к 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
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877282
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
"DML оператор select" и "select в PSQL курсоре" - сильно разные вещи, хотя и там и там есть одинаковые буквы.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877284
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВ главе N 9 Data Concurrency and Consistency есть понятие Transaction-Level Read ConsistencyТранзакция и уровень изоляции транзакции - тоже разные вещи, хотя тоже совпадают некоторые буквы.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877295
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevКогда есть UPDATE/DELETE/INSERT мы транзакцию всегда можем "пощупать" т.к. работа механизма N2 вполне себе видна

Если же изменений нет - то транзакция становится чисто призрачным теоретическим термином. Есть она, нет ее.... есть ли ангелы, нет ангелов... сколько их может уместиться на кончике иглы?
наркоманы, прочтите концептс уже. там же три странички.
после set transaction isolation level serializable; первый же селект стартанет транзакцию. и ее замечательно можно пощупать, т.к. все следующие селекты вернут данные на момент старта первого DML, на момент старта первого селекта.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877311
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наркоманы все что свзяно с БД ,это удел хибера и ИИ
все что не укладывается в crud =cпроектировано как говно=это слова Джоша Лонга
забудье уже про ващи селекты и хранимые процедуры

кто хочет приходите в питер на joker,чтобы понять насколько вы устарели в рамках современой разработки приложений
я вам вангую вы прозрете насоколько ваши знания устарели
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877316
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1,

Для oracle есть ещё два способа.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877327
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1,
Наркоман. Тип изоляции в бд никто не меняет.
Это ты так, для справки сказал что в африке бывают семиголовые чудища.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877330
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpH5N1,
Наркоман. Тип изоляции в бд никто не меняет.
Это ты так, для справки сказал что в африке бывают семиголовые чудища.
это для деревенских, что не слышали, что такое уровень изоляции простой способ взять и убедится что селект это DML и вполне себе стартует транзакцию.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877338
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1,
Плохо когда теретики спорят с практиками.
Одни говорят - транзакция стартует!!!
А другие говорят - что значит стартует, если абсолютно ничего не меняется. Откатить даже нельзя))).
Тут пришел ты и для доказательства предложил изменить НУ (начальные условия).
В общем весело отдыхаем.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877397
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpА другие говорят - что значит стартует, если абсолютно ничего не меняется. Откатить даже нельзя)))Жили-были три поросёнка: Ниф-Ниф, Нуф-Нуф и Нах-Нах.
Заканчивай, Петро, выделываться.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877398
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Не боись. Я не много)
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877449
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варианты получения консистентных селектов.

Код: plsql
1.
2.
3.
4.
SQL> set transaction read only;
SQL> select ..... (first select)
SQL> select ..... (second consistent select)
commit;



Еще вариант. С помощью flashback query
Код: plsql
1.
2.
3.
4.
5.
(запомиаем текущий 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.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877479
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Да. Но как говорят фаулеры и им подобные, на сервере это не применяется.
А советуют прменять " read-first — транзакционная стратегия высокого параллелизма".
Это когда сначала все читающие, а потом пишем.
Пишет контейнер в прграммной транзакции.
....
Это не решает конечно твою проблему с двумя select, но зато не тормозит и высокий параллелизм.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877482
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
То есть ты привел решение от админа и в субд. А фаулер решает не трогая механизмы бд.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877486
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я и есть бывший админ БД.

А что топик запрещает нам обсуждать механику БД. Кажется мы уже достаточно далеко ушли от Фаулера.
А он - чортов теоретик и говорит как нужно сажать клубнику квадратным способом. Только сам он никогда
в колхозе не был. И не знает сельхоза.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877497
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДа я и есть бывший админ БД.У меня отличная память. Я знаю конечно.
Просто ты с одной стороны посмотрел, я с другой стороны.
Это здорово смотреть с разных сторон.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877515
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
То есть по концепции выше, для высокого параллелизма и масштабирования, предлагается вообще вывести чтение ЗА ТРАНЗАКЦИИ.
Компромисс в архитектуре неизбежная вещь (с)
Поэтому то что сутки обсуждаем предлагается вообще не обсуждать и забыть.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877527
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Топик не про параллелизм а про блокировки.

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

Это другая задача.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877531
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТопик не про параллелизм а про блокировки.тут админы пишут.
"если много транзакций и они длинные, то блокировка на запись переходит на страничную...."
Связь прямая параллелизма и транзакции.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877534
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
То есть если select пихаем в транзакцию, она будет 5 сек. Если убираем - 5миллисек.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877535
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpmaytonТопик не про параллелизм а про блокировки.тут админы пишут.
"если много транзакций и они длинные, то блокировка на запись переходит на страничную...."
Связь прямая параллелизма и транзакции.
Какие админы? С какой DBMS?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877537
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpmayton,
То есть если select пихаем в транзакцию, она будет 5 сек. Если убираем - 5миллисек.
Покажи макет кода. Я хочу обсуждать предметно.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877539
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКакие админы? С какой DBMS?с веба. Они не правы что ли?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877541
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpmaytonКакие админы? С какой DBMS?с веба. Они не правы что ли?
О оракле нет страниц. Есть сегменты. Экстенты. Блоки. И строки.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877543
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТопик не про параллелизм а про блокировки.Если, таки, речь про СУБД, то кроме "блокировочников" есть и "версионники". Не серебрянная пуля, но вполне себе рабочее решение.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877546
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonPetroNotC Sharpmayton,
То есть если select пихаем в транзакцию, она будет 5 сек. Если убираем - 5миллисек.
Покажи макет кода. Я хочу обсуждать предметно. 21995717
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877550
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpmaytonпропущено...

Покажи макет кода. Я хочу обсуждать предметно. 21995717
Я не могу это комментировать. Тут нет темы для обсуждения.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877555
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovmaytonТопик не про параллелизм а про блокировки.Если, таки, речь про СУБД, то кроме "блокировочников" есть и "версионники". Не серебрянная пуля, но вполне себе рабочее решение.
Oracle/Postgres - версионники изначально.

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

Насчет других я не знаю. Практически мало использовал. По MySQL сложно сказать. Там - Lego конструктор.
Зависит от всяких engines. Тоесть вопрос сложный пока не увидим как создавалась табличка.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877556
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Почему? Первый метод с select 5 сек подымает все долги клиента. Второй пишет.
Но решать тебе.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877557
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТоесть MS уже можно считать версионником.нельзя.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877559
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpmayton,
Почему? Первый метод с select 5 сек подымает все долги клиента. Второй пишет.
Но решать тебе.
Туфта какая-то. Что мы обсуждаем?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877561
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpmaytonТоесть MS уже можно считать версионником.нельзя.
Почему?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877569
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я насетапил такую компарисон табличку для Ora/PG/MS

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

Обратите внимание. По версии этого ресурса основные опции такие как ACID/Concurrency/Durability у них одинаковы.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877572
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonMicrosoft SQL получил опцию версионности в каких-то 2000х.получение ОПЦИИ доказало что оно теперь версионник?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877578
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpmaytonMicrosoft SQL получил опцию версионности в каких-то 2000х.получение ОПЦИИ доказало что оно теперь версионник?
Вот статья об MS-2008 которая поясняет некоторые возможности.

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

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

Поэтому дорогой друг. Закопай свой топор.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877592
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Да ну какая тропа)).
Я на третьем посту уже дыхалку потерял и интерес. Уже выдохся)).
Притом, код пример от EE это один код. А от хибера второй и JPA третий.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877599
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно сказал один господин в топике - мы натягиваем сову на глобус.

Может хватит натягивать? Я вообще всегда за конкретику. А тут ее нет.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877614
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКак правильно сказал один господин в топике - мы натягиваем сову на глобус.у котрого "седое зрение"?))
Он как всегд прав.
Я бы автора без кода со всеми его топиками отправлял в форум теории.
У нас без кода больше никто так не спрашивает.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877619
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
– Взять бы этого Канта, да за такие доказательства года на три в Соловки! – совершенно неожиданно бухнул Иван Николаевич.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877715
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpmaytonКак правильно сказал один господин в топике - мы натягиваем сову на глобус.у котрого "седое зрение"?))
Он как всегд прав.
Я бы автора без кода со всеми его топиками отправлял в форум теории.
У нас без кода больше никто так не спрашивает.
Ты бы ротик прикрыл уже или занял его чем-то другим. В чем толк от твоего присутствия в этом топике? очевидно, что по теме тебе сказать нечего.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877724
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оооо. Я же говорил что ТС будет против. Он жизнь положил переводя фаулера))).
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877754
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpОооо. Я же говорил что ТС будет против. Он жизнь положил переводя фаулера))).

Я ж говорил - в каждой бочке затычка
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877755
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Ты хочешь топик закрыть? Или тебе 15 лет?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877758
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
Ты хочешь топик закрыть? Или тебе 15 лет?

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


P.S. Рот себе лучше закрой
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877893
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpтут админы пишут.
"если много транзакций и они длинные, то блокировка на запись переходит на страничную...."
Связь прямая параллелизма и транзакции.

maytonТуфта какая-то. Что мы обсуждаем?
этот клоун услышал где-то про эскалации блокировок, что присуще некоторым блокировчникам типа mssql, db2, sybase
оракл кажется единственный, кто догадался хранить блокировки как атрибут данных, все остальные хранят списки блокировок в оперативной памяти. ради экономии памяти блокировка может быть сконвертированна в более крупную, типа блокировка целиком страницы или даже таблицы.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877918
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
а ты говорил топор зарывать))). Ту чуть промешкал и тебя зароют))
H5N1этот клоун
Давай я тебя буду звать Проктолог.
Ты же узкий специалист по сравнению БД?
Дак вот, проктолог. Твоё уточнение мало коррелирует с темой топика.
Фаулер не рассматривает механизмы СУБД в принципе.
Поэтому в Java сегодня не твой день. Приходи ещё.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877933
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1...типа блокировка целиком страницы....
вроде oracle ровно так и блокирует - целиком блок
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877938
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блокировки фиксируются на строчном уровне.

Хотя есть в oracle масса других механик (undo) которые гранулярны на уровне db_blocks.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877948
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ну пускай растет сегмент отката. Сути дела это не меняет.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877959
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevH5N1...типа блокировка целиком страницы....
вроде oracle ровно так и блокирует - целиком блок
пурга

maytonХотя есть в oracle масса других механик (undo) которые гранулярны на уровне db_blocks.
мудрый оракл накладывает версионность не на строки, а целиком на весь блок, что позволяет воротить тучи оптимизаций при записи + получать версионность автоматом хоть на bjson. но к чему это ?
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877985
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы не можем обсуждать оптимистик транзакции и блокировки в вакууме. Все равно вопрос скатывается к СУБД. Траблшутинг требует.

Хотя есть люди которые считают что на уровне JPA и Хибернейт можно порешать все бизнесовые проблемы.
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39877999
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ну почему. В рамках топика автору ответили давно.
И фаулер квадратик нарисовал это метод старт транзакции в драйвер бд. Глубже драйвера можно не опускаться.
А драйвер просто передал команду.
...
Субд кто хочет, тот и обсуждает сам по себе. Кому скучно)
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39878142
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обсуждение БД тут реально не нужно. Кто бы объяснил, что имел ввиду Фаулер в цитате, что приведена в первом сообщении...
...
Рейтинг: 0 / 0
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
    #39878145
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПушкинА народ то над ним насмеялся: "Поделом тебе, старый невежа! Впредь тебе, невежа, наука: не садится не в свои сани!"
...
Рейтинг: 0 / 0
156 сообщений из 156, показаны все 7 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]