JP Morgan Chase Oracle database outage

zVlad
Уже с Приветом
Posts: 15421
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:....У нас - ни в чем :radio%:
У нас все во всем разобрались и все поняли уже :umnik1:
Вы вот это называете разобрались:
crypto5 wrote:
iDesperado wrote:.....
выглядит, что FOR UPDATE поставит U блокировку которая совместима с S блокировкой которую будет ставить SKIP LOCKED. т.е. SKIP LOCKED из db2/zOS считает залоченные данные.
UPD: а может и IX, я не понимаю этих таблиц. блин ну почему нельзя по человечески хотя бы базовые вещи описать ?
Вот тут написано что можед быть U: http://publib.boulder.ibm.com/infocente ... lkwhat.htm, если я не ошибаюсь.
Понятно что я смотрю только CS изоляцию.
?

Т.е. вы с iDesperado теперь оба считаете что SKIP LOCKED, имеющее смысл только c СS или RS, прочитает модифицированные записи? Так что ли?
Нет, точный ответ именно на этот вопрос я не знаю.
А вас почему это интересует?
Мне просто интересно изучать особенности человеческого восприятия действительности. Спасибо за интересный материал.
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:....У нас - ни в чем :radio%:
У нас все во всем разобрались и все поняли уже :umnik1:
Вы вот это называете разобрались:
crypto5 wrote: Вот тут написано что можед быть U: http://publib.boulder.ibm.com/infocente ... lkwhat.htm, если я не ошибаюсь.
Понятно что я смотрю только CS изоляцию.
?

Т.е. вы с iDesperado теперь оба считаете что SKIP LOCKED, имеющее смысл только c СS или RS, прочитает модифицированные записи? Так что ли?
Нет, точный ответ именно на этот вопрос я не знаю.
А вас почему это интересует?
Мне просто интересно изучать особенности человеческого восприятия действительности. Спасибо за интересный материал.
Я думаю что посмотрев на себя со стороны вы узнаете тоже много нового в этом направлении :fr:
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 »

Я бы чувствовал себя неуютно сидя на Db2 или Мф - не с технической точки зрения а с точки зрения мобильности. Мест где можно работать всего несколько... Это неважно гуру, который работает 20 лет на одном месте и купил рядом дом. А молодым... Я кстати тоже не реже раза в 4 года меняю работу.

Кроме того, это гарантированно работа в больших компаниях. Я работал в Siemens... У меня нет желания больше работать в фирмах >50-100 человек. ПОтому что если небольшая фирма может набрать талантливых - более или менее - то большая фирма ориентирована на обычных людей. В итоге всегда получается нечто вроде cоветского НИИ.

Вопрос zVlad: а можно посмотреть screenshot того как работает какой нибудь select и выбираются результаты? Для все баз видел, для DB2 не видел...
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: JP Morgan Chase Oracle database outage

Post by iDesperado »

zVlad wrote: Т.е. вы с iDesperado теперь оба считаете что SKIP LOCKED, имеющее смысл только c СS или RS, прочитает модифицированные записи? Так что ли?
именно. на уровне CS
SELECT * FROM Tickets WHERE TicketID=@TicketID .... FOR UPDATE
поставит блокировку U, которую
SELECT * FROM Tickets WHERE <condition> SKIP LOCKED DATA

из конкурирующей транзакции без всяких проблем прочитает, т.к. S накладываемая этим запросом совместима с U блокировкой. со всеми вытекающими. это следует из документации.
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

Dmitry67 wrote:Я бы чувствовал себя неуютно сидя на Db2 или Мф - не с технической точки зрения а с точки зрения мобильности. Мест где можно работать всего несколько... Это неважно гуру, который работает 20 лет на одном месте и купил рядом дом. А молодым... Я кстати тоже не реже раза в 4 года меняю работу.

Кроме того, это гарантированно работа в больших компаниях. Я работал в Siemens... У меня нет желания больше работать в фирмах >50-100 человек. ПОтому что если небольшая фирма может набрать талантливых - более или менее - то большая фирма ориентирована на обычных людей. В итоге всегда получается нечто вроде cоветского НИИ.

Вопрос zVlad: а можно посмотреть screenshot того как работает какой нибудь select и выбираются результаты? Для все баз видел, для DB2 не видел...

Я кстати радикально поменял специализацию за последние 10 лет два раза. Сначал я стал DB2 DBA просто потому что у меня был хороший бэкграунд на МФ и интервьюверы были славяне (венгр и чех). И пощти 5 лет назад я из DB2 DBA перквалифицировался в zOS систем программер. А сейчас, кстати, собираюсь осваивать ранее непаханое мной поле под названием CICS. Я уж не говорю о WebSphere, NetView, System Automation, Omegamon и т.д.

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

Re: JP Morgan Chase Oracle database outage

Post by crypto5 »

iDesperado wrote:
zVlad wrote: Т.е. вы с iDesperado теперь оба считаете что SKIP LOCKED, имеющее смысл только c СS или RS, прочитает модифицированные записи? Так что ли?
именно. на уровне CS
SELECT * FROM Tickets WHERE TicketID=@TicketID .... FOR UPDATE
поставит блокировку U, которую
SELECT * FROM Tickets WHERE <condition> SKIP LOCKED DATA

из конкурирующей транзакции без всяких проблем прочитает, т.к. S накладываемая этим запросом совместима с U блокировкой. со всеми вытекающими. это следует из документации.
Ну так это не модифицированные данные. Когда данные промодифицируются на них наложится эксклюзивный лок, который ни с какими другими локами не совместим.
In vino Veritas!
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: JP Morgan Chase Oracle database outage

Post by iDesperado »

crypto5 wrote: Ну так это не модифицированные данные. Когда данные промодифицируются на них наложится эксклюзивный лок, который ни с какими другими локами не совместим.
основная его идея с помощью FOR UPDATE бронировать, а с помощью SKIP LOCKED отбрасывать забронированное. после модификации он предлагал тут же завершать транзакцию, т.е. экслюзивный лок проживет доли секунды и со SKIP LOCKED явно не пересечется.
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

iDesperado wrote:
zVlad wrote: Т.е. вы с iDesperado теперь оба считаете что SKIP LOCKED, имеющее смысл только c СS или RS, прочитает модифицированные записи? Так что ли?
именно. на уровне CS
SELECT * FROM Tickets WHERE TicketID=@TicketID .... FOR UPDATE
поставит блокировку U, которую
SELECT * FROM Tickets WHERE <condition> SKIP LOCKED DATA

из конкурирующей транзакции без всяких проблем прочитает, т.к. S накладываемая этим запросом совместима с U блокировкой. со всеми вытекающими. это следует из документации.
Вы наверняка знаете что U блокировка сделана совместимой с S чтобы уменьшить количество дедлоков. Но, в DB2 for zOS, U блокировка не дает права изменять данные, SELECT .... FOR UPDATE вовсе не предполает изменение всех строк резалт сета. Может и ни одна запись не будет изменена этим стэйтментом. Но на те, которые будут изменены будет наложена X блокировка со всеми вытекающими последствиями.
Более очевидный и доходчивый пример для иллюстрации SKIP LOCKED DATA - это чистый UPDATE, или DELETE стэйтменты.
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

Кстати, пока форум лежал, я пошуршал в интернете и обнаружил что за почти пять лет с тех пор как я перестал профессионально заниматься DB2 многое изменилось. Вот две ссылки с короткими сообщениями, где кроме SKIP LOCKED DATA рассматриватся еще один механизм работы с локами, очень напоминающий "локические" локи против которых я тут бьюсь который день:
Another DB2 9 improvement is optimistic locking support. With optimistic locking, locks are obtained immediately before a read and then released. Update locks are obtained immediately before an update operation and held until the end of the transaction. Optimistic locking uses the RID and a row change timestamp to test whether data has been changed by another transaction since the last read operation. A row change timestamp, new DB2 9, is an automatically generated timestamp column, defined as follows:

NOT NULL [GENERATED ALWAYS | BY DEFAULT]
FOR EACH ROW ON UPDATE
AS ROW CHANGE TIMESTAMP

http://www.dbmag.intelligententerprise. ... =201200471

http://www.craigsmullins.com/zjdp_031.htm
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

iDesperado wrote:
crypto5 wrote: Ну так это не модифицированные данные. Когда данные промодифицируются на них наложится эксклюзивный лок, который ни с какими другими локами не совместим.
основная его идея с помощью FOR UPDATE бронировать, а с помощью SKIP LOCKED отбрасывать забронированное. после модификации он предлагал тут же завершать транзакцию, т.е. экслюзивный лок проживет доли секунды и со SKIP LOCKED явно не пересечется.
Если Вы имеете в виду вот это описание:
zVlad wrote:........
1. Делаем раз (выбираем "свободные" тикеты на запрошенный рейс):

Code: Select all

SELECT * FROM Tickets WHERE <condition> SKIP LOCKED DATA
2. Даем клиенту выбрать интересующий его тикет, и выдаем в ответ на его выбор:

Code: Select all

SELECT * FROM Tickets WHERE TicketID=@TicketID .... FOR UPDATE
RDBMS накладывает 1 (один) лок на одну строку.

3. Coобщаем клиенту что у него 15 минут чтобы купить понравившийся ему билет и запускаем счетчик (по времени). Клиент принимает решение. Мы завершаем UPDATE и заканчиваем транзакцию. Локи в количестве 1 (одна) штука удаляется.
....
..., то не надо принимать его "близко к сердцу". Я не практикующий программист, как Вы уже наверняка поняли, я лишь бывший DB2 DBA, и как выяснилось с устревшими представлениями (я вместе с вами узнал про SKIP LOCKED DATA пару дней назад). Возможно бронировать надо просто UPDATE.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: JP Morgan Chase Oracle database outage

Post by crypto5 »

iDesperado wrote:
crypto5 wrote: Ну так это не модифицированные данные. Когда данные промодифицируются на них наложится эксклюзивный лок, который ни с какими другими локами не совместим.
основная его идея с помощью FOR UPDATE бронировать, а с помощью SKIP LOCKED отбрасывать забронированное. после модификации он предлагал тут же завершать транзакцию, т.е. экслюзивный лок проживет доли секунды и со SKIP LOCKED явно не пересечется.
Я согласен что в своем первом примере с select for update Влад был не прав, но в данной ветке обсуждается уже другой пример.
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 »

И все же, может кто нибудь выложить screenshot с select и результатом - не важно каким - просто интересно как 'выглядит рабочее' место DBA DB2
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

Dmitry67 wrote:И все же, может кто нибудь выложить screenshot с select и результатом - не важно каким - просто интересно как 'выглядит рабочее' место DBA DB2
Интструментарий DB2 DBA на МФ это не SQL (хотя и им пользуемся конечно), а главным образом утилиты (реорганизации, бэкапа, рестор, лоад, анлоад, и т.п.) и команды DB2.
Интерфэйс - это терминал IBM 3270, хотя есть не мало GUI тулсов из которых я лично пользовался только Visual Explain (изначально написанный в Visual Age for Smalltalk несколько лет назад переписанный на Java).
Утилиты выполняются как батч задания. Хаускипинг утилиты выполняются по графику, автоматически. У нас есть домашняя разработка выполнения реоргов ночью в автоматическом режиме по заданиям составленным админом в дневное время. Никакого интерфейса практически нет. Текстовым редактором создается задание, представляющее из себя список объектов для реорга и дополнительных, необязательных параметров. Затем выполняется программа (опять же как бат задание), которая делает разнообразные вычисления и готовит развернутое задание сохраняемое в базе данных. Ночью по графику запускается программа (батч) используящая данные созданные предыдущей программой для запуска утилит реорг (батч задания) и управлет их выполнением, а именно анализирует завершение утилит и "подчищает" за ними если надо.
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 »

Хорошо, а если надо вам говорят - а правда что такая то табличка содержит 100 записей и все 2008 года,
то в какой утилите вы будете это смотреть? Где напишете select * from TAB ?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: JP Morgan Chase Oracle database outage

Post by zVlad »

Dmitry67 wrote:Хорошо, а если надо вам говорят - а правда что такая то табличка содержит 100 записей и все 2008 года,
то в какой утилите вы будете это смотреть? Где напишете select * from TAB ?
Кто спросит? (подсказка - у нас есть еще программисты)

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