Еще раз (для самых упрямых) логоческие локи - это проявление слабости (незнаю какой) native локов тех БД с которыми видимо Вы работаете. В случае ДБ2 на МФ в этом нет необходимости и этим реально не пользуются. Хотя я не стану исключать что спец, вроде Вас, попав в ДБ2 станет пытаться применять свой неверный подход к этому вопросу.crypto5 wrote:Еще раз - они(логические локи) имеют такое же отношение к ораклу как и к ДБ2.zVlad wrote:Я сделал предположение на основании развернувшейся дискуссии по поводу "логических локов", которые я знаю не имеют отношение к ДБ2.crypto5 wrote:....Вы не знаете что творится, но вполне себе позволяете утверждать что "сам Оракл делает это как-то не очень"Я не знаю что творится в Оракл с этим, и в MS SQL
JP Morgan Chase Oracle database outage
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
для дб2 логические локи зачастую нужней. лично у меня с детства выработалось табу на транзакции которые ожидают пользовательского ввода (zVlad вообще методично озвучивает мои табу в плане архитектуры ). а табу выработалось именно благодаря знакомству с дб2. была у нас система с дб2 под низом, там пользователь стартовал нехилую транзакцию и где-то посередине этой транзакции система что-то спрашивала у пользователя. если бы это был оракл может быть оно бы и прокатило, но это был дб2 ... стандартная ситуация была такой: пользователь знал, что транзакция длинная, жал на ее старт и шел курить, транзакция в час пик начинала эскалировать блокировки в плоть до блокировки всей таблицы и останавливалась ожидая ответа пользователя. в результате пол офиса с матом бегает по офису ища курильщика который вместо блокировки ему нужных пары записей останавливал работу всего подразделения.crypto5 wrote: Еще раз - они(логические локи) имеют такое же отношение к ораклу как и к ДБ2.
ЗЫ. оракл никогда не блокирует больше чем необходимо
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
Но как именно БД2 native локи способны решить выше описанные проблемы, вы никому не скажетеzVlad wrote:Еще раз (для самых упрямых) логоческие локи - это проявление слабости (незнаю какой) native локов тех БД с которыми видимо Вы работаете. В случае ДБ2 на МФ в этом нет необходимости и этим реально не пользуются. Хотя я не стану исключать что спец, вроде Вас, попав в ДБ2 станет пытаться применять свой неверный подход к этому вопросу.crypto5 wrote:Еще раз - они(логические локи) имеют такое же отношение к ораклу как и к ДБ2.zVlad wrote:Я сделал предположение на основании развернувшейся дискуссии по поводу "логических локов", которые я знаю не имеют отношение к ДБ2.crypto5 wrote:....Вы не знаете что творится, но вполне себе позволяете утверждать что "сам Оракл делает это как-то не очень"Я не знаю что творится в Оракл с этим, и в MS SQL
In vino Veritas!
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
интересно, а признать, что вы совершили детскую ошибку разбираемую в любом учебнике в предложении апдейтить единую запись итога у вас духа хватит ?zVlad wrote: Еще раз (для самых упрямых) логоческие локи - это проявление слабости (незнаю какой) native локов тех БД с которыми видимо Вы работаете. В случае ДБ2 на МФ в этом нет необходимости и этим реально не пользуются. Хотя я не стану исключать что спец, вроде Вас, попав в ДБ2 станет пытаться применять свой неверный подход к этому вопросу.
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
Общее замечание. В реальной жизни когда меняют чей-нибудь адрес с секретаршами не разговаривают. Другое общее замечание - John Smith у которого есть секретарша сам адреса не меняет, опять же в реальной жизни.Zombie416 wrote:Пример: Простая система с одной таблицей "Customers" и многими клерками, которые могут забивать туда информацию.zVlad wrote:- Во-первых при наступлении нежелательного события, связанного с локами (таймаут или дэдлок) DB2 выдает сообщение со всем необходимым что можно пожелать знать об этом:
Клерк №1 меняет адрес пользователя John Smith, разговаривая с его секретаршей по телефону и некоторым образом заблокировав запись. При этом сам John Smith звонит по другому телефону клерку №2, и тоже хочет поменять адрес.
Принимая что запись блокируется на уровне базы:
Вопрос №1: сколько времени пройдет пока клерк №2 узнает что запись заблокирована и кем?
Вопрос №2: какое выражение лица будет у клерка №2 когда он увидит на экране подобное сообщение " со всем необходимым что можно пожелать "?
Ответ №1: В случае ДБ2 столько сколько установлено DBA в параметрах ДБ2. Это могут быть секунды, минуты. Иными словами столько сколько разумно для того или иного приложения.
Ответ №2: Мое личное мнение (и так оно в большинстве случаев происходит в реальной жизни) пользователю сообщать детали не надо, точнее ему эти детали совершенно ни к чему. Надо писать нормальные приложения, надо устанавливать границы и извинятся в сообщениях если что-то не получается. Правильный пример - резервация билетов на самолет где говорится что у вас на принятие решения брать или не брать столько-то минут. В других случаях может быть иначе конечно.
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
Мне по этому вопросу нечего добавить. Мне кажется я все сказал.crypto5 wrote:Ну а вам не сложно было бы обьяснить что дает вам основания так думать?zVlad wrote:Я не Java программист и никогда им не был, поэтому мне нечего сказать по этому поводу кроме того что не думаю что в случае ДБ2 эта проблема (если она вообще имеет место быть) трудноразрешима.crypto5 wrote:....- как дб2 native локи спасают от того что connection в connection пуле в j2ee приложении нельзя реюзать, пока лок не снят?
....
-
- Уже с Приветом
- Posts: 8881
- Joined: 17 Jun 2003 04:41
Re: JP Morgan Chase Oracle database outage
В моей реальной жизни и с секретаршами разговаривают, и сами адреса меняют только так. И в реальной жизни, где вместо людей - компьютеры, такой пример вообще сплошь и рядом.zVlad wrote: Общее замечание. В реальной жизни когда меняют чей-нибудь адрес с секретаршами не разговаривают. Другое общее замечание - John Smith у которого есть секретарша сам адреса не меняет, опять же в реальной жизни.
Но неважно, считайте пример абстрактным: великий босс сказал так надо, приказано выполнять. Причем требуемый результат работы в такой ситуации: клерк №2 должен сразу же сообщить тов. John Smith что его запись заблокирована 3 минуты назад, и попросить перезвонить позже. Сразу же. А если она уже 5 минут как заблокирована, то спросить в соседнем кубикле: "Вася, ты чего там John Smith-овый адрес заблокировал?".
Неприемлемый вариант: оставлять John Smith-а слушать elevator music в течение 20 минут (разумное время на то чтобы поменять адрес беседуя с клиентом, в который DBA поставил timeout), после чего ему сообщить "oops, my computer failed, let's try again".
И без логических блокировок обойтись будет непросто. Хоть в DB2, хоть в Oracle, хоть в MS SQL (который и версионник, и блокировочник на выбор).
Last edited by Zombie416 on 24 Sep 2010 21:32, edited 1 time in total.
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
Точнее ничего не сказали.zVlad wrote:Мне по этому вопросу нечего добавить. Мне кажется я все сказал.crypto5 wrote:Ну а вам не сложно было бы обьяснить что дает вам основания так думать?zVlad wrote:Я не Java программист и никогда им не был, поэтому мне нечего сказать по этому поводу кроме того что не думаю что в случае ДБ2 эта проблема (если она вообще имеет место быть) трудноразрешима.crypto5 wrote:....- как дб2 native локи спасают от того что connection в connection пуле в j2ee приложении нельзя реюзать, пока лок не снят?
....
In vino Veritas!
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
в финансовой сфере практически любую задачу можно брать. для разбора имхо удобней всего брать нагрузку брокерской канторы из TPC-E. у IBM есть хороших документик который рассписывает какие транзакции фигачит брокер, вот там и нужен консистентный отчет по сделкам определеного типа по 200 раз надень.Dmitry67 wrote: ЧТо касается точности отчетов. Мне сходу не привести пример когда это критично (прошу помощи у зала, в тяпницу голова плохо работает)
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
Мне очень жаль что когда Вы были младенцем (в смысле программирования) у Вас не было достаточно в рационе витамина D. Это так сказать литературный образ.iDesperado wrote:для дб2 логические локи зачастую нужней. лично у меня с детства выработалось табу на транзакции которые ожидают пользовательского ввода (zVlad вообще методично озвучивает мои табу в плане архитектуры ). а табу выработалось именно благодаря знакомству с дб2. была у нас система с дб2 под низом, там пользователь стартовал нехилую транзакцию и где-то посередине этой транзакции система что-то спрашивала у пользователя. если бы это был оракл может быть оно бы и прокатило, но это был дб2 ... стандартная ситуация была такой: пользователь знал, что транзакция длинная, жал на ее старт и шел курить, транзакция в час пик начинала эскалировать блокировки в плоть до блокировки всей таблицы и останавливалась ожидая ответа пользователя. в результате пол офиса с матом бегает по офису ища курильщика который вместо блокировки ему нужных пары записей останавливал работу всего подразделения.crypto5 wrote: Еще раз - они(логические локи) имеют такое же отношение к ораклу как и к ДБ2.
ЗЫ. оракл никогда не блокирует больше чем необходимо
Вернемся к технике. Давным-давно существует правило что транзакции должны быть сделаны так чтобы они начинались после клика и заканчивались перед обновлением экрана. Вот это действительно табу, а то что Вы говорите табу - это недостаток ватимина D, извините.
Ну и по поводу "блокировки в плоть до блокировки всей таблицы". Снова Вы даете повод говорить что Ваши мозги промыты Оракловской пропагандой, которую я достаточно тщательно в свое время изучал. Это одна из излюбленных тем Оракла. Но дело в том что описанная Вами ситуация это не тот случай когда эскалация действительно может произойти. Эскалация возникает в процессе накопления блокировок (например в пакетном задании обрабатывающем большие количества данных), а не по ожиданию чего-то, для эскалации нужно движение, а не стояние.
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
Покажите мне, пожалуйста, хоть один такой учебник, кроме написанного Вами конечно.iDesperado wrote:интересно, а признать, что вы совершили детскую ошибку разбираемую в любом учебнике в предложении апдейтить единую запись итога у вас духа хватит ?zVlad wrote: Еще раз (для самых упрямых) логоческие локи - это проявление слабости (незнаю какой) native локов тех БД с которыми видимо Вы работаете. В случае ДБ2 на МФ в этом нет необходимости и этим реально не пользуются. Хотя я не стану исключать что спец, вроде Вас, попав в ДБ2 станет пытаться применять свой неверный подход к этому вопросу.
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
Я готов с Вами согласиться, но в следущей редакции:Zombie416 wrote:....
И без логических блокировок обойтись будет непросто. Хоть в DB2, хоть в Oracle, хоть в MS SQL (который и версионник, и блокировочник на выбор).
И без логических блокировок, некоторым программистам, обойтись будет непросто. Хоть в DB2, хоть в Oracle, хоть в MS SQL....
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
Re: JP Morgan Chase Oracle database outage
А просто будет только тем программистам кто не будет писать программ где без логических блокировок не обойтись.zVlad wrote:Я готов с Вами согласиться, но в следущей редакции:Zombie416 wrote:....
И без логических блокировок обойтись будет непросто. Хоть в DB2, хоть в Oracle, хоть в MS SQL (который и версионник, и блокировочник на выбор).
И без логических блокировок, некоторым программистам, обойтись будет непросто. Хоть в DB2, хоть в Oracle, хоть в MS SQL....
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
Palych wrote:А просто будет только тем программистам кто не будет писать программ где без логических блокировок не обойтись.zVlad wrote:Я готов с Вами согласиться, но в следущей редакции:Zombie416 wrote:....
И без логических блокировок обойтись будет непросто. Хоть в DB2, хоть в Oracle, хоть в MS SQL (который и версионник, и блокировочник на выбор).
И без логических блокировок, некоторым программистам, обойтись будет непросто. Хоть в DB2, хоть в Oracle, хоть в MS SQL....
-
- Уже с Приветом
- Posts: 8881
- Joined: 17 Jun 2003 04:41
Re: JP Morgan Chase Oracle database outage
Ну вот и славно. Т.е. как обойтись чисто блокировками на уровне базы вы, на конкретном примере, не знаете. И я не знаю.zVlad wrote: Я готов с Вами согласиться, но в следущей редакции:
Возможно, есть программисты на DB2 (обязательно исполняемой на zOS) в вакууме которые знают, и пишут такие системы. Но существование ни таких программистов, ни таких таких систем, ни доказать, ни опровергнуть невозможно. Можно только верить. Правильно?
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
Zombie416 wrote:Ну вот и славно. Т.е. как обойтись чисто блокировками на уровне базы вы, на конкретном примере, не знаете. И я не знаю.zVlad wrote: Я готов с Вами согласиться, но в следущей редакции:
Возможно, есть программисты на DB2 (обязательно исполняемой на zOS) в вакууме которые знают, и пишут такие системы. Но существование ни таких программистов, ни таких таких систем, ни доказать, ни опровергнуть невозможно. Можно только верить. Правильно?
Лучше чем сказал Palych я сказать не смогу (см. выше), да и не надо - краткость сестра таланта.
-
- Уже с Приветом
- Posts: 8881
- Joined: 17 Jun 2003 04:41
Re: JP Morgan Chase Oracle database outage
Да, похоже на то. Хотя казалось бы: простой пример, всего одна таблица, элементарная задача. "Не дает ответа..."zVlad wrote: Лучше чем сказал Palych я сказать не смогу (см. выше)
Last edited by Zombie416 on 24 Sep 2010 23:08, edited 1 time in total.
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
А конкретный пример я уже давал, но Вы видимо тоже не читаете меня больше чем надо для того чтобы подковырнуть. А я говорил (повторяю для Вас) что программисты в ДБ2 для МФ вообще ничего не знают о блокировках. Они пишут программы, а МФ с ДБ2 эти программы выполняет как то и все довольны. Но иногда бывают проблемы и нам, DB2 DBA, приходится в очередной раз проводить ликбез для программистов, с очень незначительным эффектом правда. Мессадж, который я приводил выше по поводу таймаут как раз иллюстрация этому. Там "столкнулись" батч задание и онлайн транзакция. Батч конечно победил. А было говорено уже десятки раз - делайте commit хотя бы на каждые 5000 апдейтов. Куда там, не слушают. По-моему они даже не понимают о чем им говорят.Zombie416 wrote:Ну вот и славно. Т.е. как обойтись чисто блокировками на уровне базы вы, на конкретном примере, не знаете. И я не знаю.zVlad wrote: Я готов с Вами согласиться, но в следущей редакции:
.....
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
Остралось выяснить какое отношение имеет ваш конкретный пример к конкретному примеру зомбиzVlad wrote:А конкретный пример я уже давал, но Вы видимо тоже не читаете меня больше чем надо для того чтобы подковырнуть. А я говорил (повторяю для Вас) что программисты в ДБ2 для МФ вообще ничего не знают о блокировках. Они пишут программы, а МФ с ДБ2 эти программы выполняет как то и все довольны. Но иногда бывают проблемы и нам, DB2 DBA, приходится в очередной раз проводить ликбез для программистов, с очень незначительным эффектом правда. Мессадж, который я приводил выше по поводу таймаут как раз иллюстрация этому. Там "столкнулись" батч задание и онлайн транзакция. Батч конечно победил. А было говорено уже десятки раз - делайте commit хотя бы на каждые 5000 апдейтов. Куда там, не слушают. По-моему они даже не понимают о чем им говорят.Zombie416 wrote:Ну вот и славно. Т.е. как обойтись чисто блокировками на уровне базы вы, на конкретном примере, не знаете. И я не знаю.zVlad wrote: Я готов с Вами согласиться, но в следущей редакции:
.....
In vino Veritas!
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
Кстати поиск в Google по словосочетанию "логическая блокировка" дает очень бедный урожай. Можете убедиться сами.Zombie416 wrote:Да, похоже на то. Хотя казалось бы: простой пример, всего одна таблица, элементарная задача. "Не дает ответа..."zVlad wrote: Лучше чем сказал Palych я сказать не смогу (см. выше)
-
- Уже с Приветом
- Posts: 8881
- Joined: 17 Jun 2003 04:41
Re: JP Morgan Chase Oracle database outage
Ну и некоторые программисты на MS SQL (в блокировочном режиме) ничего не знают о блокировках, пишут программы и они работают "как-то". Пока гром не грянет. Если железо мощное, а объемы небольшие - может и не грянуть никогда.zVlad wrote: А я говорил (повторяю для Вас) что программисты в ДБ2 для МФ вообще ничего не знают о блокировках. Они пишут программы, а МФ с ДБ2 эти программы выполняет как то и все довольны.
Но речь в конкретном примере была про ситуацию в которой "как-то", когда John Smith будет 20 минут слушать elevator music, занимать телефонную линию и оплачиваемое ухо клерка, чтобы потом получить Ooops по непонятной причине, неприемлема изначально. О блокировке надо узнать мгновенно, и также узнать кто заблокировал и сколько еще ждать (в худшем случае). Такая задача, и которая, практически, без John Smith-oв и клерков, встречается постоянно.
Расскажите пожалуйста решение без логических блокировок. Ведь вы утверждали что оно существует, поэтому оные логические блокировки в DB2/zOS не нужны?
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
я понимаю, что мое акцентирование внимания на столь грубых ошибках сильно бьет по самолюбию и возникает большой соблазн перейти на личности, национальность и половую ориентацию, но у меня все же предложение остаться в технической плоскости. поверьте образ быдловатости и хамоватости не добавляет веса вашим и так через чур философским аргументам.zVlad wrote: Мне очень жаль что когда Вы были младенцем (в смысле программирования) у Вас не было достаточно в рационе витамина D. Это так сказать литературный образ.
судя по всему вы совершенно не понимаете, что вам говорят. кроме этого вы явно не понимаете как работает субд дб2. для того чтоб нарваться на эскалацию в дб2 пакетному заданию совершенно не обязательно обрабатывать большие данные, достаточно попробовать наложить блокировку на небольшой набор записей в момент когда конкурирующие транзакции исчерпали "lock space". что касается движения, попробуйте сконцентрироваться:zVlad wrote:Но дело в том что описанная Вами ситуация это не тот случай когда эскалация действительно может произойти. Эскалация возникает в процессе накопления блокировок (например в пакетном задании обрабатывающем большие количества данных), а не по ожиданию чего-то, для эскалации нужно движение, а не стояние.
update .. where payment_date between ...
вопрос пользователю: обнаружены авансовые платежи, будем делать их перерасчет ? да / нет
так вот на вопросе пользователя может быть два варианта: апдейту хватило места в "lock space" и залочилось ровно столько записей, сколько попадает под условие where, а в час пик могло и не хватить и благодаря эскалации залочилось значительно больше строк.
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
на самом деле на МФ они действительно не нужны, zVlad совершенно верно описал как там пишется софт. они просто пишут софт, там не замарачиваются с коннекшен пулами, стейтлес апликациями, им это не нужно. если апликация тормозит они просто докупают копасити к МФ и проблема решена.Zombie416 wrote: Расскажите пожалуйста решение без логических блокировок. Ведь вы утверждали что оно существует, поэтому оные логические блокировки в DB2/zOS не нужны?
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
Проблема описанная в примере зомби не может быть решена простой докупкой мощностей.iDesperado wrote:на самом деле на МФ они действительно не нужны, zVlad совершенно верно описал как там пишется софт. они просто пишут софт, там не замарачиваются с коннекшен пулами, стейтлес апликациями, им это не нужно. если апликация тормозит они просто докупают копасити к МФ и проблема решена.Zombie416 wrote: Расскажите пожалуйста решение без логических блокировок. Ведь вы утверждали что оно существует, поэтому оные логические блокировки в DB2/zOS не нужны?
In vino Veritas!
-
- Уже с Приветом
- Posts: 15312
- Joined: 30 Apr 2003 16:43
Re: JP Morgan Chase Oracle database outage
Ладно я не стану Вас пугать тем что Вы пытаетесь нагнуть IBM certified Solution Expert (сертификат могу предъявить если не верите). Я просто попрошу Вас прочитать два фрагмента ДБ2 документации:iDesperado wrote:....
судя по всему вы совершенно не понимаете, что вам говорят. кроме этого вы явно не понимаете как работает субд дб2. для того чтоб нарваться на эскалацию в дб2 пакетному заданию совершенно не обязательно обрабатывать большие данные, достаточно попробовать наложить блокировку на небольшой набор записей в момент когда конкурирующие транзакции исчерпали "lock space". что касается движения, попробуйте сконцентрироваться:zVlad wrote:Но дело в том что описанная Вами ситуация это не тот случай когда эскалация действительно может произойти. Эскалация возникает в процессе накопления блокировок (например в пакетном задании обрабатывающем большие количества данных), а не по ожиданию чего-то, для эскалации нужно движение, а не стояние.
update .. where payment_date between ...
вопрос пользователю: обнаружены авансовые платежи, будем делать их перерасчет ? да / нет
так вот на вопросе пользователя может быть два варианта: апдейту хватило места в "lock space" и залочилось ровно столько записей, сколько попадает под условие where, а в час пик могло и не хватить и благодаря эскалации залочилось значительно больше строк.
http://publib.boulder.ibm.com/cgi-bin/b ... 4234&CASE=
и
http://publib.boulder.ibm.com/cgi-bin/b ... 4#HDRLKMAX
или просто прочитайте и вникните вот в эту цитату (из второй ссылки):
А понятия "lock space" в ДБ2 и вовсе нет. Не зря Вы взяли его в кавычки - теперь можете попробовать отмазаться.LOCKMAX n
Specifies the maximum number of page or row locks that a single application process can hold on the table space before those locks are escalated as described in "Lock escalation" in topic 5.7.4.5.3. ....