2. Вот первый честный ответ

Где про такое можно почитать?iDesperado wrote:думаю не увидит, WHERE <condition> SKIP LOCKED DATA будет пытаться ставить шаред лок (или лок намерений, но тут не суть важно), который не совместим с апдейт локом. поэтому SKIP LOCKED DATA пропустит все, что залочено запросом FOR UPDATEcrypto5 wrote: Есть мнение что когда зайдет следующий клиент и сделает запрос:то он увидит залоченный билет, потому что операция select чтения является compatible с локом записи, который вы поставили используя select ... for update.Code: Select all
SELECT * FROM Tickets WHERE <condition> SKIP LOCKED DATA
по идеи тут:crypto5 wrote: Где про такое можно почитать?
Никак. В stateless OLTP приложениях борьба идет за сотые доли секунды, а за длинный лок разработчика убивают.Dmitry67 wrote:а как длинный лок (понятно что решение безумное) держат в IIS или иной системе?
точно так же как за создание бутылочного горлышка из единой записи итога. но зато у zVlad 30 лет опытаsp123 wrote: Никак. В stateless OLTP приложениях борьба идет за сотые доли секунды, а за длинный лок разработчика убивают.
Мы когда в Дойче данные лили - то вообще через промежуточный буфер это забрасывали и через партиции потом буфер чистили. И какие там могут быть локи, когда по 4-5 тысяч записей в секунду прокачивало.sp123 wrote: В stateless OLTP приложениях борьба идет за сотые доли секунды, а за длинный лок разработчика убивают.
Ну, справедливсти ради, zVlad - сисадмин и DBA в традиционной enterprise application, а не архитектор. Поэтому об особенностях разработки веб-приложений может не знать. Точно так же, как девелопера нельзя подпускать к администрированию production железяки, хотя у него тоже есть кое-какой опытiDesperado wrote:точно так же как за создание бутылочного горлышка из единой записи итога. но зато у zVlad 30 лет опытаsp123 wrote: Никак. В stateless OLTP приложениях борьба идет за сотые доли секунды, а за длинный лок разработчика убивают.
Вот тут написано что можед быть U: http://publib.boulder.ibm.com/infocente ... lkwhat.htm, если я не ошибаюсь.iDesperado wrote:в чуднОй документации разобраться тяжело но судя по этому
When FOR UPDATE is used, FETCH operations referencing the cursor acquire U or X locks rather than S locks when:
* The isolation level of the statement is cursor stability.
* The isolation level of the statement is repeatable read or read stability and field U LOCK FOR RR/RS on installation panel DSNTIPI is set to get U locks.
* |The isolation level of the statement is repeatable |read or read stability and USE AND KEEP EXCLUSIVE LOCKS or USE AND |KEEP UPDATE LOCKS is specified in the SQL statement, an X lock or |a U lock, respectively, is acquired at fetch time.
http://publib.boulder.ibm.com/infocente ... ements.htm
и вот этому
http://publib.boulder.ibm.com/infocente ... xf6a19.htm
(раздел SELECT with FOR UPDATE OF)
выглядит, что FOR UPDATE поставит U блокировку которая совместима с S блокировкой которую будет ставить SKIP LOCKED. т.е. SKIP LOCKED из db2/zOS считает залоченные данные.
UPD: а может и IX, я не понимаю этих таблиц. блин ну почему нельзя по человечески хотя бы базовые вещи описать ?
ну я вроде туда-же смотрел. если смотреть на красненькую, то U, но мне теперь больше кажется, что следует зелененькие смотреть.crypto5 wrote: Вот тут написано что можед быть U: http://publib.boulder.ibm.com/infocente ... lkwhat.htm, если я не ошибаюсь.
Понятно что я смотрю только CS изоляцию.
Нам нужна последняя колонка. Та которую вы смотрите - для блокировки всей таблицы, опять же если я правильно понимаю/.iDesperado wrote:ну я вроде туда-же смотрел. если смотреть на красненькую, то U, но мне теперь больше кажется, что следует зелененькие смотреть.crypto5 wrote: Вот тут написано что можед быть U: http://publib.boulder.ibm.com/infocente ... lkwhat.htm, если я не ошибаюсь.
Понятно что я смотрю только CS изоляцию.
это к вопросу о хорошести документации, для db2/zOS так и не смог найти таблицу совместимости блокировок.
да, наверно вы правы, последняя. тады ойcrypto5 wrote: Нам нужна последняя колонка. Та которую вы смотрите - для блокировки всей таблицы, опять же если я правильно понимаю/.
Мифы о МФ распростроняет Оракл и Микрософт. Некоторое время назад шагу невозможно было ступить чтобы не увидеть какой-нибудь миф. А молодеж, как попугаи, за ними эти мифы повторяют. При этом усилий убедить в том что это миф требуется на порядок больше чем внедрить.sp123 wrote:Тут немного не согласен. Никто обычно не сочиняет мифов о неуловимом Джо, а для большинства присутствующих DB2 и MF - это как раз тот самый Джо и есть. Кто постарше, тот свой выбор сделал уже давно, и ему данная платформа глубоко параллельна. Ну работает оно где-то там, ну и бог с ним. Для нового поколения - тем более, им важнее попасть в свежую струю, чтобы было кул, и DB2 в это ну никак не вписывается. В-общем, наличие каких-то мифов о DB2 - это и есть самый главный мифzVlad wrote:Моя цель лишь поправлять наиболее горячие головы здесь на форуме, развеивая мифы о МФ и ДБ2 в частности. Увы в этой область очень высок уровень мифотворчество..
P.S. На этой неделе интервьюировал одного перца. У перца последний проект был на связке MF - Oracle. Ребята выгружали из MF данные в виде плоских файлов, грузили их в Oracle, там ваяли какой-то back-end и front-end, данные усиленно массировали и отправляли назад. Я ему говорю - все это интересно, но ведь можно было бы все то же самое сделать на самом MF, там у вас и DB2 есть, и REXX, и вообще много всего, на хрена такой overhead? А он грит - так все проще и быстрее...