То есть у вас будет разное время блокировки для собственно блокирования билета и проверки заблокирован ли он. В дб2 можно выставлять в программе время лока и/или таймаута транзакции?zVlad wrote:2. Пару секунд, секунду, пять секунд. Между нулем и 60 секундами примерно шестьдесят значений. Выбирайте любое на Ваш вкус.crypto5 wrote:.....
1. А я в н-тый раз повторяю - я не хочу дожидаться таймаута.Cамое простое что могло и должно было бы придти Вам в голову - это то что сам таймаут уже с очевидностью говорит что ресурс занят, а сопровождающая это событие информация дает представление о том кем он занят![]()
2. Ну и какой таймаут вы выставите в примере с билетами?Вы также уперлись в то что таймаут одна минута. Таймаут может быть любим на самом деле, зависит от задачи которая решается, и если это ОЛТП, то таймаут естественно будет установлен меньше, а если это WH то больше.![]()
....
JP Morgan Chase Oracle database outage
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
In vino Veritas!
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: JP Morgan Chase Oracle database outage
А единственное решение - логические локиzVlad wrote:Я ж сдался уже и приготовился анализировать ваши решения.Dmitry67 wrote:О локах.zVlad wrote:Дима, могу я Вас попросить приводить мои высказывания в достаточном объеме чтобы было понятно к чему вырванный Вами фрагмент относится. Ведь Вы же не станете утверждать ято я так сказал вообще, безотносительно чего-либо. О какой проблеме шла речь?Dmitry67 wrote:.....
Однако заявлять (притом с пафосом) 'на МФ/DB2 такой проблемы даже не возникает' ....
....
Вы так и не привели решения.
Их миллионы разных вариантов но все они примерно одни и те же, различаются меловчами и названиями полей
Один вариант тут показывает Zombie
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
в оракле можно писать такcrypto5 wrote: То есть у вас будет разное время блокировки для собственно блокирования билета и проверки заблокирован ли он. В дб2 можно выставлять в программе время лока и/или таймаута транзакции?
select .. for update wait 60
или
select .. for update nowait
думаю в db2, что-то подобное есть.
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
Т.е. Вы сами не можете объяснить что следует из арифметического факта деления одного числа на другое в ответом ~ 8 миллионов. Ладно оставим это.iDesperado wrote:из документа SAP, я уже цитировал выше "the IRLM private address space is 4 GB, IRLM can hold up to approximately 7900000 locks."zVlad wrote: Хорошо, а откуда взялись 8М локов? И о чем это говорит?это не моя цитата, это цитата из ссылки приведенной вами ведущей на документацию db2/zOS v7zVlad wrote: Вот Ваша цитата:
как я понял в чудесной документации IBM вы не нашли описания IRLM из v9 и поэтому дали ссылку на v7
Я преводил там две ссылки. Одну из v9 другую из версии v7. Там же рассуждал о том что были времена 31 битовой организации адресации и 64 битовой сейчас. v7 был примером ограничений памяти с 31 битовой адресации, а v9 (документаци по v7, v8 и v9 находятся на одной странице: http://www-01.ibm.com/support/docview.w ... wg27011660 - ее не надо искать) с 64 битовой.
Ваши цитата, да, состоит из цитаты из дока, и из не понятно к чему относящимся взвизгом "читаю те же самые цифры:", хотя цифры (числа) как мы выясняли очень разные.
-
- Уже с Приветом
- Posts: 8881
- Joined: 17 Jun 2003 04:41
Re: JP Morgan Chase Oracle database outage
1,2. В самом простом варианте - да. Кто первый нажал, того и тапки. В зависимости от требований к системе правила можно менять.zVlad wrote:1. Поскольку, как я понимаю, на момент выборки билетов Вы ничего не блокируете, ни физически ни логически, то когда Ваш клиент кликнул на понравившийся ему билет этот билет запросто может оказаться уже логически заблокирован другим, более шустрым клиентом. И мы переходим к пункту 2.
2. И что дальше? Снова предложите клиенту выбирать билет из списка якобы доступных билетов?
3. Транзакцию завершили, клиент тоже ушел из системы (не нужен ему стал билет), а билет остается заблокирован. На 30 минут?
Да при такой организации легко делать то что Вы перечислили, но возникает вопрос, а зачем и кто и когда будет делать эти элементарные вещи. Вы хотите посадить человека-надсмотрщика над Вашей системой?
3. Клиент ушел из системы сразу после запроса. Клиент сидит дома, а HTTP - простой протокол, и сессии к нему искусственно прикручивается.
Да, билет остался заблокирован. Или можно сделать что билет разблокируется при Logout. И один пользователь может заблокировать много билетов. Или до 5 билетов. Никакого надсмотрщика для этого не надо. И если билет 24 часа блокируется, не надо транзакцию на сервере подвешенной 24 часа держать.
Именно что логические блокировки позволяют решать все эти проблемы гибко и автоматизированно, а не "как-то" как случилось быть зашитым в систему.
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
iDesperado wrote:в оракле можно писать такcrypto5 wrote: То есть у вас будет разное время блокировки для собственно блокирования билета и проверки заблокирован ли он. В дб2 можно выставлять в программе время лока и/или таймаута транзакции?
select .. for update wait 60
или
select .. for update nowait
думаю в db2, что-то подобное есть.
Искал, тоже так думал, но вместо этого нашел SKIP LOCKED DATA. Подумав понял что это даже лучше для ДБ2 по крайней мере. В самом деле - чего ждать то? да и сколько ждать? Дело еще в том что если запрос выполняется с уровнем изоляции cursor stability то что ж ждать на каждой залоченой строке - не годится явно.
Для Оракл, видимо, лучше wait.
А что собственно предполагается в Оракл ждать в этой конструкции? Уж не освобождения ли залоченного ресурса? А что произойдет в случае nowait?
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
Ну а вот так понятней - сопоставьте выделенное мной в Вашем описании и из дока.crypto5 wrote:А можете обьяснить, чего конкретно я не понял? Потому что то что вы написали совершенно не противоречит моему примеру.zVlad wrote:Вы неверно поняли как это работает. То как Вы описали возможно давно с уровнем изоляции UR.crypto5 wrote:Эта штука дает разницу только если если лок incompatible, то есть в нашем воркфлоу с билетами юзер выбирает билет, и блокирует его на запись. ПОсле этого другой юзер заходит, и делает select ... SKIP LOCKED DATA и заблокированный билет ему показывается! А опаньки наступает уже когда он хочет его проапдейтить.ДБ2 v8 - SKIP LOCKED DATA![]()
....
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.
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
Вы забыли выделить что скипнутыми будут только строки залоченные с помощью incompatible lockszVlad wrote:Ну а вот так понятней - сопоставьте выделенное мной в Вашем описании и из дока.crypto5 wrote:А можете обьяснить, чего конкретно я не понял? Потому что то что вы написали совершенно не противоречит моему примеру.zVlad wrote:Вы неверно поняли как это работает. То как Вы описали возможно давно с уровнем изоляции UR.crypto5 wrote:Эта штука дает разницу только если если лок incompatible, то есть в нашем воркфлоу с билетами юзер выбирает билет, и блокирует его на запись. ПОсле этого другой юзер заходит, и делает select ... SKIP LOCKED DATA и заблокированный билет ему показывается! А опаньки наступает уже когда он хочет его проапдейтить.ДБ2 v8 - SKIP LOCKED DATA![]()
....
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.
In vino Veritas!
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
И что это меняет? Перечитайте мое предложение в середины цитаты по поводу UR.crypto5 wrote:Вы забыли выделить что скипнутыми будут только строки залоченные с помощью incompatible lockszVlad wrote:Ну а вот так понятней - сопоставьте выделенное мной в Вашем описании и из дока.crypto5 wrote:А можете обьяснить, чего конкретно я не понял? Потому что то что вы написали совершенно не противоречит моему примеру.zVlad wrote:Вы неверно поняли как это работает. То как Вы описали возможно давно с уровнем изоляции UR.crypto5 wrote: Эта штука дает разницу только если если лок incompatible, то есть в нашем воркфлоу с билетами юзер выбирает билет, и блокирует его на запись. ПОсле этого другой юзер заходит, и делает select ... SKIP LOCKED DATA и заблокированный билет ему показывается! А опаньки наступает уже когда он хочет его проапдейтить.![]()
....
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.
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
Вы можете не ходя вокруг да около сказать какой шаг в моем примере неправилен и почему? Не люблю знаете ли играть в загадки.zVlad wrote:И что это меняет? Перечитайте мое предложение в середины цитаты по поводу UR.crypto5 wrote:Вы забыли выделить что скипнутыми будут только строки залоченные с помощью incompatible lockszVlad wrote:Ну а вот так понятней - сопоставьте выделенное мной в Вашем описании и из дока.crypto5 wrote:А можете обьяснить, чего конкретно я не понял? Потому что то что вы написали совершенно не противоречит моему примеру.zVlad wrote: Вы неверно поняли как это работает. То как Вы описали возможно давно с уровнем изоляции UR.
In vino Veritas!
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
для тех кто не понял, более 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.."zVlad wrote: Т.е. Вы сами не можете объяснить что следует из арифметического факта деления одного числа на другое в ответом ~ 8 миллионов. Ладно оставим это.
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
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
подождать 60 секунд пока строка разлочится, на 61 секунде выдаст ORA-xxxx resource busyzVlad wrote: А что собственно предполагается в Оракл ждать в этой конструкции? Уж не освобождения ли залоченного ресурса? А что произойдет в случае nowait?
при nowait выдаст сразу ORA-xxxx resource busy
ЗЫ. sckip locked в оракле тоже есть, но не докумкентирован, а значит не рекомендован к использованию. инсайдеры говорят Advanced Quenes используют такую конструкцию.
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
Но ведь сделать Ваше первое, не верное, предположение Вы не просили ни чьей помощи. Что случилось? Я и так Вам все что можно разжевал, проглотите уж?crypto5 wrote:....Вы можете не ходя вокруг да около сказать какой шаг в моем примере неправилен и почему? Не люблю знаете ли играть в загадки.
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
Понятно, по сути как это часто бывает обьяснений недождемся, сплошной тролизм.zVlad wrote:Но ведь сделать Ваше первое, не верное, предположение Вы не просили ни чьей помощи. Что случилось? Я и так Вам все что можно разжевал, проглотите уж?crypto5 wrote:....Вы можете не ходя вокруг да около сказать какой шаг в моем примере неправилен и почему? Не люблю знаете ли играть в загадки.
In vino Veritas!
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
Против арифметики не было никаких возражений. Что дальше то? Сколько локов на самом деле требуется и от чего это зависит - вот о чем можно было бы поговорить, а мы застряли на том что память для МФ стоит сумашедшие деньги.iDesperado wrote:для тех кто не понял, более 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.."zVlad wrote: Т.е. Вы сами не можете объяснить что следует из арифметического факта деления одного числа на другое в ответом ~ 8 миллионов. Ладно оставим это.
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