|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Читаю главу книги Фаулера про автоматическую автономую блокировку и там такая фраза написана: ФаулерОптимистическая автономная блокировка может быть применена в любое время, однако срок её действия ограничивается системной транзакцией, в процессе которой она была установлена. Таким образом, чтобы выполнение бизнес-транзакции не привело к утрате изменений или несогласованности данных, стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции. Что хотел сказать автор? Какая-то непонятная причинно-следственная связь P.S. про @Version в хибернейт наслышан. Вот это читал: https://docs.jboss.org/hibernate/orm/6.0/userguide/html_single/Hibernate_User_Guide.html#locking-optimistic ALL и DIRTY тоже понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 18:53 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questioner про автоматическую автономую блокировку про оптимистическую автономную блокировку ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 18:55 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questioner, Скрин давай. Ну или включай поток своих деревенских ругательств. Как без этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 19:21 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, Ну или включай поток своих деревенских ругательств. Как без этого. шта? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 19:29 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 19:33 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerPetroNotC Sharpquestioner, Ну или включай поток своих деревенских ругательств. Как без этого. шта? 21991298 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 19:41 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestionerпропущено... шта? 21991298 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1317868&msg=21991299 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 19:42 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Двоечник, и права качает). Понятие системная транзакция выучил? Кто начинает, время продолжения? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 19:51 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questioner, Дак вот, двоечник. Системная транзакция begin в субд намного меньше бизнес транзакции. Ну или равны. Поэтому блокировку в виде номера версии можно взять в любой момент но в пределах системной физической сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 19:58 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Мне особенно вырезанный кусок понравился. Все поставили с ног на голову. Или автор или переводчики постарались. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:01 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, Дак вот, двоечник. Системная транзакция begin в субд намного меньше бизнес транзакции. Ну или равны. Поэтому блокировку в виде номера версии можно взять в любой момент но в пределах системной физической сервера. это я всё знаю. Научись читать вопрос. Фаулер Таким образом , чтобы выполнение бизнес-транзакции не привело к утрате изменений или несогласованности данных, стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции. Каким таким образом ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:01 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Да. Телега впереди лошади). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:03 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerНаучись читать вопрос.четвертый топик тебя все без скрина не понимают). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:04 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Лично я так понимаю данный отрывок: "меняем писсимистическую блокировку на оптимистическую" и тут же прилетает фея и чудесным образом и "конфиликты крайне редки" и "могут работать несколько пользователей". Что же раньше мешало нескольким пользователям работать одновременно - совершенно не понятно. Оптимистическая блокировка прямо как статья 209 УК РСФСР от 1961 года (Об усилении борьбы с лицами, уклоняющимися от общественно-полезного труда и ведущими паразитический образ жизни) - все тут же начинают работать ! и при этом одновременно ! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:07 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevМне особенно вырезанный кусок понравился. Все поставили с ног на голову. Или автор или переводчики постарались. Да вроде тут то всё верно как раз. При оптимистической - ничего не лочим. Просто в конце проверяем на всякий случай, что ничего не поменялось. Если что-то поменялось - выдаём ошибку. Ошибка должна быть редкой, чтобы юзера сильно не бесить. Параллельность может быть достигнута если мы допустим не по версии проверяем, а по какому-то ограниченному набору полей ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:08 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerКаким таким образом ?изменили 4 записи. Значит К КАЖДОЙ ИЗ ЧЕТЫРЕХ нужно номер версии применять. Сложно? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:08 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpquestionerНаучись читать вопрос.четвертый топик тебя все без скрина не понимают). Ты не понимаешь) цитата Фаулера в первом же сообщении есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:09 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerДа вроде тут то всё верно как раз. прямо как в анегдоте: Устраивается секретарша на работу. директор спрашивает: - Какая у вас скорость печати? - 1000 знаков в минуту! - Так много??? - Правда такая ерунда получается... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:10 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerТы не понимаешь)у тебя и память девичья. Кто скрины то первый просил? )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:11 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Перефразирую анакдот по Фаулеру. При использование данной формулировки в вопросах по ЕГЭ ссылка и гонорар автору обязателен - Может ли с одной записью при оптимистической блокировке работать 1000 пользователей? - Конечно могут!..... только такая ерунда получается.... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:13 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpquestionerТы не понимаешь)у тебя и память девичья. Кто скрины то первый просил? )))) 21994048 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:13 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerОшибка должна быть редкой, чтобы юзера сильно не бесить . Записывай: Оптимистическую применяют в публичных веб проектах. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:14 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questioner, Скрины просили мемберы ещё в прошлых твоих топиках. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:15 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpquestionerКаким таким образом ?изменили 4 записи. Значит К КАЖДОЙ ИЗ ЧЕТЫРЕХ нужно номер версии применять. Сложно? вот эта фраза тогда что значит? ФаулерОптимистическая автономная блокировка может быть применена в любое время и зачем она вообще тут ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:15 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, Скрины просили мемберы ещё в прошлых твоих топиках. )) и? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:16 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevПерефразирую анакдот по Фаулеру. При использование данной формулировки в вопросах по ЕГЭ ссылка и гонорар автору обязателен - Может ли с одной записью при оптимистической блокировке работать 1000 пользователей? - Конечно могут!..... только такая ерунда получается.... ну там логика в том, что если мы не предполагаем дофига параллельных изменений, то не будем и блокировать. Если изредка будут накладываться результаты, то ошибку юзеру покажем и ладно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:18 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerPetroNotC Sharpquestioner, Скрины просили мемберы ещё в прошлых твоих топиках. )) и?ох тугой ты. Не я один просил у тебя скрины. В тебе проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:21 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerвот эта фраза тогда что значит? Русский язык - "в любое время но в пределах завтрака". ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:23 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestionerпропущено... и?ох тугой ты. Не я один просил у тебя скрины. В тебе проблема. по-моему тугой тут ты. Тебе в первом посте дали цитату из книги и вопрос именно по этой цитате. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:24 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questioner, Переверни страницу фаулера. Работай дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:26 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
IMHO В топку всю эту теорию и теоретиков. Фаулера отправить туда же, где уже Каутский с Троцким. offtopic on предлагаю новый мем - Карузо в исполнении Рабиновича - Фаулер в пересказе questioner'а offtopic off PetroNotC Sharpquestionerвот эта фраза тогда что значит? Русский язык - "в любое время но в пределах завтрака". ))) +++ мне этот отрывок кажется выдернутым из контекста особенно мысль "про каждую запись" такое ощущение, что переводчик (или редактор) пару абзацев из текста просто выкинул ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:30 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestionerвот эта фраза тогда что значит? Русский язык - "в любое время но в пределах завтрака". ))) а применена что значит? когда считали или когда update .... where version=42 .... ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:33 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Фаулер в пересказе меня: Но в целом, все логично ! Причинно-следственная связь совершенно очевидна ! "стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции." == "НЕ стоит применять к записям, НЕ измененным во время транзакции" Что и правильно ! Если кто-то не понимает русского языка и применяет оптимистическую блокировку ко всем записям и измененным и не изменным - вины Фаулера тут нет ! Он черным по белому в книжке написал "стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции." :=) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:36 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, )) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:40 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevФаулер в пересказе меня: Но в целом, все логично ! Причинно-следственная связь совершенно очевидна ! "стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции." == "НЕ стоит применять к записям, НЕ измененным во время транзакции" Что и правильно ! Если кто-то не понимает русского языка и применяет оптимистическую блокировку ко всем записям и измененным и не изменным - вины Фаулера тут нет ! Он черным по белому в книжке написал "стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции." :=) А вот этот текст целиком можно в твоём переводе? с приплетанием бизнес и системных транзакций и причинно-следственнной связи между предложениями. ФаулерОптимистическая автономная блокировка может быть применена в любое время, однако срок её действия ограничивается системной транзакцией, в процессе которой она была установлена. Таким образом, чтобы выполнение бизнес-транзакции не привело к утрате изменений или несогласованности данных, стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:42 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerа применена что значит? когда считали или когда update .... where version=42 .... ?монопесуально ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:42 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Фаулерв процессе тут же автор имеет ввиду During ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:44 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerА вот этот текст целиком можно в твоём переводе?нельзя. Тебе на лексемы надо. Целиком нельзя. Кусаться начинаешь). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 20:53 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpquestionerА вот этот текст целиком можно в твоём переводе?нельзя. Тебе на лексемы надо. Целиком нельзя. Кусаться начинаешь). Тебя не спрашивали - выйди. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 21:09 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerА вот этот текст целиком можно в твоём переводе? ФаулерОптимистическая автономная блокировка может быть применена в любое время, однако срок её действия ограничивается системной транзакцией, в процессе которой она была установлена. Таким образом, чтобы выполнение бизнес-транзакции не привело к утрате изменений или несогласованности данных, стоит применять оптимистическую автономную блокировку к каждой записи, изменяемой во время системной транзакции. Легко, только если ты мне объяснишь смысл слов "срок действия". В принципе, достаточно объяснить смысл слова "действие". Т.к. мне не понятно, какое вообще действие происходит при оптимистической блокировке. Весь смысл оптимистической блокировки в том и есть, что никакого действия нет IMHO. Если действие по Фаулеру это увеличение поля version в оперативной памяти, то срок этого действия будет продолжаться до перезагрузке компьютера или отключения питания. Хотя, возможно, компьютер у Фаулера работает как-то по другому. НО ! Опять таки ! Все логично ! Если системная транзакция = время со старта компьютера до нажатия на кнопку reset, то тогда опасения Фаулера про "утрату изменений или несогласованность данных" так же вполне понятны и достойны сочувствия. Например у нас сегодня Oracle не работал. Как сказал системный администратор: " ты мне сразу говори, оно иногда виснет и нужно весь сервер перезагружать" дальше прямая цитата "там бл#ть 16 терабайт. ext4. журнал как в оракле. б%ть. востанавливать. б$%ть 16 терабайт." Т.ч. возможно во фразе из книжки изначально были и какие-то другие слова, которые просто были выкинуты редактором или переводчиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 21:12 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Системная транзакция это в БД которая. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 21:36 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerТебя не спрашивали - выйди. "Все занятия у него проходили однаково - Вовочка матерился учетилям." (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 07:12 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpquestionerТебя не спрашивали - выйди. "Все занятия у него проходили однаково - Вовочка матерился учетилям." (с) Ты себя что ли учителем назвал? не рановато тебе? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 13:05 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questioner, А чем прошлый топик закончился? Вспоминай. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 13:23 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, А чем прошлый топик закончился? Вспоминай. ничем? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 13:33 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerPetroNotC Sharpquestioner, А чем прошлый топик закончился? Вспоминай. ничем?садись опять двойка. Делай следующий скрин. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 13:35 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestionerпропущено... ничем?садись опять двойка. Делай следующий скрин. Уймись, учитель недоделанный ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 13:47 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questioner, "Других учителей в стране нет вовочка" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 13:48 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerСистемная транзакция это в БД которая. Совершенно полный бред. Транзакция в СУБД при оптимистической блокировки начинается ровно в тот момент, когда говорят hibernate.commit() При hibernate коммите, начинаются скидываться изменения в БД (по английски это обычно называют post), послыются update'ы которые и НАЧИНАЮТ транзакцию в СУБД и в конце в БД посылают commit который транзакцию СУБД ЗАВЕРШАЕТ. И все это происходит в рамках одного метода. Т.ч. никакой времени жизни в рамках "в БД которая" быть не может в принципе. Т.к. при обработке данных никакой транзакции в СУБД быть и не должно. В этом и есть весь смысл большая часть смысла оптимистичной блокировке, что не нужны иметь долго открытую транзакцию с блокировками в СУБД, а все большая часть транзакции и блокировки в СУБД "короткие". IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 17:20 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Хотя, иногда, в некоторых базах данных и существуют команды START TRANSACTION.... END TRANSACTION но, обычно. транзакции в СУБД начинаются неявно, при первой DML команде (или первой блокировке?) и до COMMIT'а/ROLBACK'а. Начинает ли команда SELECT новую транзакцию, точно не уверен. Подозреваю, для некоторых СУБД - нифига ничего не начинает. Но по хорошему это надо доки/гайды от конкретной СУБД перечитывать. Что считается транзакцией и когда конкретно она начинается. IMHO & AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 17:25 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Ну и опять таки, к "времени жизни" оптимистической блокировке это отношения имеет чуть меньше, чем никакого Т.к. никто не мешает мне кэшировать объекты СУБД полученные SELECT'ом хоть со времен царя гороха, хоть со времен позапрошлого включения сервера СУБД, хоть еще более ранних времен. Хранить их версию, обрабатывать, а проверять/инвалидировать кэшь только в момент конфликтов. Такая себе оптимистично-при-оптимистичная блокировка. И, ровно для этого, оптимистичная блокировка и придумана IMHO. Да и называется так же - "оптимистичная". Храним старые-престарые данные и оптимистично надеемся, что они хорошие. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 17:32 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevНачинает ли команда SELECT новую транзакцию конечно, ведь уровень изоляции стартуемой транзакции определяет какие данные этот select увидит, разве нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 17:42 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevСУБД начинаются неявнода. И боюсь фаулер в такие тонкости не опускается. Его задача - концепция) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 17:43 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
chpashaLeonid KudryavtsevНачинает ли команда SELECT новую транзакцию конечно, ведь уровень изоляции стартуемой транзакции определяет какие данные этот select увидит, разве нет? "не все так очевидно" ( C ) дочь офицера бывают разные степени изоляции транзакций. может быть разная трактовка самого термина "транзакция" у разных писателей СУБД. Тут только читать доку по __конкретной__ СУБД. COMMIT и ROLLBACK кроме "теоретического" окончания транзакции, должен еще изменения или зафиксировать в файлах базы или откатить. Для SELECT'а ничего фиксировать и/или откатывать не нужно. Т.е. ровно такое же "время жизни транзакции", как и "время жизни оптимистической блокировки". Странное время жизни того, чего физически нет. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 17:49 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Совершенно верно. Select не особо волнует разработчика. А вот модификация таблы в середине кода будет закоммичена и уже ее не откатить. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 17:52 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, "Других учителей в стране нет вовочка" (с) C такими петучителями суп не сваришь. Так - тролли, последние ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 19:29 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpLeonid KudryavtsevСУБД начинаются неявнода. И боюсь фаулер в такие тонкости не опускается. Его задача - концепция) вообще волнуют. Он даже их рисует на картинке ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 19:31 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevquestionerСистемная транзакция это в БД которая. Совершенно полный бред. Транзакция в СУБД при оптимистической блокировки начинается ровно в тот момент, когда говорят hibernate.commit() При hibernate коммите, начинаются скидываться изменения в БД (по английски это обычно называют post), послыются update'ы которые и НАЧИНАЮТ транзакцию в СУБД и в конце в БД посылают commit который транзакцию СУБД ЗАВЕРШАЕТ. И все это происходит в рамках одного метода. Т.ч. никакой времени жизни в рамках "в БД которая" быть не может в принципе. Т.к. при обработке данных никакой транзакции в СУБД быть и не должно. В этом и есть весь смысл большая часть смысла оптимистичной блокировке, что не нужны иметь долго открытую транзакцию с блокировками в СУБД, а все большая часть транзакции и блокировки в СУБД "короткие". IMHO В книге ЯВНО говорится, что бизнес-транзакция может охватывать несколько системных транзакций. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 19:34 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 19:38 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Оптимистическая блокировка НИКАК со временим жизни транзакции СУБД НЕ связана. Никто не мешает мне при оптимистик блокировке: 1. Прочитать данные в память сервера приложений 2. Тридцать три и три раза перезагрузить сервер СУБД 3. Записать данные в БД На то она и оптимистическая. При писсиместической, такое, разумеется, уже не получится. Т.к. кто нибудь между двадцать пятым и тридцатым разом перезагрузки СУБД может поменять данные и данные станут не корректны ))) А при оптимистической - запросто. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 19:56 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
P.S. что на картинке фаулера хорошо и видно "Извлечь данные" и "записать" у него в разных квадратиках ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 19:58 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
читаем исходную фразу из книжки Оптимистическая автономная блокировка может быть применена в любое время, однако срок её действия ограничивается системной транзакцией, в процессе которой она была установлена. смотрим на картинку из той же книжки...... Классика - По какому делу вы пришли ко мне? Говорите как можно скорее, я сейчас иду обедать. - Мы, управление дома, - с ненавистью заговорил Швондер, - пришли к вам после общего собрания жильцов нашего дома, на котором стоял вопрос об уплотнении квартир дома... - Кто на ком стоял? - крикнул Филипп Филиппович, - потрудитесь излагать ваши мысли яснее. - Вопрос стоял об уплотнении. - Довольно! Я понял! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 20:05 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Пересказ Фаулера в изложении меня любимого читаем исходную фразу из книжки смотрим на картинку из той же книжки...... и понимаем, что скорее всего Фаулер имел в виду две РАЗНЫЕ блокировка 1) "Оптимистик блокировку" как метод доступа к данным. При которой на самом деле БЛОКИРОВКИ то и НЕТ. 2) И реальную блокировку в СУБД, которая, действительно живет только во время транзакции Оптимистическая автономная блокировка может быть применена в любое время (про первую!), однако срок её действия блокировки (другой, про вторую !) ограничивается системной транзакцией, в процессе которой она была установлена. Тогда фраза хоть и кривая, но хоть какой-то смысл появляется. Ну а далее, как я уже объяснил ))) 21994126 , Фаулер имел в виду, что не нужно блокировать всю таблицу, а только те записи. которые менялись ))) В общем, что Коррузо в перепеве Робиновича, что Фаулер в пересказе..... Что Фаулер, что Каутский с Троцким - место в топке. - Все равно не позволю есть, пока не заложите. Зина, примите майонез у Шарикова. - Как это так "примите"? - расстроился Шариков, - я сейчас заложу. Левой рукой он заслонил блюдо от Зины, а правой запихнул салфетку за воротник и стал похож на клиента в парикмахерской. - И вилкой, пожалуйста, - добавил Борменталь. Шариков длинно вздохнул и стал ловить куски осетрины в густом соусе. - Я еще водочки выпью? - заявил он вопросительно. - А не будет ли вам? - осведомился Борменталь, - вы последнее время слишком налегаете на водку. - Вам жалко? - осведомился Шариков и глянул исподлобья. - Глупости говорите... - вмешался суровый Филипп Филиппович, но Борменталь его перебил. - Не беспокойтесь, Филипп Филиппович, я сам. Вы, Шариков, чепуху говорите и возмутительнее всего то, что говорите ее безапелляционно и уверенно. Водки мне, конечно, не жаль, тем более, что она не моя, а Филиппа Филипповича. Просто - это вредно. Это - раз, а второе - вы и без водки держите себя неприлично. Борменталь указал на заклеенный буфет. - Зинуша, дайте мне, пожалуйста, еще рыбы, - произнес профессор. Шариков тем временем потянулся к графинчику и, покосившись на Борменталя, налил рюмочку. - И другим надо предложить, - сказал Борменталь, - и так: сперва Филиппу Филипповичу, затем мне, а в заключение себе. Шариковский рот тронула едва заметная сатирическая улыбка, и он разлил водку по рюмкам. - Вот все у вас как на параде, - заговорил он, - салфетку - туда, галстук - сюда, да "извините", да "пожалуйста-мерси", а так, чтобы по-настоящему, - это нет. Мучаете сами себя, как при царском режиме. - А как это "по-настоящему"? - позвольте осведомиться. Шариков на это ничего не ответил Филиппу Филипповичу, а поднял рюмку и произнес: - Ну желаю, чтобы все... - И вам также, - с некоторой иронией отозвался Борменталь. Шариков выплеснул содержимое рюмки себе в глотку, сморщился, кусочек хлеба поднес к носу, понюхал, а затем проглотил, причем глаза его налились слезами. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 20:21 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevP.S. что на картинке фаулера хорошо и видно "Извлечь данные" и "записать" у него в разных квадратиках Ну дык в пунктире это системная транзакция (она ж БД шная) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 20:58 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevДля SELECT'а ничего фиксировать и/или откатывать не нужно. Т.е. ровно такое же "время жизни транзакции", как и "время жизни оптимистической блокировки". Странное время жизни того, чего физически нет. IMHOНеправильное у вас ИМХО. Выборка обязана подчиняться общим правилам просто потому, что транзакция - механизм обеспечения атомарности и целостности. "Грязное чтение" оставим на совести тех СУБД, где оно есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 21:53 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questioner, Вот ты на форуме вроде никому не отвечаешь, не помогаешь. Пришел с вопросом и хамишь, слова матерные употребляешь. Прогресса в обучении нет. Свой пост про DI не помним. То что ТС спрашивает и не огрызается ты не согласен. Может тебя плохо воспитывали? Или маньяк какой одичавший. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 10:17 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questioner, Упс. Топик уже чистят. Не отвлекайся от темы ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 10:20 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, попался ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 11:18 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 11:35 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Пока не стоит. Я на таблЭтках. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 11:54 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
продолжаю обсуждение в стиле "сколько ангелов может уместиться на острие иглы" в общем-то - это глубоко пофиг, чисто ради флуда Basil A. SidorovLeonid KudryavtsevДля SELECT'а ничего фиксировать и/или откатывать не нужно. Т.е. ровно такое же "время жизни транзакции", как и "время жизни оптимистической блокировки". Странное время жизни того, чего физически нет. IMHOНеправильное у вас ИМХО. Выборка обязана подчиняться общим правилам просто потому, что транзакция - механизм обеспечения атомарности и целостности. "Грязное чтение" оставим на совести тех СУБД, где оно есть. "не все так очевидно" Это только у Фаулера и других теоретиков, транзакция атомарна и целостна. А даже в википедии: 1. не всегда консистентна, т.к. есть разные режимы изоляции 2. не всегда атомарна, т.к. есть сейв-поинты, автономные (вложенные) транзакции, статемент-консистент и перезапуск стайтментов, чекпоинты и прочее в общем, в реальной жизни ничего автомарного и консистентного и нет "-а что же есть? -а ничего и нет, все только видимость" ( C ) сказка о говнокуре и Будде ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 13:38 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Продолжая бредить дальше, то про SELECT можно выдвинуть три утверждения. (больше придумать не смог) 1. SELECT - ТОЧНО начинает транзакцию 2. SELECT - точно НЕ начинает транзакцию 3. SELECT - НЕ точно начинает транзакцию Мое первоначальное высказывание: Leonid KudryavtsevНачинает ли команда SELECT новую транзакцию, точно не уверен. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 13:39 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Делаем маленький тест на 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.
Код: 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.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 13:47 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 14:23 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Господа. Вы зря спорите. Фаулер не рассматривает транзакцию в базе на уровне оператора select. Он рассматривает уровень Единица работы с базой (квадратик). Что физически происходит в субд его не волнует. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 14:36 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Дык как раз до этого посмотрел и перечитал доку по Oracle. Но там формулировки ровно такие же, как у Фаулера в целом-то - глубоко пофик, как спор про ангелов на конце иглы ни ангелов никто не видел, ни сфеоическую транзакцакцию в вакууме. пока данные не меняются - началось или нет, глубоко пофиг IMHO на правах бреда, ни на что другое и не притендую p.s. тест кейс, когда SELECT есть, а начала транзакции (автономной) как бы и нет - привел. UPDATE (не меняющий никаких записей) и SELECT ... FOR UPDATE начинают "active autonomous transaction", а вот SELECT просто - ноль эффекта ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 14:56 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, я-бы вместе с SELECT рассмотрел изоляцию. Это способность видеть или не видеть dirty, фантомы и прочие штуки которые идут еще с эпохи файловых БД. Oracle по дефолту всегда включает READ COMMITED. Другие DBMS - не знаю. Кроме того есть наверное архитектурный gap между уровнями изоляций JDBC и практическим количеством этих изоляций которые реально поддерживаются в текущей DBMS. Грубо говоря они могут не маппится 1:1. Вообще рассматривать сферический SQL еще можно. В рамках ASNI стандартов. Но как рассматривать сферическую DBMS и ее режимы изоляции - я не знаю. Скорее всего - никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 14:57 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpГоспода. Вы зря спорите. вот лично я, ни сколько не спорю исключительно ради флуда ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 14:59 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, ))) Поддерживаю флуд _осознанный_. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 15:07 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
mayton, к твоему сообщению в целом плюсуюсь. Но все свои комментарии потер, т.к. общая бредовость при натягивание теоретической совы на глобус - зашкалила выше нормы ))) такое только под водочку и пиво обсуждать. в общем, как и весь этот топик изначально ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 15:12 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevp.s. тест кейс, когда SELECT есть, а начала транзакции (автономной) как бы и нет - привел.... только select в курсоре PSQL - вообще ни разу не DML и в этом случае надо читать другие разделы документации. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 15:52 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonя-бы .... рассмотрел изоляцию. Это способность видеть или не видеть.... Грубо говоря они могут не маппится 1:1 Говорю на бытовом языке, за точностью терминов не гонюсь. Мне кажется, есть два разных механизма СУБД 1. обеспечение версионности = "изоляция" 2. обеспечение целостности при записи Теоретически "транзакция" это и то и другое ("и можно без хлеба" ( C ), желательно в режиме serialized), практически - две разных механизма, которые не всегда маппятся 1:1 Когда есть UPDATE/DELETE/INSERT мы транзакцию всегда можем "пощупать" т.к. работа механизма N2 вполне себе видна Если же изменений нет - то транзакция становится чисто призрачным теоретическим термином. Есть она, нет ее.... есть ли ангелы, нет ангелов... сколько их может уместиться на кончике иглы? В том же самом Oracle, "конец транзакции" в виде SCN /system change number/ есть, а вот есть ли что-то реальное (что можно посмотреть, пощупать) для самой "транзакции" или для "начала транзакции" - я не знаю. С ходу не помню. Было бы удобно считать, что COMMIT/ROLLBACK == конец одной транзакции == начало другой, но вроде доки и теоретики явно разделяют "конец" и "начало". Поэтому после прочтения док, остается какая-то душевная неопределенность, что тогда должно существовать между-транзакционное пространство.... которое, конечно, никто не видел.... но должны же где-то жить зеленые человечки? IMHO на правах бреда ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:02 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Продолжим бредить дальше. Чисто теоретически. Нашел такое определения в И-нет Транзакция (или логическая единица работы) – неделимая с точки зрения воздействия на базу данных последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации) такая, что либо результаты всех операторов, входящих в транзакцию, отображаются в БД, либо воздействие всех этих операторов полностью отсутствует. Т.е. если воздействия нет, то как бы и термин "транзакция" не применим (и соответственно "начало транзакции") Как квантовая запутанность. SELECT запутан с последующими UPDATE'ами. Нет update-ов, нет транзакции, select ничего и не начинает. А вот если... на растоянии 100500 световых лет строк кода, внезапно оказался UPDATE, то "запутанный SELECT" транзакцию уже давно и начал. Такая вот аналогия :=) на правах бреда ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:03 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevтеоретики явно разделяют "конец" и "начало".+активная, вложенная, автономная)) распеределенная. В хибере упрощаем. Транзакция на запрос (вызов метода begin) и остальное за скобками темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:08 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevmaytonя-бы .... рассмотрел изоляцию. Это способность видеть или не видеть.... Грубо говоря они могут не маппится 1:1 Говорю на бытовом языке, за точностью терминов не гонюсь. Мне кажется, есть два разных механизма СУБД 1. обеспечение версионности = "изоляция" 2. обеспечение целостности при записи Теоретически "транзакция" это и то и другое ("и можно без хлеба" ( C ), желательно в режиме serialized), практически - две разных механизма, которые не всегда маппятся 1:1 Когда есть UPDATE/DELETE/INSERT мы транзакцию всегда можем "пощупать" т.к. работа механизма N2 вполне себе видна По SELECT Приведу практический пример. Вы написали микро-сервис который возвращает инфу по клиенту. Двумя методами. getBrief(clientId), getFull(clientId). Грубо говоря смотрим в виджет который показывает краткую сводку. А потом кликаем мышкой и видим детализацию. Паттерн норм? Вполне себе норм. Продкутовый кейс. Такое часто бывает. Это две операции select. Но между этими операциями база могла изменятся. И клиент мог менять какие-то свойства. Ну... по крайней мере бизнес говорит что такое вполне себе возможно. Чего-ж нет то? Вот и вопрос следующий. Эти два селекта мы рассматриваем в изоляции от изменений БД? Тогда мы должны соотв зафиксировать режим транзакций и получить согласованный снимок. Или мы просто делаем 2 независимых селекта и получаем теоретически разные сеты атрибутов клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:14 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonЭто две операции select. Но между этими операциями база могла изменятся.так же как и посты на sql.ru. Ничего страшного. Если учитывать в коде. Это асинхронность, в принципе. С ней сложнее писать как и с микросервисами. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:21 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonТогда мы должны соотв зафиксировать режим транзакций и получить согласованный снимок. нифига режимы транзакций по памяти не помню какой режим Вы предлагаете установить "на практике" ("практический пример" ( C )) ? интересный кейс, т.к. мне кажется, что попытка перевести его в "оптимистик блокировку" (тема топика) может оказаться не такой уж и простой ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:24 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonВы написали микро-сервис который возвращает инфу по клиенту. Двумя методами. getBrief(clientId), getFull(clientId). Грубо говоря смотрим в виджет который показывает краткую сводку. А потом кликаем мышкой и видим детализацию. Паттерн норм? Вполне себе норм. .... и получить согласованный снимок. Нифига не норм. Как минимум метода "refresh" не хватает ))) получаем статическую фигню, которая всегда возврашает старые данные на момент первого логина юзера данные может и согласованные, но ... "такая фигня получается" ( C ) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:29 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Этот юзкейс есть в любой системе в принципе. orm.ПроверитьНаДолги(Имя orm.ВыдатьКредит(Имя Между первым и вторым всегда может ситуация измениться. Это риски и не надо тут блокировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:34 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevmaytonВы написали микро-сервис который возвращает инфу по клиенту. Двумя методами. getBrief(clientId), getFull(clientId). Грубо говоря смотрим в виджет который показывает краткую сводку. А потом кликаем мышкой и видим детализацию. Паттерн норм? Вполне себе норм. .... и получить согласованный снимок. Нифига не норм. Как минимум метода "refresh" не хватает ))) получаем статическую фигню, которая всегда возврашает старые данные на момент первого логина юзера данные может и согласованные, но ... "такая фигня получается" ( C ) Я вас умоляю. Никто дополнительную кнопку с Refresh не будет делать. Это и по дизайну и по нагрузке - ненужная фигня. Просто я подчеркиваю что SELECT может быть "не так прост...." ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:35 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpLeonid Kudryavtsev, Этот юзкейс есть в любой системе в принципе. orm.ПроверитьНаДолги(Имя orm.ВыдатьКредит(Имя Между первым и вторым всегда может ситуация измениться. Это риски и не надо тут блокировать. Боже упаси. Я и не предлагаю блокировать. Нормальный SELECT (как в Оракле) вообще никогда и ничего не блокирует. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:36 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, Вот ты на форуме вроде никому не отвечаешь, не помогаешь. Пришел с вопросом и хамишь, слова матерные употребляешь. Прогресса в обучении нет. Свой пост про DI не помним. То что ТС спрашивает и не огрызается ты не согласен. Может тебя плохо воспитывали? Или маньяк какой одичавший. Может ты просто своё внимание переключишь на кого-то другого? Твой бред читать смысла нет - всё мимо. С воспитанием проблемы у тебя ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:44 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
пришло осознание, что в хибере просто оптимистическая блокировка, а у Фаулера оптимистическая автономная блокировка. В хибере она идёт в рамках одной ДБ транзакции, а у Фаулера одна бизнесс транзакция, а БД-шных сколько хочешь ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:52 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonПросто я подчеркиваю что SELECT может быть "не так прост...."да. Он не прост. Тут мы флудим. То усложняем, то пытаемся упростить до мыслей книжки) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:54 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
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.10.2019, 16:55 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Я вообще не понимаю Фаулера здесь. Может его перенести в Программирование или в Проектирование БД В форуме Java имеет смысол посмотреть с ракурса JDBC/JPA и через призму этих пром-стандартов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:56 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerпришло осознание,смотрим: questionerВ хибере она идёт в рамках одной ДБ транзакции Если расшифруешь "она" тогда посмотрим на твое сознание. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:58 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questionerХотя нет....блин))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 16:59 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonЯ вообще не понимаю Фаулера здесь. Может его перенести в Программирование или в Проектирование БД В форуме Java имеет смысол посмотреть с ракурса JDBC/JPA и через призму этих пром-стандартов.ТС не поймет тебя). Но я с тобой согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 17:00 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevЕсли же изменений нет... дальше можно не теоретизировать, поскольку БД только для чтения - крайне узкий сегмент. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 17:22 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Исключительно ради копи-паста. У меня когнетивный диссонанс 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. Автономные транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 18:41 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Ради справедливости к документации 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.10.2019, 18:53 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Ради справедливости к 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.10.2019, 18:59 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, "DML оператор select" и "select в PSQL курсоре" - сильно разные вещи, хотя и там и там есть одинаковые буквы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 20:16 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevВ главе N 9 Data Concurrency and Consistency есть понятие Transaction-Level Read ConsistencyТранзакция и уровень изоляции транзакции - тоже разные вещи, хотя тоже совпадают некоторые буквы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 20:17 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevКогда есть UPDATE/DELETE/INSERT мы транзакцию всегда можем "пощупать" т.к. работа механизма N2 вполне себе видна Если же изменений нет - то транзакция становится чисто призрачным теоретическим термином. Есть она, нет ее.... есть ли ангелы, нет ангелов... сколько их может уместиться на кончике иглы? наркоманы, прочтите концептс уже. там же три странички. после set transaction isolation level serializable; первый же селект стартанет транзакцию. и ее замечательно можно пощупать, т.к. все следующие селекты вернут данные на момент старта первого DML, на момент старта первого селекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 20:53 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
наркоманы все что свзяно с БД ,это удел хибера и ИИ все что не укладывается в crud =cпроектировано как говно=это слова Джоша Лонга забудье уже про ващи селекты и хранимые процедуры кто хочет приходите в питер на joker,чтобы понять насколько вы устарели в рамках современой разработки приложений я вам вангую вы прозрете насоколько ваши знания устарели ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 21:51 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
H5N1, Для oracle есть ещё два способа. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 22:15 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
H5N1, Наркоман. Тип изоляции в бд никто не меняет. Это ты так, для справки сказал что в африке бывают семиголовые чудища. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 23:21 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpH5N1, Наркоман. Тип изоляции в бд никто не меняет. Это ты так, для справки сказал что в африке бывают семиголовые чудища. это для деревенских, что не слышали, что такое уровень изоляции простой способ взять и убедится что селект это DML и вполне себе стартует транзакцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 23:41 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
H5N1, Плохо когда теретики спорят с практиками. Одни говорят - транзакция стартует!!! А другие говорят - что значит стартует, если абсолютно ничего не меняется. Откатить даже нельзя))). Тут пришел ты и для доказательства предложил изменить НУ (начальные условия). В общем весело отдыхаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 23:54 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpА другие говорят - что значит стартует, если абсолютно ничего не меняется. Откатить даже нельзя)))Жили-были три поросёнка: Ниф-Ниф, Нуф-Нуф и Нах-Нах. Заканчивай, Петро, выделываться. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 07:03 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Не боись. Я не много) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 07:09 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Варианты получения консистентных селектов. Код: plsql 1. 2. 3. 4.
Еще вариант. С помощью flashback query Код: plsql 1. 2. 3. 4. 5.
+ тоже самое через current timestamp. Можно еще рассмотреть через materialized views (в старых версиях это называлось snapshot) или temporary tables. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 10:03 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
mayton, Да. Но как говорят фаулеры и им подобные, на сервере это не применяется. А советуют прменять " read-first — транзакционная стратегия высокого параллелизма". Это когда сначала все читающие, а потом пишем. Пишет контейнер в прграммной транзакции. .... Это не решает конечно твою проблему с двумя select, но зато не тормозит и высокий параллелизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 10:39 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
mayton, То есть ты привел решение от админа и в субд. А фаулер решает не трогая механизмы бд. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 10:40 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Да я и есть бывший админ БД. А что топик запрещает нам обсуждать механику БД. Кажется мы уже достаточно далеко ушли от Фаулера. А он - чортов теоретик и говорит как нужно сажать клубнику квадратным способом. Только сам он никогда в колхозе не был. И не знает сельхоза. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 10:44 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonДа я и есть бывший админ БД.У меня отличная память. Я знаю конечно. Просто ты с одной стороны посмотрел, я с другой стороны. Это здорово смотреть с разных сторон. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 10:51 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
mayton, То есть по концепции выше, для высокого параллелизма и масштабирования, предлагается вообще вывести чтение ЗА ТРАНЗАКЦИИ. Компромисс в архитектуре неизбежная вещь (с) Поэтому то что сутки обсуждаем предлагается вообще не обсуждать и забыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:06 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Топик не про параллелизм а про блокировки. Я-бы различал эти понятия хотя-бы чтоб не скатываться в прочие вопросы типа перформанса. Какой перформанс если оператор "ушла на обед" и оставила открытой форму редактирования клиента? Это другая задача. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:12 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonТопик не про параллелизм а про блокировки.тут админы пишут. "если много транзакций и они длинные, то блокировка на запись переходит на страничную...." Связь прямая параллелизма и транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:15 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
mayton, То есть если select пихаем в транзакцию, она будет 5 сек. Если убираем - 5миллисек. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:17 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpmaytonТопик не про параллелизм а про блокировки.тут админы пишут. "если много транзакций и они длинные, то блокировка на запись переходит на страничную...." Связь прямая параллелизма и транзакции. Какие админы? С какой DBMS? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:17 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpmayton, То есть если select пихаем в транзакцию, она будет 5 сек. Если убираем - 5миллисек. Покажи макет кода. Я хочу обсуждать предметно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:18 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonКакие админы? С какой DBMS?с веба. Они не правы что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:18 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpmaytonКакие админы? С какой DBMS?с веба. Они не правы что ли? О оракле нет страниц. Есть сегменты. Экстенты. Блоки. И строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:19 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonТопик не про параллелизм а про блокировки.Если, таки, речь про СУБД, то кроме "блокировочников" есть и "версионники". Не серебрянная пуля, но вполне себе рабочее решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:25 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonPetroNotC Sharpmayton, То есть если select пихаем в транзакцию, она будет 5 сек. Если убираем - 5миллисек. Покажи макет кода. Я хочу обсуждать предметно. 21995717 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:25 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpmaytonпропущено... Покажи макет кода. Я хочу обсуждать предметно. 21995717 Я не могу это комментировать. Тут нет темы для обсуждения. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:27 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Basil A. SidorovmaytonТопик не про параллелизм а про блокировки.Если, таки, речь про СУБД, то кроме "блокировочников" есть и "версионники". Не серебрянная пуля, но вполне себе рабочее решение. Oracle/Postgres - версионники изначально. Microsoft SQL получил опцию версионности в каких-то 2000х. Тоесть MS уже можно считать версионником. Насколько глубоко это реализовано - я ХЗ. Пускай знатоки в топике скажут как оно там внутри. Насчет других я не знаю. Практически мало использовал. По MySQL сложно сказать. Там - Lego конструктор. Зависит от всяких engines. Тоесть вопрос сложный пока не увидим как создавалась табличка. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:32 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
mayton, Почему? Первый метод с select 5 сек подымает все долги клиента. Второй пишет. Но решать тебе. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:32 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonТоесть MS уже можно считать версионником.нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:32 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpmayton, Почему? Первый метод с select 5 сек подымает все долги клиента. Второй пишет. Но решать тебе. Туфта какая-то. Что мы обсуждаем? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:35 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpmaytonТоесть MS уже можно считать версионником.нельзя. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:35 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Я насетапил такую компарисон табличку для Ora/PG/MS https://db-engines.com/en/system/Microsoft SQL Server;Oracle;PostgreSQL Обратите внимание. По версии этого ресурса основные опции такие как ACID/Concurrency/Durability у них одинаковы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:44 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonMicrosoft SQL получил опцию версионности в каких-то 2000х.получение ОПЦИИ доказало что оно теперь версионник? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:46 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
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 Ты зря вышел на тропу войны. Я вовсе не хочу доказывать тезис любой ценой. Я охотно соглашусь если ты предложишь своё определение версионности. Поэтому дорогой друг. Закопай свой топор. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 11:49 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
mayton, Да ну какая тропа)). Я на третьем посту уже дыхалку потерял и интерес. Уже выдохся)). Притом, код пример от EE это один код. А от хибера второй и JPA третий. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 12:09 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Как правильно сказал один господин в топике - мы натягиваем сову на глобус. Может хватит натягивать? Я вообще всегда за конкретику. А тут ее нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 12:14 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
maytonКак правильно сказал один господин в топике - мы натягиваем сову на глобус.у котрого "седое зрение"?)) Он как всегд прав. Я бы автора без кода со всеми его топиками отправлял в форум теории. У нас без кода больше никто так не спрашивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 12:24 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
– Взять бы этого Канта, да за такие доказательства года на три в Соловки! – совершенно неожиданно бухнул Иван Николаевич. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 12:28 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpmaytonКак правильно сказал один господин в топике - мы натягиваем сову на глобус.у котрого "седое зрение"?)) Он как всегд прав. Я бы автора без кода со всеми его топиками отправлял в форум теории. У нас без кода больше никто так не спрашивает. Ты бы ротик прикрыл уже или занял его чем-то другим. В чем толк от твоего присутствия в этом топике? очевидно, что по теме тебе сказать нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 14:20 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Оооо. Я же говорил что ТС будет против. Он жизнь положил переводя фаулера))). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 14:38 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC SharpОооо. Я же говорил что ТС будет против. Он жизнь положил переводя фаулера))). Я ж говорил - в каждой бочке затычка ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 15:21 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
questioner, Ты хочешь топик закрыть? Или тебе 15 лет? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 15:24 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, Ты хочешь топик закрыть? Или тебе 15 лет? На вот послушай - https://music.yandex.ru/album/3254846/track/27216767 P.S. Рот себе лучше закрой ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 15:26 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
PetroNotC Sharpтут админы пишут. "если много транзакций и они длинные, то блокировка на запись переходит на страничную...." Связь прямая параллелизма и транзакции. maytonТуфта какая-то. Что мы обсуждаем? этот клоун услышал где-то про эскалации блокировок, что присуще некоторым блокировчникам типа mssql, db2, sybase оракл кажется единственный, кто догадался хранить блокировки как атрибут данных, все остальные хранят списки блокировок в оперативной памяти. ради экономии памяти блокировка может быть сконвертированна в более крупную, типа блокировка целиком страницы или даже таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 20:00 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
mayton, а ты говорил топор зарывать))). Ту чуть промешкал и тебя зароют)) H5N1этот клоун Давай я тебя буду звать Проктолог. Ты же узкий специалист по сравнению БД? Дак вот, проктолог. Твоё уточнение мало коррелирует с темой топика. Фаулер не рассматривает механизмы СУБД в принципе. Поэтому в Java сегодня не твой день. Приходи ещё. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 21:11 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
H5N1...типа блокировка целиком страницы.... вроде oracle ровно так и блокирует - целиком блок ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 21:47 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Блокировки фиксируются на строчном уровне. Хотя есть в oracle масса других механик (undo) которые гранулярны на уровне db_blocks. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 22:31 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
mayton, Ну пускай растет сегмент отката. Сути дела это не меняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 22:44 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevH5N1...типа блокировка целиком страницы.... вроде oracle ровно так и блокирует - целиком блок пурга maytonХотя есть в oracle масса других механик (undo) которые гранулярны на уровне db_blocks. мудрый оракл накладывает версионность не на строки, а целиком на весь блок, что позволяет воротить тучи оптимизаций при записи + получать версионность автоматом хоть на bjson. но к чему это ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 00:04 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Мы не можем обсуждать оптимистик транзакции и блокировки в вакууме. Все равно вопрос скатывается к СУБД. Траблшутинг требует. Хотя есть люди которые считают что на уровне JPA и Хибернейт можно порешать все бизнесовые проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 07:35 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
mayton, Ну почему. В рамках топика автору ответили давно. И фаулер квадратик нарисовал это метод старт транзакции в драйвер бд. Глубже драйвера можно не опускаться. А драйвер просто передал команду. ... Субд кто хочет, тот и обсуждает сам по себе. Кому скучно) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 08:10 |
|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#18+
Обсуждение БД тут реально не нужно. Кто бы объяснил, что имел ввиду Фаулер в цитате, что приведена в первом сообщении... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 11:39 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2121061]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
169ms |
get tp. blocked users: |
2ms |
others: | 300ms |
total: | 554ms |
0 / 0 |