|
Фаулер. Оптимистическая блокировка в рамках бизнес-транзакции охватывающей несколько систе
|
|||
---|---|---|---|
#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 |
|
|
start [/forum/topic.php?fid=59&msg=39876744&tid=2121061]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
others: | 287ms |
total: | 437ms |
0 / 0 |