JP Morgan Chase Oracle database outage

User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: JP Morgan Chase Oracle database outage

Post by crypto5 »

zVlad wrote:
crypto5 wrote:.....
Cамое простое что могло и должно было бы придти Вам в голову - это то что сам таймаут уже с очевидностью говорит что ресурс занят, а сопровождающая это событие информация дает представление о том кем он занят
1. А я в н-тый раз повторяю - я не хочу дожидаться таймаута. :rtfm:
Вы также уперлись в то что таймаут одна минута. Таймаут может быть любим на самом деле, зависит от задачи которая решается, и если это ОЛТП, то таймаут естественно будет установлен меньше, а если это WH то больше.
2. Ну и какой таймаут вы выставите в примере с билетами? :food:

....
2. Пару секунд, секунду, пять секунд. Между нулем и 60 секундами примерно шестьдесят значений. Выбирайте любое на Ваш вкус.
То есть у вас будет разное время блокировки для собственно блокирования билета и проверки заблокирован ли он. В дб2 можно выставлять в программе время лока и/или таймаута транзакции?
In vino Veritas!
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: JP Morgan Chase Oracle database outage

Post by Dmitry67 »

zVlad wrote:
Dmitry67 wrote:
zVlad wrote:
Dmitry67 wrote:.....
Однако заявлять (притом с пафосом) 'на МФ/DB2 такой проблемы даже не возникает' ....

....
Дима, могу я Вас попросить приводить мои высказывания в достаточном объеме чтобы было понятно к чему вырванный Вами фрагмент относится. Ведь Вы же не станете утверждать ято я так сказал вообще, безотносительно чего-либо. О какой проблеме шла речь?
О локах.
Вы так и не привели решения.
Я ж сдался уже и приготовился анализировать ваши решения.
А единственное решение - логические локи
Их миллионы разных вариантов но все они примерно одни и те же, различаются меловчами и названиями полей
Один вариант тут показывает Zombie
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: JP Morgan Chase Oracle database outage

Post by iDesperado »

crypto5 wrote: То есть у вас будет разное время блокировки для собственно блокирования билета и проверки заблокирован ли он. В дб2 можно выставлять в программе время лока и/или таймаута транзакции?
в оракле можно писать так
select .. for update wait 60
или
select .. for update nowait

думаю в db2, что-то подобное есть.
zVlad
Уже с Приветом
Posts: 15420
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

iDesperado wrote:
zVlad wrote: Хорошо, а откуда взялись 8М локов? И о чем это говорит?
из документа SAP, я уже цитировал выше "the IRLM private address space is 4 GB, IRLM can hold up to approximately 7900000 locks."
zVlad wrote: Вот Ваша цитата:
это не моя цитата, это цитата из ссылки приведенной вами ведущей на документацию db2/zOS v7
как я понял в чудесной документации IBM вы не нашли описания IRLM из v9 и поэтому дали ссылку на v7
Т.е. Вы сами не можете объяснить что следует из арифметического факта деления одного числа на другое в ответом ~ 8 миллионов. Ладно оставим это.

Я преводил там две ссылки. Одну из v9 другую из версии v7. Там же рассуждал о том что были времена 31 битовой организации адресации и 64 битовой сейчас. v7 был примером ограничений памяти с 31 битовой адресации, а v9 (документаци по v7, v8 и v9 находятся на одной странице: http://www-01.ibm.com/support/docview.w ... wg27011660 - ее не надо искать) с 64 битовой.
Ваши цитата, да, состоит из цитаты из дока, и из не понятно к чему относящимся взвизгом "читаю те же самые цифры:", хотя цифры (числа) как мы выясняли очень разные.
Zombie416
Уже с Приветом
Posts: 8881
Joined: 17 Jun 2003 04:41

Re: JP Morgan Chase Oracle database outage

Post by Zombie416 »

zVlad wrote:1. Поскольку, как я понимаю, на момент выборки билетов Вы ничего не блокируете, ни физически ни логически, то когда Ваш клиент кликнул на понравившийся ему билет этот билет запросто может оказаться уже логически заблокирован другим, более шустрым клиентом. И мы переходим к пункту 2.

2. И что дальше? Снова предложите клиенту выбирать билет из списка якобы доступных билетов?

3. Транзакцию завершили, клиент тоже ушел из системы (не нужен ему стал билет), а билет остается заблокирован. На 30 минут?

Да при такой организации легко делать то что Вы перечислили, но возникает вопрос, а зачем и кто и когда будет делать эти элементарные вещи. Вы хотите посадить человека-надсмотрщика над Вашей системой?
1,2. В самом простом варианте - да. Кто первый нажал, того и тапки. В зависимости от требований к системе правила можно менять.

3. Клиент ушел из системы сразу после запроса. Клиент сидит дома, а HTTP - простой протокол, и сессии к нему искусственно прикручивается.

Да, билет остался заблокирован. Или можно сделать что билет разблокируется при Logout. И один пользователь может заблокировать много билетов. Или до 5 билетов. Никакого надсмотрщика для этого не надо. И если билет 24 часа блокируется, не надо транзакцию на сервере подвешенной 24 часа держать.

Именно что логические блокировки позволяют решать все эти проблемы гибко и автоматизированно, а не "как-то" как случилось быть зашитым в систему.
zVlad
Уже с Приветом
Posts: 15420
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

iDesperado wrote:
crypto5 wrote: То есть у вас будет разное время блокировки для собственно блокирования билета и проверки заблокирован ли он. В дб2 можно выставлять в программе время лока и/или таймаута транзакции?
в оракле можно писать так
select .. for update wait 60
или
select .. for update nowait

думаю в db2, что-то подобное есть.

Искал, тоже так думал, но вместо этого нашел SKIP LOCKED DATA. Подумав понял что это даже лучше для ДБ2 по крайней мере. В самом деле - чего ждать то? да и сколько ждать? Дело еще в том что если запрос выполняется с уровнем изоляции cursor stability то что ж ждать на каждой залоченой строке - не годится явно.
Для Оракл, видимо, лучше wait.

А что собственно предполагается в Оракл ждать в этой конструкции? Уж не освобождения ли залоченного ресурса? А что произойдет в случае nowait?
zVlad
Уже с Приветом
Posts: 15420
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

crypto5 wrote:
zVlad wrote:
crypto5 wrote:
ДБ2 v8 - SKIP LOCKED DATA
Эта штука дает разницу только если если лок incompatible, то есть в нашем воркфлоу с билетами юзер выбирает билет, и блокирует его на запись. ПОсле этого другой юзер заходит, и делает select ... SKIP LOCKED DATA и заблокированный билет ему показывается! А опаньки наступает уже когда он хочет его проапдейтить. :flag:

....
Вы неверно поняли как это работает. То как Вы описали возможно давно с уровнем изоляции UR.
The SKIP LOCKED DATA clause specifies that rows are skipped when incompatible locks are held on the row by other transactions. These rows can belong to any accessed table that is specified in the statement. SKIP LOCKED DATA can be used only with isolation CS or RS and applies only to row level or page level locks.
А можете обьяснить, чего конкретно я не понял? Потому что то что вы написали совершенно не противоречит моему примеру.
Ну а вот так понятней - сопоставьте выделенное мной в Вашем описании и из дока.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: JP Morgan Chase Oracle database outage

Post by crypto5 »

zVlad wrote:
crypto5 wrote:
zVlad wrote:
crypto5 wrote:
ДБ2 v8 - SKIP LOCKED DATA
Эта штука дает разницу только если если лок incompatible, то есть в нашем воркфлоу с билетами юзер выбирает билет, и блокирует его на запись. ПОсле этого другой юзер заходит, и делает select ... SKIP LOCKED DATA и заблокированный билет ему показывается! А опаньки наступает уже когда он хочет его проапдейтить. :flag:

....
Вы неверно поняли как это работает. То как Вы описали возможно давно с уровнем изоляции UR.
The SKIP LOCKED DATA clause specifies that rows are skipped when incompatible locks are held on the row by other transactions. These rows can belong to any accessed table that is specified in the statement. SKIP LOCKED DATA can be used only with isolation CS or RS and applies only to row level or page level locks.
А можете обьяснить, чего конкретно я не понял? Потому что то что вы написали совершенно не противоречит моему примеру.
Ну а вот так понятней - сопоставьте выделенное мной в Вашем описании и из дока.
Вы забыли выделить что скипнутыми будут только строки залоченные с помощью incompatible locks
In vino Veritas!
zVlad
Уже с Приветом
Posts: 15420
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

crypto5 wrote:
zVlad wrote:
crypto5 wrote:
zVlad wrote:
crypto5 wrote: Эта штука дает разницу только если если лок incompatible, то есть в нашем воркфлоу с билетами юзер выбирает билет, и блокирует его на запись. ПОсле этого другой юзер заходит, и делает select ... SKIP LOCKED DATA и заблокированный билет ему показывается! А опаньки наступает уже когда он хочет его проапдейтить. :flag:

....
Вы неверно поняли как это работает. То как Вы описали возможно давно с уровнем изоляции UR.
The SKIP LOCKED DATA clause specifies that rows are skipped when incompatible locks are held on the row by other transactions. These rows can belong to any accessed table that is specified in the statement. SKIP LOCKED DATA can be used only with isolation CS or RS and applies only to row level or page level locks.
А можете обьяснить, чего конкретно я не понял? Потому что то что вы написали совершенно не противоречит моему примеру.
Ну а вот так понятней - сопоставьте выделенное мной в Вашем описании и из дока.
Вы забыли выделить что скипнутыми будут только строки залоченные с помощью incompatible locks
И что это меняет? Перечитайте мое предложение в середины цитаты по поводу UR.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: JP Morgan Chase Oracle database outage

Post by crypto5 »

zVlad wrote:
crypto5 wrote:
zVlad wrote:
crypto5 wrote:
zVlad wrote: Вы неверно поняли как это работает. То как Вы описали возможно давно с уровнем изоляции UR.
А можете обьяснить, чего конкретно я не понял? Потому что то что вы написали совершенно не противоречит моему примеру.
Ну а вот так понятней - сопоставьте выделенное мной в Вашем описании и из дока.
Вы забыли выделить что скипнутыми будут только строки залоченные с помощью incompatible locks
И что это меняет? Перечитайте мое предложение в середины цитаты по поводу UR.
Вы можете не ходя вокруг да около сказать какой шаг в моем примере неправилен и почему? Не люблю знаете ли играть в загадки.
In vino Veritas!
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: JP Morgan Chase Oracle database outage

Post by iDesperado »

zVlad wrote: Т.е. Вы сами не можете объяснить что следует из арифметического факта деления одного числа на другое в ответом ~ 8 миллионов. Ладно оставим это.
для тех кто не понял, более 4Gb на 8М локов взято из документа SAP, а именно из фразы "Each lock requires about 540 bytes. For example, if the size of the IRLM private address space is 4 GB, IRLM can hold up to approximately 7900000 locks.."
7900000 * 540 байт (для версии v9.1) = 4.1Gb вполне сходиться с данными документации по db2/zOS v9.1:
You can estimate the IRLM control block structure at 540 bytes per lock. IRLM no longer supports placing locks in ECSA. All IRLM locks are now placed in the IRLM private address space.
http://publib.boulder.ibm.com/infocente ... stgreq.htm
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: JP Morgan Chase Oracle database outage

Post by iDesperado »

zVlad wrote: А что собственно предполагается в Оракл ждать в этой конструкции? Уж не освобождения ли залоченного ресурса? А что произойдет в случае nowait?
подождать 60 секунд пока строка разлочится, на 61 секунде выдаст ORA-xxxx resource busy
при nowait выдаст сразу ORA-xxxx resource busy

ЗЫ. sckip locked в оракле тоже есть, но не докумкентирован, а значит не рекомендован к использованию. инсайдеры говорят Advanced Quenes используют такую конструкцию.
zVlad
Уже с Приветом
Posts: 15420
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

crypto5 wrote:....Вы можете не ходя вокруг да около сказать какой шаг в моем примере неправилен и почему? Не люблю знаете ли играть в загадки.
Но ведь сделать Ваше первое, не верное, предположение Вы не просили ни чьей помощи. Что случилось? Я и так Вам все что можно разжевал, проглотите уж?
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: JP Morgan Chase Oracle database outage

Post by crypto5 »

zVlad wrote:
crypto5 wrote:....Вы можете не ходя вокруг да около сказать какой шаг в моем примере неправилен и почему? Не люблю знаете ли играть в загадки.
Но ведь сделать Ваше первое, не верное, предположение Вы не просили ни чьей помощи. Что случилось? Я и так Вам все что можно разжевал, проглотите уж?
Понятно, по сути как это часто бывает обьяснений недождемся, сплошной тролизм.
In vino Veritas!
zVlad
Уже с Приветом
Posts: 15420
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

iDesperado wrote:
zVlad wrote: Т.е. Вы сами не можете объяснить что следует из арифметического факта деления одного числа на другое в ответом ~ 8 миллионов. Ладно оставим это.
для тех кто не понял, более 4Gb на 8М локов взято из документа SAP, а именно из фразы "Each lock requires about 540 bytes. For example, if the size of the IRLM private address space is 4 GB, IRLM can hold up to approximately 7900000 locks.."
7900000 * 540 байт (для версии v9.1) = 4.1Gb вполне сходиться с данными документации по db2/zOS v9.1:
You can estimate the IRLM control block structure at 540 bytes per lock. IRLM no longer supports placing locks in ECSA. All IRLM locks are now placed in the IRLM private address space.
http://publib.boulder.ibm.com/infocente ... stgreq.htm
Против арифметики не было никаких возражений. Что дальше то? Сколько локов на самом деле требуется и от чего это зависит - вот о чем можно было бы поговорить, а мы застряли на том что память для МФ стоит сумашедшие деньги.

Return to “Вопросы и новости IT”