powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Понимание результатов fb_lock_print
25 сообщений из 119, страница 1 из 5
Понимание результатов fb_lock_print
    #38111426
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Хотелось бы понять, что можно получить с помощью этого инструмента.
Начну со следующего теста.

Дано:
Код: plaintext
1.
2.
3.
4.
C:\MIX\firebird\fb25>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 't1.fdb'; commit;
SQL> create table t(id int primary key, f01 int); commit;
В отдельном окне запускаю:
Код: plaintext
fb_lock_print -i 1 9999 -d T1.FDB | mtee fblockprint.log
(будет с интервалом 1 сек выводить в лог всю инфу из лок-таблицы, и делать это на протяжении 9999 секунд)

Далее:

Код: plaintext
1.
session #1
SQL> insert into t values(1,1); -- см ниже в логе fb_lock_print'a: "insert_1"

Запускаю еще один isql:
Код: plaintext
1.
2.
session #2
SQL> insert into t values(1,1); -- см ниже в логе fb_lock_print'a: "insert_2"
-- бесконечно ждёт, т.к. открыл транзакцию в default-режиме wait. Даю ему выждать около 40 сек.

Код: plaintext
1.
2.
3.
4.
5.
6.
session #1
SQL> commit;

session #2
Statement failed, SQLSTATE = 23000
violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "T"
Останавливаю fb_lock_print и смотрю в его лог (нули удалены для улучшения читабельности):
20:06:19 acquire/sacqwait/s%acqwaitacqrtry/srtrysuc/senqueue/sconvert/sdowngrd/sdequeue/sreadata/swrtdata/sqrydata/sdblop/srellop/spagelop/stranlop/srelxlop/sidxxlop/smisclop/swait/sreject/stimeout/sblckast/swakeup/sdlkscan/sdeadlck/s20:06:2020:06:2120:06:2220:06:2320:06:2420:06:2520:06:2620:06:27 < insert #1 19199123111941212220:06:2820:06:2920:06:3020:06:3120:06:3220:06:3320:06:3420:06:3520:06:36 < insert in #2 1919913211831413320:06:3720:06:3820:06:3920:06:4020:06:4120:06:4220:06:4320:06:4420:06:4520:06:4611120:06:4720:06:4820:06:4920:06:5020:06:5120:06:5220:06:5320:06:5420:06:5520:06:5611120:06:5720:06:5820:06:5920:07:0020:07:0120:07:0220:07:0320:07:0420:07:0520:07:0611120:07:0720:07:0820:07:0920:07:1020:07:1120:07:1220:07:1320:07:1420:07:1520:07:1611120:07:1720:07:1820:07:19 < commit in #1 1 1313491651120:07:2020:07:2120:07:2220:07:2320:07:2420:07:2520:07:2620:07:2720:07:2820:07:2920:07:3020:07:3120:07:3220:07:3320:07:34
В логе отчётливо видно, что каждые 10 сек (20:06:46, 20:06:56 etc) идёт некий "опрос" чего-то там внутри.

Если подключить третье isql-окно и в нём также попытаться ввести дубликат первичного ключа, то лог покажет вместо единиц двойки (две ожидающих транзакции ?), но в других ячейках будут значения, отличающиеся в разную сторону от случая с двумя окнами:
20:18:31acquire/sacqwait/s%acqwaitacqrtry/srtrysuc/senqueue/sconvert/sdowngrd/sdequeue/sreadata/swrtdata/sqrydata/sdblop/srellop/spagelop/stranlop/srelxlop/sidxxlop/smisclop/swait/sreject/stimeout/sblckast/swakeup/sdlkscan/sdeadlck/s20:18:3220:18:3320:18:3420:18:3520:18:36 < insert in #1 23231133211151313320:18:3720:18:3820:18:3920:18:4020:18:4120:18:4220:18:4320:18:4420:18:4520:18:4620:18:4720:18:4820:18:4920:18:5020:18:5120:18:5220:18:5320:18:5420:18:5520:18:5620:18:5720:18:5820:18:5920:19:00 < insert in #2 111141341413320:19:0120:19:02 < insert in #3 515142311132155413420:19:0320:19:0420:19:0520:19:0620:19:0720:19:0820:19:0920:19:1020:19:1120:19:1222220:19:1320:19:1420:19:1520:19:1620:19:1720:19:1820:19:1920:19:2020:19:2120:19:2222220:19:2320:19:2420:19:2520:19:2620:19:2720:19:2820:19:2920:19:3020:19:3120:19:3222220:19:3320:19:3420:19:3520:19:3620:19:3720:19:3820:19:3920:19:4020:19:4120:19:4222220:19:4320:19:4420:19:4520:19:4620:19:4720:19:4820:19:4920:19:5020:19:5120:19:5222220:19:5320:19:5420:19:5520:19:5620:19:5720:19:5820:19:5920:20:0020:20:01 < commit in #1 42819421536121281626920:20:0220:20:0320:20:0420:20:05
ВОПРОСЫ.
1) "Кто" проверяет занятый ресурс 1 раз в 10 сек ?
2) Если проверки идут только 1 разв 10 сек, то почему после commit'a и высвобождения ресурса все ожидающие его транзакции узнают об этом тотчас ?
3) Где можно почитать описание столбцов этого лога ?
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38111433
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидВОПРОСЫ.
RTFM firebird.conf на предмет DeadlockTimeout.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38111442
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТаблоидВОПРОСЫ.
RTFM firebird.conf на предмет DeadlockTimeout.А, точно, псип.
Так. Поставил я 5 сек, рестартанул ФБ. Вижу, что проверки действительно стали чаще.
Повторил эксперимент с четырьмя окнами (одно ввело запись без коммита, остальные три - пытаются ввести дубли в ПК и ждут).
Затем стал срубать все ждущие isql-окна (Ctrl-Break). Вижу, однако, что опрос лок-менеджера продолжает идти - т.е. цифры "3" так и продолжают появляться в логе каждые 5 сек. До тех пор, пока я не срубил первое окно (которое вводило запись).
20:47:44acquire/sacqwait/s%acqwaitacqrtry/srtrysuc/senqueue/sconvert/sdowngrd/sdequeue/sreadata/swrtdata/sqrydata/sdblop/srellop/spagelop/stranlop/srelxlop/sidxxlop/smisclop/swait/sreject/stimeout/sblckast/swakeup/sdlkscan/sdeadlck/s20:47:4520:47:4620:47:4720:47:4820:47:4920:47:5020:47:5120:47:5220:47:5320:47:5420:47:5520:47:5620:47:57995211143120:47:5820:47:5920:48:0020:48:0120:48:0220:48:0320:48:0420:48:0520:48:0620:48:07525242411132155514420:48:0820:48:0920:48:1020:48:1120:48:1211120:48:1320:48:14545442411132155514620:48:1520:48:1620:48:1720:48:1820:48:1922220:48:2020:48:2120:48:2220:48:2320:48:24562356424111321555146220:48:2520:48:2620:48:2720:48:2820:48:2933320:48:3020:48:3120:48:3220:48:3320:48:3433320:48:3520:48:3620:48:3720:48:3820:48:3933320:48:4020:48:4120:48:4220:48:4320:48:4433320:48:4520:48:4620:48:4720:48:4820:48:4933320:48:5020:48:5120:48:5220:48:5320:48:5433320:48:5520:48:5620:48:5720:48:5820:48:5933320:49:0020:49:0120:49:0220:49:0320:49:0433320:49:0520:49:0620:49:0720:49:0820:49:0933320:49:1020:49:1120:49:1220:49:1320:49:1433320:49:1520:49:1620:49:1720:49:1820:49:1933320:49:2020:49:2120:49:2220:49:2320:49:2433320:49:2520:49:2620:49:2720:49:2820:49:2933320:49:3020:49:3120:49:3220:49:3320:49:3433320:49:3520:49:3620:49:3720:49:3820:49:3933320:49:4020:49:4120:49:4220:49:4320:49:4431333320:49:4520:49:4620:49:4720:49:4820:49:49437235437328113644323132828136122320:49:5020:49:5120:49:5220:49:5320:49:5420:49:5520:49:5620:49:5720:49:5820:49:59
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38111661
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЗатем стал срубать все ждущие isql-окна (Ctrl-Break)
думаю, что замена локального коннекта на локалхост и/или использование ctrl-c вместо ctrl-break привнесут разницу. И таки да, тебе об этом уже говорили, причем по обоим пунктам.
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38111972
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrдумаю, что замена локального коннекта на локалхост и/или использование ctrl-c вместо ctrl-break привнесут разницу.При коннектах пяти окон по tcp (и, след-но, ожидании четырёх окон) картина меняется.
Почти каждую секунду в графах acquire/s и acqrtry/s появляются значения: то 1, то 2. При обрубе окон по Ctrl-Break значения в этих графах будут в итоге нулевыми. При коммите и получении сообщений о наружении ПК - также всё сразу в ноль.
12:30:25acquire/sacqwait/s%acqwaitacqrtry/srtrysuc/senqueue/sconvert/sdowngrd/sdequeue/sreadata/swrtdata/sqrydata/sdblop/srellop/spagelop/stranlop/srelxlop/sidxxlop/smisclop/swait/sreject/stimeout/sblckast/swakeup/sdlkscan/sdeadlck/s12:30:2612:30:2712:30:2812:30:2912:30:3012:30:31525242411132155514412:30:3212:30:3312:30:3412:30:35545442411132155514612:30:3612:30:3712:30:3854115442411132155514612:30:3912:30:4011112:30:41171717133112:30:423737232411119124514612:30:4311112:30:4412:30:451112:30:4622212:30:4712:30:481112:30:4912:30:501112:30:511112:30:521112:30:531112:30:5412:30:551112:30:5612:30:572212:30:581112:30:5912:31:001112:31:0112:31:022212:31:031112:31:0412:31:051112:31:0612:31:07215212:31:081112:31:0912:31:101112:31:1112:31:122212:31:131112:31:1412:31:151112:31:1612:31:172212:31:181112:31:1912:31:201112:31:211112:31:2212:31:231112:31:2412:31:251112:31:261112:31:2712:31:281112:31:2912:31:301112:31:3112:31:32215212:31:331112:31:3412:31:351112:31:3612:31:372212:31:381112:31:3912:31:401112:31:4112:31:422212:31:431112:31:4412:31:451112:31:4612:31:472212:31:481112:31:4912:31:501112:31:5112:31:522212:31:531112:31:5412:31:551112:31:561112:31:571112:31:581112:31:5912:32:0013149371314272161513121623512:32:0112:32:0212:32:0312:32:0412:32:0512:32:0612:32:0712:32:08
dimitrИ таки да, тебе об этом уже говорили, причем по обоим пунктам.о чём "об этом" ? и у меня не два было "пункта", а три , главный из которых:автор3) Где можно почитать описание столбцов этого лога ?
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38112002
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидо чём "об этом"?
о том, что:
- ctrl-break не равен ctrl-c и не прерывает текущую операцию на сервере
- сервер обнаруживает отвал клиента (твой ctrl-break) и сразу закрывает коннет только в TCP
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38112517
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вижу (не в первый не в первый раз уже), что когда в логе fb_lock_print -i N M значения равны нулям, то это означает сильный (или полный) ступор.
Создал пустую базу, в ней:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create table log(
  conn_id int default current_connection, 
  gen_ms int,
  dts timestamp default 'now'
);
commit;
create descending index log_gen_ms on log(gen_ms);
create sequence g;
commit;


Создал следующий .sql-скрипт для одновременного его вызова из большого числа isql-окон:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
set term ^;
execute block as
  declare i bigint = 0;
  declare k int;
  declare n int = 500; -- number of loops in autonom transaction
  declare t timestamp;
  declare v_ms int;
  declare v_min_ms int = 500; -- min threshold for log time of obtaining gen_id
begin
  while(1=1) do begin
    in autonomous transaction do begin
      k=1;
      while (k<=n) do begin
         t=cast('now' as timestamp);
         i=gen_id(g,1);
         v_ms = datediff(millisecond from :t to cast('now' as timestamp));
         if (v_ms > v_min_ms and i >=0 ) then
           insert into log(gen_ms) values( :v_ms );
         if (i<0) then exit;
         k=k+1;
      end
    end
    if (i<0) then exit; -- alter sequence g restart with -9999999999;
  end
end^
set term ;^
commit;


Этот скрипт будет в бесконечном цикле дёргать генератор `g`, засекая время этой операции и записывая его в таблицу `log` в случае превышения некоторого порога (например, 500 мс). Кроме того, если на очередной итерации выяснится, что значение генератора оказалось меньше нуля, то будет немедленное прекращение работы скрипта.

Батник для старта произвольного числа isql-окон:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
@echo off
cls
if .%1.==.. goto syntax
for /L %%i in (1,1,%1) do start /min isql 192.168.31.216/3252:gen_test -i tg.sql -c 75 -n
:syntax
echo.
echo Please specify 1st arg as number of isql windows!..
pause
goto end
:end

Перед началом теста запустил в двух окнах накопительное логирование:
1) fb_lock_print -d:
Код: plaintext
1.
2.
3.
4.
5.
6.
db=gen_test
lthacc=lock_table_hdr.log_$(date +'%Y%m%d_%H%M%S')
while :
do
  supertee -t -a -n $lthacc fb_lock_print -d $db
  sleep 1
done
2) fb_lock_print -i 1 M
Код: plaintext
1.
2.
3.
db=gen_test
lthacc=lock_table_mon.log_$(date +'%Y%m%d_%H%M%S')
supertee -n $lthacc fb_lock_print -i 1 86400 -d $db

Затем запустил с трёх машин в общей сложности около 850 isql-окон.
Конечно, в период установки такого числа коннектов (около 3-4 минут) время дёргания генераторов каждым из них могло быть неадекватным. Интересовало, что будет дальше, когда все коннекты уже войдут в работу. Поэтому я дал им промолотить около 3 часов.

Ну, так вот.
Если взять первые 200 строк лога, упорядоченные по убыванию времени получения gen_id, то получим следующий результат:
conn_idgen_msdts880275819:37:181468275819:37:181503275819:37:181106275819:37:181278275819:37:181527275719:37:181017275719:37:181696275719:37:181330275619:37:181260275619:37:18877275519:37:181206275419:37:181615275419:37:181192275419:37:181562275419:37:181044275419:37:181653275319:37:181320275319:37:181646275319:37:18914275319:37:181068275319:37:181418275319:37:181321275319:37:181021275119:37:181517275019:37:181665275019:37:181647275019:37:181650275019:37:181509275019:37:181282275019:37:181501274919:37:181610274919:37:181173274919:37:181266274919:37:181618274919:37:18973274919:37:181092274719:37:181187274619:37:18879274619:37:181432274519:37:181386274519:37:18972274519:37:181074274519:37:181451274519:37:181682274519:37:18925274319:37:181309274319:37:181186274219:37:181410274219:37:181159274119:37:181388274119:37:181415274119:37:181334274119:37:181560274119:37:181004274119:37:181244274019:37:181426274019:37:181012273619:37:181048273519:37:181525273519:37:18988273519:37:18907273519:37:181359273519:37:181664273419:37:181473273419:37:181108273419:37:181486273319:37:181053273319:37:18915273319:37:181105273319:37:181299273319:37:181620273319:37:181663273219:37:181383273219:37:181508272919:37:181547272819:37:181264272619:37:181498272619:37:18942272619:37:181690272619:37:181380272619:37:181283272619:37:181290272619:37:181240272619:37:181289272619:37:181029272519:04:481653272519:04:481367272519:04:481356272519:37:181188272519:37:181293272519:37:181723272519:37:181445272519:37:181097272519:37:181261272519:37:18943272519:37:181605272419:04:481120272419:04:48912272419:04:481672272419:04:481496272419:04:481167272419:04:481322272419:04:481115272419:04:481112272419:04:481350272419:04:481534272319:04:48937272219:37:181582272119:04:481566272119:37:181212272119:37:181172272019:04:481441272019:37:181392272019:37:18897271919:04:481379271919:04:481406271919:04:481203271919:04:481128271919:04:481572271919:37:181629271919:37:181003271919:37:181501271819:04:48980271819:04:481326271619:37:18892271619:37:18935271619:37:181607271519:04:481361271519:04:481473271519:04:481521271519:04:481011271519:37:181712271519:37:181293271419:04:481493271419:04:481358271419:37:181595271419:37:181458271419:37:181020271319:37:181215271219:04:481241271119:04:481603271119:04:481689271119:04:481083271119:37:181427271019:04:481719271019:04:481342271019:04:481025271019:37:181040271019:37:181089270919:04:481701270919:37:181471270919:37:181462270919:37:181354270919:37:181571270819:37:181446270819:37:181007270819:37:181654270819:37:181182270619:04:481681270619:04:481312270619:04:481482270619:37:181052270519:04:481719270519:37:181600270519:37:181485270519:37:181700270419:04:48925270419:04:481261270419:04:481022270419:04:48921270419:37:181310270419:37:181563270419:37:181401270419:37:181357270419:37:181133270419:37:181125270419:37:18989270419:37:181270270419:37:18940270419:37:181606270419:37:18908270419:37:181687270419:37:181531270419:37:181526270419:37:181546270419:37:181301270419:37:18901270419:37:181228270419:37:18882270419:37:181081270419:37:181633270319:04:48915270319:04:481388270319:04:481408270319:04:481644270319:37:181710270319:37:181443270319:37:181306270319:37:181693270319:37:18
Как видно, самые одиозные затыки были в два момента времени: 19:04:48 и 19:37:18 (время на серваке сбито от мск, но это сейчас неважно).

Первому моменту времени в логе fb_lock_print -i 1 N соответствует вот это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
18:25:26 acquire/s acqwait/s  %acqwait acqrtry/s rtrysuc/s enqueue/s convert/s downgrd/s dequeue/s readata/s wrtdata/s qrydata/s   dblop/s  rellop/s pagelop/s tranlop/s relxlop/s idxxlop/s misclop/s    wait/s  reject/s timeout/s blckast/s  wakeup/s dlkscan/s deadlck/s 
...
19:04:44     49975      6893        13     49975         0     18316        18      5804     12820       202         0         0         0       294     26932       606         0         0      3524      4028        18         0      5776      7977         0         0 
19:04:45     53449      7201        13     53449         0     20080        20      5687     14375       229         0         0         0       349     30000       687         0         0      3668      4050        20         0      5664      7879         0         0 
19:04:46     24342      3424        14     24342         0      9259         8      2374      6494       103         0         0         0       166     13689       309         0         0      1700      2000         8         0      2363      3462         0         0 
19:04:47         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0 
19:04:48     38368     14863        38     38368         0     11394       115      6990      3511        33         0         0         0       209     11353        99         0         0      3392      6239       113         0      7030     11546         0         0 
19:04:49     45508      6394        14     45508         0     18258        33      4370     13845       226         0         0         0       222     28568       678         0         0      2894      3448        33         0      4384      6880         0         0 
19:04:50     50442      8473        16     50442         0     18843        52      5651     13374       212         0         0         0       229     28006       636         0         0      3610      3954        52         0      5674      8443         0         0 
Второму моменту соответствует вот это:
Код: plaintext
1.
2.
3.
4.
5.
6.
19:37:15     79353      6565         8     79353         0     35426        15      4480     29958       319         0         0         0       420     61621       957         0         0      2720      3824        15         0      4458      6489         0         0 
19:37:16     85026      6287         7     85026         0     36429        16      4995     31088       331         0         0         0       409     63605       994         0         0      2856      3599        16         0      4982      7020         0         0 
19:37:17     18765       989         5     18765         0      7530         3      1077      6227        66         0         0         0        86     12899       197         0         0       644       881         3         0      1068      1520         0         0 
19:37:18         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0 
19:37:19     63297     18048        28     63297         0     23002        92      8260     13218       128         0         0         0       372     32291       385         0         0      3392      7642        90         0      8283     13191         0         0 
19:37:20     80140      6461         8     80140         0     34730        18      3991     30763       330         0         0         0       276     62244       989         0         0      2332      3065        18         0      3991      6350         0         0 
19:37:21     74873      5908         7     74873         0     33204        16      3725     29249       314         0         0         0       245     59318       942         0         0      2278      3038        16         0      3728      6028         0         0 

2 dimitr: я помню, что ты мне говорил про эти "нулевые строки", когда шло исследование долгих коннектов. Они возникали при снятии бактрассы fb_smp_server'a одним из мониторных окон. Но сейчас этого нет. Идёт снятие только ЛТ, причём без ключика '-c'.
Отчего тогда могут возникать эти затыки ?
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38112614
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидОтчего тогда могут возникать эти затыки ?
от ожидания на блокировках
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38112635
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrот ожидания на блокировкахну, так вот я и хочу понять: где-то видны эти ожидания ? в развернутом отчете fb_lock_print'a ?
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38112640
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидгде-то видны эти ожидания ? в развернутом отчете fb_lock_print'a ?
конечно. С ключом -w, например.
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38112969
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrТаблоидгде-то видны эти ожидания ? в развернутом отчете fb_lock_print'a ?
конечно. С ключом -w, например.Хорошо, вернусь к начальному примеру.

Код: plaintext
1.
2.
3.
4.
 connect #1 
C:\MIX\firebird\fb25>isql localhost/3050:C:\MIX\firebird\fb25\T1.FDB -n
Database:  localhost/3050:C:\MIX\firebird\fb25\T1.FDB
SQL> commit;
SQL> insert into t values(2,2);

Снимаю ЛТ на этот момент: fb_lock_print -w -d T1.FDB
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
LOCK_HEADER BLOCK
        Version: 17, Active owner:      0, Length: 1048576, Used:   20868 
        Flags: 0x0001
        Enqs:     19, Converts:      3, Rejects:      0, Blocks:      0
        Deadlock scans:      0, Deadlocks:      0, Scan interval:   5
        Acquires:      36 , Acquire blocks:      0, Spin count:   0
        Mutex wait: 0.0%
        Hash slots: 1009, Hash lengths (min/avg/max):    0/   0/   3
        Remove node:      0, Insert queue:      0, Insert prior:      0
        Owners  (1) :     forward:  18744, backward:   18744 
        Free owners: *empty*
        Free locks (1): forward:  19820, backward:  19820
        Free requests: *empty*
        Lock Ordering: Enabled

Код: plaintext
1.
 connect #2 
SQL> insert into t values(2,2); -- ==> висяк

Снимаю еще раз ЛТ:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
LOCK_HEADER BLOCK
        Version: 17, Active owner:      0, Length: 1048576, Used:   33580 
        Flags: 0x0001
        Enqs:    186, Converts:     10, Rejects:      3, Blocks:      6
        Deadlock scans:      0, Deadlocks:      0, Scan interval:   5
        Acquires:     243 , Acquire blocks:      0, Spin count:   0
        Mutex wait: 0.0%
        Hash slots: 1009, Hash lengths (min/avg/max):    0/   0/   3
        Remove node:      0, Insert queue:      0, Insert prior:      0
        Owners  (2) :     forward:  18744, backward:   20868 
        Free owners: *empty*
        Free locks (1): forward:  19820, backward:  19820
        Free requests: *empty*
        Lock Ordering: Enabled

Далее делал снимок ЛТ в этом же состоянии еще несколько раз:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
@echo off
del lp2.log 2>nul
:m1
  fb_lock_print -w -d T1.FDB | mtee /t tmp.tmp
  type tmp.tmp | findstr /c:Acquires >> lp2.log
  @ping 127.0.0.1 -n 2 > nul
goto m1
Вижу, что увеличивается только счетчик Acquires , на единицу.
С интервалом, равным указанному в firebird.conf значению DeadlockTimeout (у мну он = 5), минус ~0.5 сек(?):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
...
20:48:38.577    Acquires:    528, Acquire blocks:      0, Spin count:   0
20:48:39.718    Acquires:    529, Acquire blocks:      0, Spin count:   0
20:48:40.858    Acquires:    529, Acquire blocks:      0, Spin count:   0
20:48:41.999    Acquires:    529, Acquire blocks:      0, Spin count:   0
20:48:43.155    Acquires:    529, Acquire blocks:      0, Spin count:   0
20:48:44.312    Acquires:    530, Acquire blocks:      0, Spin count:   0
20:48:45.452    Acquires:    530, Acquire blocks:      0, Spin count:   0
20:48:46.593    Acquires:    530, Acquire blocks:      0, Spin count:   0
20:48:47.749    Acquires:    530, Acquire blocks:      0, Spin count:   0
20:48:48.874    Acquires:    531, Acquire blocks:      0, Spin count:   0
20:48:50.015    Acquires:    531, Acquire blocks:      0, Spin count:   0
20:48:51.171    Acquires:    531, Acquire blocks:      0, Spin count:   0
20:48:52.296    Acquires:    531, Acquire blocks:      0, Spin count:   0
20:48:53.452    Acquires:    531, Acquire blocks:      0, Spin count:   0
20:48:54.593    Acquires:    532, Acquire blocks:      0, Spin count:   0
20:48:55.749    Acquires:    532, Acquire blocks:      0, Spin count:   0
20:48:56.905    Acquires:    532, Acquire blocks:      0, Spin count:   0
20:48:58.062    Acquires:    532, Acquire blocks:      0, Spin count:   0
20:48:59.249    Acquires:    533, Acquire blocks:      0, Spin count:   0
20:49:00.421    Acquires:    533, Acquire blocks:      0, Spin count:   0
20:49:01.562    Acquires:    533, Acquire blocks:      0, Spin count:   0
20:49:02.702    Acquires:    533, Acquire blocks:      0, Spin count:   0
20:49:03.843    Acquires:    533, Acquire blocks:      0, Spin count:   0
20:49:04.983    Acquires:    534, Acquire blocks:      0, Spin count:   0
20:49:06.124    Acquires:    534, Acquire blocks:      0, Spin count:   0
...

А как понять, какая транзакция (или коннект ?) и чего именно ждёт ?
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38112984
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидА как понять, какая транзакция (или коннект ?) и чего именно ждёт ?
смотреть вывод утилиты ниже заголовка и интерпретировать его. Я об этом рассказывал на конфе, запись доступна в онлайне.
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114599
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrЯ об этом рассказывал на конфе, запись доступна в онлайне.Прослушал твой доклад на конфе-2011: http://www.ютуб.com/watch?v=iYNjwbYcjuc - появилось несколько вопросов (частично - потому что не смог перевести какие-то фразы, частично - слова понял, а смысл - нет).
0) время 00:25:43. Там говорится про remap лок-таблицы, когда она упирается в потолок LockMemSize. Вопрос: на сколько увеличивается в размере ЛТ, когда ей становится мало места ?
1) время 00:28:55. Что такое request-статус = 0x100 (Blocking Seen ) ?
2) время 00:38:15. Речь идёт о возможном указании в переменной окружения FIREBIRD_LOCK каталога, в котором будет храниться лок-таблица. И что кто-то там (настроив правильно размер ЛТ и HashSlots, но продолжая иметь траблы с произв-стью), назначил этой переменной каталог на RAM-диске, и у него производительность увеличилась на 50%. Вопросов тут на самом деле два:
2.1) если я правильно перевёл, ты говоришь там, что ЛТ хранится в каталоге установки ФБ. Но почему я вижу файлы fb_lock_XXX всегда в /tmp/firebird ?
2.2) зачем вообще ЛТ вытряхивать на диск, если эта структура актуальна только в момент работы с базой ? Что от неё может "пригодиться", если будет рестарт ФБ или сервака ?
3) Что обозначается в ЛТ под free-объектами (owners; locks; requests) ?
4) Не засёк в докладе места, где бы говорилось вот об этом:
Код: plaintext
Enqs: 881770814, Converts: 564766, Rejects: 523062, Blocks: 1549513
- что такое Enqs, Converts и остальное ?
5.1) Допустим, увижу я в ЛТ, что некий owner, которому соотв-вует thread с id = 12345, является "держимордой" и из-за него всё заклинило. Если этот клиент просто держит что-то, НИЧЕГО не делая, то вычислить его через mon$statements не получится. Как тогда его найти ? (речь идёт о SuperClassic'e, ес-сно).
5.2) Пригляделся я к выводу fb_lock_print -o -d prodfile.fdb и охватил мну ужасный кошмар. Что там за ID'шники у thread'ов ?
Вот вывод этой команды (первые 30 строк):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
LOCK_HEADER BLOCK
        Version: 145, Active owner:      0, Length: 16777216, Used: 16294520
        Flags: 0x0001
        Enqs: 882519705, Converts: 567651, Rejects: 524335, Blocks: 1554734
        Deadlock scans:      0, Deadlocks:      0, Scan interval:  10
        Acquires: 921968334, Acquire blocks: 34454946, Spin count:   0
        Mutex wait: 3.7%
        Hash slots: 25013, Hash lengths (min/avg/max):    0/   0/   6
        Remove node:      0, Insert queue:      0, Insert prior:      0
        Owners (97):    forward: 595880, backward: 13323256
        Free owners (208):      forward: 6917456, backward: 1871184
        Free locks (21143):     forward: 1143752, backward: 15860544
        Free requests (145611): forward: 1875848, backward: 15028440
        Lock Ordering: Enabled

OWNER BLOCK 595880
        Owner id: 132684431509074, type: 1, pending:      0
        Process id:  30893 (Alive), thread id:  140170150016784 
        Flags: 0x08       wake
        Requests (828): forward: 514680, backward: 9255104
        Blocks: *empty*

OWNER BLOCK 1941624
        Owner id: 132684431509215, type: 1, pending:      0
        Process id:  30893 (Alive), thread id:  140169882670864 
        Flags: 0x08       wake
        Requests (1184):        forward: 1132872, backward: 8336200
        Blocks: *empty*

OWNER BLOCK 1948720
        Owner id: 132684431509218, type: 1, pending:      0
        Process id:  30893 (Alive), thread id:  140170150016784 
        Flags: 0x08       wake
        Requests (480): forward: 1948656, backward: 14737176
        Blocks: *empty*
...

я никогда не видел такого кошмара: thread id = 140170150016784, как мне сопоставить сиё с выводом потоков для fb_smp_server'a:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
-bash-4.1$ ps -FLC fb_smp_server
UID        PID  PPID   LWP  C NLWP    SZ   RSS PSR STIME TTY          TIME CMD
firebird 30893  1996 30893 12   12 2136629 3030056 6 2012 ?       6-09:13:20 /opt/firebird/bin/fb_smp_server
firebird 30893  1996 30894  0   12 2136629 3030056 6 2012 ?       00:00:00 /opt/firebird/bin/fb_smp_server
firebird 30893  1996 30895  0   12 2136629 3030056 4 2012 ?       00:19:33 /opt/firebird/bin/fb_smp_server
firebird 30893  1996 30951  0   12 2136629 3030056 2 2012 ?       00:00:00 /opt/firebird/bin/fb_smp_server
firebird 30893  1996 31015  0   12 2136629 3030056 3 2012 ?       00:00:00 /opt/firebird/bin/fb_smp_server
firebird 30893  1996 26692  0   12 2136629 3030056 3 Jan16 ?      00:00:00 /opt/firebird/bin/fb_smp_server
firebird 30893  1996 26693  0   12 2136629 3030056 7 Jan16 ?      00:00:00 /opt/firebird/bin/fb_smp_server
firebird 30893  1996 28811  0   12 2136629 3030056 1 Jan16 ?      00:00:00 /opt/firebird/bin/fb_smp_server
firebird 30893  1996  4146  0   12 2136629 3030056 3 17:43 ?      00:00:00 /opt/firebird/bin/fb_smp_server
firebird 30893  1996  5501  5   12 2136629 3030056 2 21:19 ?      00:00:46 /opt/firebird/bin/fb_smp_server
firebird 30893  1996  5511  4   12 2136629 3030056 4 21:28 ?      00:00:12 /opt/firebird/bin/fb_smp_server
firebird 30893  1996  5633  0   12 2136629 3030056 3 21:33 ?      00:00:00 /opt/firebird/bin/fb_smp_server
- ?

ЗЫ-1. В докладе на точках 00:00:48 и 00:50:20 идёт весьма ценная инфа про Hash lengths (min/avg/max) и Mutex wait%, а именно:
1) если avg больше 10, то пора увеличивать hashslots;
2) если mutex wait показатель около 12%, то следует насторожиться и анализировать причину этого. А если 20% и выше, то это уже плохо.
ИМХО, надо бы сиё в firebird.conf добавить. Равно как и формулу примерного значения LockMemSize = ~ page_cache * max_connects * 100 (время ~00:31:45)

ЗЫ-2. Жаль, что доклада нет в читабельном виде. На слух трудно, буду переслушивать заново. Так что вопросы еще будут, это точно :-)
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114691
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0) на LockMemSize
1) блокирующему был доставлен АСТ и с этого момента он считается оповещенным (ждем его реакции)
2.1) до 2.5 в ФБ-руте, после - в темпе
2.2) ЛТ - это расшаренная между процессами память, сиречь MMP (memory-mapped file)
3) объекты для повторного использования, т.к. ЛТ никогда не уменьшается в размере
4) счетчики операций. enq - новый лок, cnv - изменение статуса лока, rej - отказ в локе, blk - факт блокировки кого-либо
5.1) gdb и сорцы тебе в руки
5.2) забей, это поле только для отладки, ибо отражает не текущее, а последнее известное состояние
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114699
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr5.1) gdb и сорцы тебе в рукиАааа!!!
Правильно ли я понял, что:
1. Создав примитивную БД с master & detail табличками:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
C:\1INSTALL\FIREBIRD\Data>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 'tf.fdb'; commit;
SQL> create table tm(id int primary key); commit;
SQL> create table td(id int primary key, pid int references tm on delete cascade); commit;
SQL> insert into tm values(1);
SQL> commit;
SQL> insert into td values(101, 1);
SQL> commit;
SQL> exit;

2. Запустив два isql, в первом из которых удаляю master-запись ( без commit'a), а во втором - пытаясь добавить в detail строку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 session #1 
C:\1INSTALL\FIREBIRD\Data>isql localhost/3050:C:\1INSTALL\FIREBIRD\Data\TF.FDB -n
Database:  localhost/3050:C:\1INSTALL\FIREBIRD\Data\TF.FDB
SQL> delete from tm where id=1;

 session #2 
C:\1INSTALL\FIREBIRD\Data>isql localhost/3050:C:\1INSTALL\FIREBIRD\Data\TF.FDB -n
Database:  localhost/3050:C:\1INSTALL\FIREBIRD\Data\TF.FDB
SQL> commit; set transaction read committed record_version no wait;
SQL> insert into td values(102, 1);
Statement failed, SQLSTATE = 40001
lock conflict on no wait transaction
-violation of FOREIGN KEY constraint "INTEG_5" on table "TD"
-Foreign key reference target does not exist

3. Создав снимок лок-таблицы с ключиками -a -m (см аттач)

- я всё равно НЕ получу никакой инфы о номере транзакции / коннекта, который не даёт добавить строку в detail-таблицу ?
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114712
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вывод REQUEST BLOCK'ов (<==> ресурсов ) для каждого из двух owner'ов (<==> коннектов ) какой-то сверхъестественный: примерно по 700 строк на каждый коннект.
Что можно было запросить у базы, удаляя одну строку в мастере (и еще одну же в детали), либо делая запрос на добавление строки ?
Не понимаю, как можно разбираться в этом без надлежащего инструмента-парсера :(
многабукф!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
OWNER BLOCK  18744
        Owner id: 2147483648043, type: 1, pending:      0
        Process id:    500 (Alive), thread id:    988
        Flags: 0x00                               
        Requests (106): forward:  18840, backward:  31456
        Blocks: *empty*

REQUEST BLOCK  18840
        Owner:  18744, Lock:  18892, State: 4, Mode: 4, Flags: 0x00
        AST: 0x00447C90, argument: 0x04C4E0E8
        lrq_own_requests:       forward:  18964, backward:  18756
        lrq_lbl_requests:       forward:  34988, backward:  18868
        lrq_own_blocks  : *empty*

REQUEST BLOCK  18964
        Owner:  18744, Lock:  19016, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00445840, argument: 0x06389F18
        lrq_own_requests:       forward:  19072, backward:  18840
        lrq_lbl_requests:       forward:  36040, backward:  18992
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19072
        Owner:  18744, Lock:  19124, State: 2, Mode: 2, Flags: 0x00
        AST: 0x004D7970, argument: 0x04C4E0E8
        lrq_own_requests:       forward:  19188, backward:  18964
        lrq_lbl_requests:       forward:  34260, backward:  19100
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19188
        Owner:  18744, Lock:  19240, State: 2, Mode: 2, Flags: 0x00
        AST: 0x00444750, argument: 0x04C4E4E8
        lrq_own_requests:       forward:  19304, backward:  19072
        lrq_lbl_requests:       forward:  34312, backward:  19216
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19304
        Owner:  18744, Lock:  19356, State: 2, Mode: 2, Flags: 0x00
        AST: 0x004BD590, argument: 0x04C4E0E8
        lrq_own_requests:       forward:  19420, backward:  19188
        lrq_lbl_requests:       forward:  35572, backward:  19332
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19420
        Owner:  18744, Lock:  19472, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EDC0, argument: 0x04C5DA20
        lrq_own_requests:       forward:  19536, backward:  19304
        lrq_lbl_requests:       forward:  35300, backward:  19448
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19536
        Owner:  18744, Lock:  19588, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EDC0, argument: 0x04C5E4B4
        lrq_own_requests:       forward:  19652, backward:  19420
        lrq_lbl_requests:       forward:  34884, backward:  19564
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19652
        Owner:  18744, Lock:  19704, State: 6, Mode: 6, Flags: 0x00
        AST: 0x00490670, argument: 0x04C47A24
        lrq_own_requests:       forward:  19768, backward:  19536
        lrq_lbl_requests:       forward:  19680, backward:  19680
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19768
        Owner:  18744, Lock:  19876, State: 6, Mode: 6, Flags: 0x00
        AST: 0x00000000, argument: 0x06379338
        lrq_own_requests:       forward:  19940, backward:  19652
        lrq_lbl_requests:       forward:  19852, backward:  19852
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19940
        Owner:  18744, Lock:  19992, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EDC0, argument: 0x04C458D4
        lrq_own_requests:       forward:  20056, backward:  19768
        lrq_lbl_requests:       forward:  33248, backward:  19968
        lrq_own_blocks  : *empty*

REQUEST BLOCK  20056
        Owner:  18744, Lock:  20108, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EDC0, argument: 0x04C45D58
        lrq_own_requests:       forward:  20172, backward:  19940
        lrq_lbl_requests:       forward:  33144, backward:  20084
        lrq_own_blocks  : *empty*

REQUEST BLOCK  20172
        Owner:  18744, Lock:  20224, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EDC0, argument: 0x04C4184C
        lrq_own_requests:       forward:  20288, backward:  20056
        lrq_lbl_requests:       forward:  33092, backward:  20200
        lrq_own_blocks  : *empty*

REQUEST BLOCK  20288
        Owner:  18744, Lock:  20340, State: 2, Mode: 2, Flags: 0x00
        AST: 0x00481330, argument: 0x06379338
        lrq_own_requests:       forward:  20404, backward:  20172
        lrq_lbl_requests:       forward:  20316, backward:  20316
        lrq_own_blocks  : *empty*

REQUEST BLOCK  20404
        Owner:  18744, Lock:  20456, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EDC0, argument: 0x04C44FAC
        lrq_own_requests:       forward:  20520, backward:  20288
        lrq_lbl_requests:       forward:  32208, backward:  20432
        lrq_own_blocks  : *empty*

REQUEST BLOCK  20520
        Owner:  18744, Lock:  20572, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EB80, argument: 0x04C49CAC
        lrq_own_requests:       forward:  20636, backward:  20404
        lrq_lbl_requests:       forward:  20548, backward:  20548
        lrq_own_blocks  : *empty*

REQUEST BLOCK  20636
        Owner:  18744, Lock:  20688, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EDC0, argument: 0x04C56714
        lrq_own_requests:       forward:  20752, backward:  20520
        lrq_lbl_requests:       forward:  20664, backward:  20664
        lrq_own_blocks  : *empty*

REQUEST BLOCK  20752
        Owner:  18744, Lock:  20804, State: 2, Mode: 2, Flags: 0x00
        AST: 0x00000000, argument: 0x00000000
        lrq_own_requests:       forward:  20868, backward:  20636
        lrq_lbl_requests:       forward:  20780, backward:  20780
        lrq_own_blocks  : *empty*

REQUEST BLOCK  20868
        Owner:  18744, Lock:  20920, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EDC0, argument: 0x0637D488
        lrq_own_requests:       forward:  20984, backward:  20752
        lrq_lbl_requests:       forward:  31624, backward:  20896
        lrq_own_blocks  : *empty*

REQUEST BLOCK  20984
        Owner:  18744, Lock:  21036, State: 2, Mode: 2, Flags: 0x00
        AST: 0x00000000, argument: 0x00000000
        lrq_own_requests:       forward:  21100, backward:  20868
        lrq_lbl_requests:       forward:  21012, backward:  21012
        lrq_own_blocks  : *empty*

REQUEST BLOCK  21100
        Owner:  18744, Lock:  21152, State: 4, Mode: 4, Flags: 0x00
        AST: 0x00456CF0, argument: 0x0637B004
        lrq_own_requests:       forward:  21216, backward:  20984
        lrq_lbl_requests:       forward:  21128, backward:  21128
        lrq_own_blocks  : *empty*

REQUEST BLOCK  21216
        Owner:  18744, Lock:  21268, State: 4, Mode: 4, Flags: 0x00
        AST: 0x00456CF0, argument: 0x0637B214
        lrq_own_requests:       forward:  21332, backward:  21100
        lrq_lbl_requests:       forward:  35456, backward:  21244
        lrq_own_blocks  : *empty*

REQUEST BLOCK  21332
        Owner:  18744, Lock:  21384, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EF00, argument: 0x0637D488
        lrq_own_requests:       forward:  21448, backward:  21216
        lrq_lbl_requests:       forward:  36648, backward:  21360
        lrq_own_blocks  : *empty*

REQUEST BLOCK  21448
        Owner:  18744, Lock:  21500, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EF00, argument: 0x04C56714
        lrq_own_requests:       forward:  21712, backward:  21332
        lrq_lbl_requests:       forward:  21476, backward:  21476
        lrq_own_blocks  : *empty*

REQUEST BLOCK  21712
        Owner:  18744, Lock:  21764, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638F58C
        lrq_own_requests:       forward:  21828, backward:  21448
        lrq_lbl_requests:       forward:  33352, backward:  21740
        lrq_own_blocks  : *empty*

REQUEST BLOCK  21828
        Owner:  18744, Lock:  21880, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638F4A4
        lrq_own_requests:       forward:  21944, backward:  21712
        lrq_lbl_requests:       forward:  33508, backward:  21856
        lrq_own_blocks  : *empty*

REQUEST BLOCK  21944
        Owner:  18744, Lock:  21996, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638F3BC
        lrq_own_requests:       forward:  22060, backward:  21828
        lrq_lbl_requests:       forward:  33404, backward:  21972
        lrq_own_blocks  : *empty*

REQUEST BLOCK  22060
        Owner:  18744, Lock:  22112, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638F2D4
        lrq_own_requests:       forward:  22292, backward:  21944
        lrq_lbl_requests:       forward:  33456, backward:  22088
        lrq_own_blocks  : *empty*

REQUEST BLOCK  22292
        Owner:  18744, Lock:  22344, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638F104
        lrq_own_requests:       forward:  22408, backward:  22060
        lrq_lbl_requests:       forward:  36752, backward:  22320
        lrq_own_blocks  : *empty*

REQUEST BLOCK  22408
        Owner:  18744, Lock:  22460, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638F01C
        lrq_own_requests:       forward:  22524, backward:  22292
        lrq_lbl_requests:       forward:  33976, backward:  22436
        lrq_own_blocks  : *empty*

REQUEST BLOCK  22524
        Owner:  18744, Lock:  22576, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638EF34
        lrq_own_requests:       forward:  22640, backward:  22408
        lrq_lbl_requests:       forward:  34144, backward:  22552
        lrq_own_blocks  : *empty*

REQUEST BLOCK  22640
        Owner:  18744, Lock:  22692, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638EE4C
        lrq_own_requests:       forward:  22756, backward:  22524
        lrq_lbl_requests:       forward:  22176, backward:  22668
        lrq_own_blocks  : *empty*

REQUEST BLOCK  22756
        Owner:  18744, Lock:  22808, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638ED64
        lrq_own_requests:       forward:  22988, backward:  22640
        lrq_lbl_requests:       forward:  21660, backward:  22784
        lrq_own_blocks  : *empty*

REQUEST BLOCK  22988
        Owner:  18744, Lock:  23040, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638EB94
        lrq_own_requests:       forward:  23104, backward:  22756
        lrq_lbl_requests:       forward:  36144, backward:  23016
        lrq_own_blocks  : *empty*

REQUEST BLOCK  23104
        Owner:  18744, Lock:  23156, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638EAAC
        lrq_own_requests:       forward:  23220, backward:  22988
        lrq_lbl_requests:       forward:  33716, backward:  23132
        lrq_own_blocks  : *empty*

REQUEST BLOCK  23220
        Owner:  18744, Lock:  23272, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E9C4
        lrq_own_requests:       forward:  23336, backward:  23104
        lrq_lbl_requests:       forward:  23248, backward:  23248
        lrq_own_blocks  : *empty*

REQUEST BLOCK  23336
        Owner:  18744, Lock:  23388, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E8DC
        lrq_own_requests:       forward:  23452, backward:  23220
        lrq_lbl_requests:       forward:  23364, backward:  23364
        lrq_own_blocks  : *empty*

REQUEST BLOCK  23452
        Owner:  18744, Lock:  23504, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E7F4
        lrq_own_requests:       forward:  23568, backward:  23336
        lrq_lbl_requests:       forward:  36856, backward:  23480
        lrq_own_blocks  : *empty*

REQUEST BLOCK  23568
        Owner:  18744, Lock:  23620, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E70C
        lrq_own_requests:       forward:  23684, backward:  23452
        lrq_lbl_requests:       forward:  36804, backward:  23596
        lrq_own_blocks  : *empty*

REQUEST BLOCK  23684
        Owner:  18744, Lock:  23736, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E624
        lrq_own_requests:       forward:  23800, backward:  23568
        lrq_lbl_requests:       forward:  36700, backward:  23712
        lrq_own_blocks  : *empty*

REQUEST BLOCK  23800
        Owner:  18744, Lock:  23852, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E53C
        lrq_own_requests:       forward:  23916, backward:  23684
        lrq_lbl_requests:       forward:  31844, backward:  23828
        lrq_own_blocks  : *empty*

REQUEST BLOCK  23916
        Owner:  18744, Lock:  23968, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E454
        lrq_own_requests:       forward:  24032, backward:  23800
        lrq_lbl_requests:       forward:  31740, backward:  23944
        lrq_own_blocks  : *empty*

REQUEST BLOCK  24032
        Owner:  18744, Lock:  24084, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E36C
        lrq_own_requests:       forward:  24148, backward:  23916
        lrq_lbl_requests:       forward:  32000, backward:  24060
        lrq_own_blocks  : *empty*

REQUEST BLOCK  24148
        Owner:  18744, Lock:  24200, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E284
        lrq_own_requests:       forward:  24264, backward:  24032
        lrq_lbl_requests:       forward:  31572, backward:  24176
        lrq_own_blocks  : *empty*

REQUEST BLOCK  24264
        Owner:  18744, Lock:  24316, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E19C
        lrq_own_requests:       forward:  24380, backward:  24148
        lrq_lbl_requests:       forward:  24292, backward:  24292
        lrq_own_blocks  : *empty*

REQUEST BLOCK  24380
        Owner:  18744, Lock:  24432, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638E0B4
        lrq_own_requests:       forward:  24496, backward:  24264
        lrq_lbl_requests:       forward:  24408, backward:  24408
        lrq_own_blocks  : *empty*

REQUEST BLOCK  24496
        Owner:  18744, Lock:  24548, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638DF78
        lrq_own_requests:       forward:  24612, backward:  24380
        lrq_lbl_requests:       forward:  24524, backward:  24524
        lrq_own_blocks  : *empty*

REQUEST BLOCK  24612
        Owner:  18744, Lock:  24664, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638DE90
        lrq_own_requests:       forward:  24728, backward:  24496
        lrq_lbl_requests:       forward:  24640, backward:  24640
        lrq_own_blocks  : *empty*

REQUEST BLOCK  24728
        Owner:  18744, Lock:  24780, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638DDA8
        lrq_own_requests:       forward:  24844, backward:  24612
        lrq_lbl_requests:       forward:  24756, backward:  24756
        lrq_own_blocks  : *empty*

REQUEST BLOCK  24844
        Owner:  18744, Lock:  24896, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638DCC0
        lrq_own_requests:       forward:  24960, backward:  24728
        lrq_lbl_requests:       forward:  31896, backward:  24872
        lrq_own_blocks  : *empty*

REQUEST BLOCK  24960
        Owner:  18744, Lock:  25012, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638DBD8
        lrq_own_requests:       forward:  25076, backward:  24844
        lrq_lbl_requests:       forward:  31948, backward:  24988
        lrq_own_blocks  : *empty*

REQUEST BLOCK  25076
        Owner:  18744, Lock:  25128, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638DAF0
        lrq_own_requests:       forward:  25192, backward:  24960
        lrq_lbl_requests:       forward:  32052, backward:  25104
        lrq_own_blocks  : *empty*

REQUEST BLOCK  25192
        Owner:  18744, Lock:  25244, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638DA08
        lrq_own_requests:       forward:  25308, backward:  25076
        lrq_lbl_requests:       forward:  32104, backward:  25220
        lrq_own_blocks  : *empty*

REQUEST BLOCK  25308
        Owner:  18744, Lock:  25360, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D920
        lrq_own_requests:       forward:  25424, backward:  25192
        lrq_lbl_requests:       forward:  32156, backward:  25336
        lrq_own_blocks  : *empty*

REQUEST BLOCK  25424
        Owner:  18744, Lock:  25476, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D838
        lrq_own_requests:       forward:  25540, backward:  25308
        lrq_lbl_requests:       forward:  32260, backward:  25452
        lrq_own_blocks  : *empty*

REQUEST BLOCK  25540
        Owner:  18744, Lock:  25592, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D750
        lrq_own_requests:       forward:  25656, backward:  25424
        lrq_lbl_requests:       forward:  32312, backward:  25568
        lrq_own_blocks  : *empty*

REQUEST BLOCK  25656
        Owner:  18744, Lock:  25708, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D668
        lrq_own_requests:       forward:  25772, backward:  25540
        lrq_lbl_requests:       forward:  32416, backward:  25684
        lrq_own_blocks  : *empty*

REQUEST BLOCK  25772
        Owner:  18744, Lock:  25824, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D580
        lrq_own_requests:       forward:  25888, backward:  25656
        lrq_lbl_requests:       forward:  32468, backward:  25800
        lrq_own_blocks  : *empty*

REQUEST BLOCK  25888
        Owner:  18744, Lock:  25940, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D498
        lrq_own_requests:       forward:  26004, backward:  25772
        lrq_lbl_requests:       forward:  32520, backward:  25916
        lrq_own_blocks  : *empty*

REQUEST BLOCK  26004
        Owner:  18744, Lock:  26056, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D3B0
        lrq_own_requests:       forward:  26120, backward:  25888
        lrq_lbl_requests:       forward:  32572, backward:  26032
        lrq_own_blocks  : *empty*

REQUEST BLOCK  26120
        Owner:  18744, Lock:  26172, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D2C8
        lrq_own_requests:       forward:  26236, backward:  26004
        lrq_lbl_requests:       forward:  32624, backward:  26148
        lrq_own_blocks  : *empty*

REQUEST BLOCK  26236
        Owner:  18744, Lock:  26288, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D1E0
        lrq_own_requests:       forward:  26352, backward:  26120
        lrq_lbl_requests:       forward:  32676, backward:  26264
        lrq_own_blocks  : *empty*

REQUEST BLOCK  26352
        Owner:  18744, Lock:  26404, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D0F8
        lrq_own_requests:       forward:  26468, backward:  26236
        lrq_lbl_requests:       forward:  32728, backward:  26380
        lrq_own_blocks  : *empty*

REQUEST BLOCK  26468
        Owner:  18744, Lock:  26520, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638D010
        lrq_own_requests:       forward:  26584, backward:  26352
        lrq_lbl_requests:       forward:  32780, backward:  26496
        lrq_own_blocks  : *empty*

REQUEST BLOCK  26584
        Owner:  18744, Lock:  26636, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638CF28
        lrq_own_requests:       forward:  26700, backward:  26468
        lrq_lbl_requests:       forward:  32832, backward:  26612
        lrq_own_blocks  : *empty*

REQUEST BLOCK  26700
        Owner:  18744, Lock:  26752, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638CE40
        lrq_own_requests:       forward:  26816, backward:  26584
        lrq_lbl_requests:       forward:  32936, backward:  26728
        lrq_own_blocks  : *empty*

REQUEST BLOCK  26816
        Owner:  18744, Lock:  26868, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638CD58
        lrq_own_requests:       forward:  26932, backward:  26700
        lrq_lbl_requests:       forward:  32988, backward:  26844
        lrq_own_blocks  : *empty*

REQUEST BLOCK  26932
        Owner:  18744, Lock:  26984, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638CC70
        lrq_own_requests:       forward:  27048, backward:  26816
        lrq_lbl_requests:       forward:  33040, backward:  26960
        lrq_own_blocks  : *empty*

REQUEST BLOCK  27048
        Owner:  18744, Lock:  27100, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638CB88
        lrq_own_requests:       forward:  27164, backward:  26932
        lrq_lbl_requests:       forward:  33768, backward:  27076
        lrq_own_blocks  : *empty*

REQUEST BLOCK  27164
        Owner:  18744, Lock:  27216, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638CAA0
        lrq_own_requests:       forward:  27280, backward:  27048
        lrq_lbl_requests:       forward:  33820, backward:  27192
        lrq_own_blocks  : *empty*

REQUEST BLOCK  27280
        Owner:  18744, Lock:  27332, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C9B8
        lrq_own_requests:       forward:  27396, backward:  27164
        lrq_lbl_requests:       forward:  33872, backward:  27308
        lrq_own_blocks  : *empty*

REQUEST BLOCK  27396
        Owner:  18744, Lock:  27448, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C8D0
        lrq_own_requests:       forward:  27512, backward:  27280
        lrq_lbl_requests:       forward:  33924, backward:  27424
        lrq_own_blocks  : *empty*

REQUEST BLOCK  27512
        Owner:  18744, Lock:  27564, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C7E8
        lrq_own_requests:       forward:  27628, backward:  27396
        lrq_lbl_requests:       forward:  34364, backward:  27540
        lrq_own_blocks  : *empty*

REQUEST BLOCK  27628
        Owner:  18744, Lock:  27680, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C700
        lrq_own_requests:       forward:  27744, backward:  27512
        lrq_lbl_requests:       forward:  34416, backward:  27656
        lrq_own_blocks  : *empty*

REQUEST BLOCK  27744
        Owner:  18744, Lock:  27796, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C618
        lrq_own_requests:       forward:  27860, backward:  27628
        lrq_lbl_requests:       forward:  34468, backward:  27772
        lrq_own_blocks  : *empty*

REQUEST BLOCK  27860
        Owner:  18744, Lock:  27912, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C530
        lrq_own_requests:       forward:  27976, backward:  27744
        lrq_lbl_requests:       forward:  34520, backward:  27888
        lrq_own_blocks  : *empty*

REQUEST BLOCK  27976
        Owner:  18744, Lock:  28028, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C448
        lrq_own_requests:       forward:  28092, backward:  27860
        lrq_lbl_requests:       forward:  34572, backward:  28004
        lrq_own_blocks  : *empty*

REQUEST BLOCK  28092
        Owner:  18744, Lock:  28144, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C360
        lrq_own_requests:       forward:  28208, backward:  27976
        lrq_lbl_requests:       forward:  34624, backward:  28120
        lrq_own_blocks  : *empty*

REQUEST BLOCK  28208
        Owner:  18744, Lock:  28260, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C278
        lrq_own_requests:       forward:  28324, backward:  28092
        lrq_lbl_requests:       forward:  34676, backward:  28236
        lrq_own_blocks  : *empty*

REQUEST BLOCK  28324
        Owner:  18744, Lock:  28376, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C190
        lrq_own_requests:       forward:  28440, backward:  28208
        lrq_lbl_requests:       forward:  34728, backward:  28352
        lrq_own_blocks  : *empty*

REQUEST BLOCK  28440
        Owner:  18744, Lock:  28492, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638C0A8
        lrq_own_requests:       forward:  28556, backward:  28324
        lrq_lbl_requests:       forward:  34780, backward:  28468
        lrq_own_blocks  : *empty*

REQUEST BLOCK  28556
        Owner:  18744, Lock:  28608, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638BF6C
        lrq_own_requests:       forward:  28672, backward:  28440
        lrq_lbl_requests:       forward:  34832, backward:  28584
        lrq_own_blocks  : *empty*

REQUEST BLOCK  28672
        Owner:  18744, Lock:  28724, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638BE84
        lrq_own_requests:       forward:  28788, backward:  28556
        lrq_lbl_requests:       forward:  34936, backward:  28700
        lrq_own_blocks  : *empty*

REQUEST BLOCK  28788
        Owner:  18744, Lock:  28840, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638BD9C
        lrq_own_requests:       forward:  28904, backward:  28672
        lrq_lbl_requests:       forward:  35040, backward:  28816
        lrq_own_blocks  : *empty*

REQUEST BLOCK  28904
        Owner:  18744, Lock:  28956, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638BCB4
        lrq_own_requests:       forward:  29020, backward:  28788
        lrq_lbl_requests:       forward:  35092, backward:  28932
        lrq_own_blocks  : *empty*

REQUEST BLOCK  29020
        Owner:  18744, Lock:  29072, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638BBCC
        lrq_own_requests:       forward:  29136, backward:  28904
        lrq_lbl_requests:       forward:  35196, backward:  29048
        lrq_own_blocks  : *empty*

REQUEST BLOCK  29136
        Owner:  18744, Lock:  29188, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638BAE4
        lrq_own_requests:       forward:  29252, backward:  29020
        lrq_lbl_requests:       forward:  35248, backward:  29164
        lrq_own_blocks  : *empty*

REQUEST BLOCK  29252
        Owner:  18744, Lock:  29304, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B9FC
        lrq_own_requests:       forward:  29368, backward:  29136
        lrq_lbl_requests:       forward:  35352, backward:  29280
        lrq_own_blocks  : *empty*

REQUEST BLOCK  29368
        Owner:  18744, Lock:  29420, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B914
        lrq_own_requests:       forward:  29484, backward:  29252
        lrq_lbl_requests:       forward:  35404, backward:  29396
        lrq_own_blocks  : *empty*

REQUEST BLOCK  29484
        Owner:  18744, Lock:  29536, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B82C
        lrq_own_requests:       forward:  29600, backward:  29368
        lrq_lbl_requests:       forward:  35624, backward:  29512
        lrq_own_blocks  : *empty*

REQUEST BLOCK  29600
        Owner:  18744, Lock:  29652, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B744
        lrq_own_requests:       forward:  29716, backward:  29484
        lrq_lbl_requests:       forward:  35676, backward:  29628
        lrq_own_blocks  : *empty*

REQUEST BLOCK  29716
        Owner:  18744, Lock:  29768, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B65C
        lrq_own_requests:       forward:  29832, backward:  29600
        lrq_lbl_requests:       forward:  35728, backward:  29744
        lrq_own_blocks  : *empty*

REQUEST BLOCK  29832
        Owner:  18744, Lock:  29884, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B574
        lrq_own_requests:       forward:  29948, backward:  29716
        lrq_lbl_requests:       forward:  35780, backward:  29860
        lrq_own_blocks  : *empty*

REQUEST BLOCK  29948
        Owner:  18744, Lock:  30000, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B48C
        lrq_own_requests:       forward:  30064, backward:  29832
        lrq_lbl_requests:       forward:  35832, backward:  29976
        lrq_own_blocks  : *empty*

REQUEST BLOCK  30064
        Owner:  18744, Lock:  30116, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B3A4
        lrq_own_requests:       forward:  30180, backward:  29948
        lrq_lbl_requests:       forward:  35884, backward:  30092
        lrq_own_blocks  : *empty*

REQUEST BLOCK  30180
        Owner:  18744, Lock:  30232, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B2BC
        lrq_own_requests:       forward:  30296, backward:  30064
        lrq_lbl_requests:       forward:  35936, backward:  30208
        lrq_own_blocks  : *empty*

REQUEST BLOCK  30296
        Owner:  18744, Lock:  30348, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B1D4
        lrq_own_requests:       forward:  30412, backward:  30180
        lrq_lbl_requests:       forward:  35988, backward:  30324
        lrq_own_blocks  : *empty*

REQUEST BLOCK  30412
        Owner:  18744, Lock:  30464, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B0EC
        lrq_own_requests:       forward:  30528, backward:  30296
        lrq_lbl_requests:       forward:  22872, backward:  30440
        lrq_own_blocks  : *empty*

REQUEST BLOCK  30528
        Owner:  18744, Lock:  30580, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638B004
        lrq_own_requests:       forward:  30644, backward:  30412
        lrq_lbl_requests:       forward:  36196, backward:  30556
        lrq_own_blocks  : *empty*

REQUEST BLOCK  30644
        Owner:  18744, Lock:  30696, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638AF1C
        lrq_own_requests:       forward:  30760, backward:  30528
        lrq_lbl_requests:       forward:  36312, backward:  30672
        lrq_own_blocks  : *empty*

REQUEST BLOCK  30760
        Owner:  18744, Lock:  30812, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638AE34
        lrq_own_requests:       forward:  30876, backward:  30644
        lrq_lbl_requests:       forward:  36364, backward:  30788
        lrq_own_blocks  : *empty*

REQUEST BLOCK  30876
        Owner:  18744, Lock:  30928, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638AD4C
        lrq_own_requests:       forward:  30992, backward:  30760
        lrq_lbl_requests:       forward:  36416, backward:  30904
        lrq_own_blocks  : *empty*

REQUEST BLOCK  30992
        Owner:  18744, Lock:  31044, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638AC64
        lrq_own_requests:       forward:  31108, backward:  30876
        lrq_lbl_requests:       forward:  36532, backward:  31020
        lrq_own_blocks  : *empty*

REQUEST BLOCK  31108
        Owner:  18744, Lock:  31160, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638AA94
        lrq_own_requests:       forward:  31224, backward:  30992
        lrq_lbl_requests:       forward:  32884, backward:  31136
        lrq_own_blocks  : *empty*

REQUEST BLOCK  31224
        Owner:  18744, Lock:  31276, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638A9AC
        lrq_own_requests:       forward:  31340, backward:  31108
        lrq_lbl_requests:       forward:  33196, backward:  31252
        lrq_own_blocks  : *empty*

REQUEST BLOCK  31340
        Owner:  18744, Lock:  31392, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638A8C4
        lrq_own_requests:       forward:  31456, backward:  31224
        lrq_lbl_requests:       forward:  35144, backward:  31368
        lrq_own_blocks  : *empty*

REQUEST BLOCK  31456
        Owner:  18744, Lock:  31508, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00449E20, argument: 0x0638A7DC
        lrq_own_requests:       forward:  18756, backward:  31340
        lrq_lbl_requests:       forward:  34028, backward:  31484
        lrq_own_blocks  : *empty*
Да, и еще.
Тут какие-то lrq_own _requests и lrq_lbl _requests появились - о них в докладе я тоже не засёк ничего.
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114713
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr5.1) gdb и сорцы тебе в рукиа это... что делать тем, кто под виндузой сидит, у них же gdb нету ? (да и знать бы еще, куда там в логе gdb смотреть... )
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114719
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr2.2) ЛТ - это расшаренная между процессами память, сиречь MMP (memory-mapped file)А зачем это же распространять на SuperClassic, в котором процесс - один ? (потоки - они могут видеть шаред-область без "материализации" её в виде файла или нет ?)
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114816
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидА зачем это же распространять на SuperClassic, в котором процесс - один ?
кто тебе такое сказал? Твои embedded-коннекты от isql/gfix/gbak/etc святым духом с базой работают, ага.
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114817
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидя всё равно НЕ получу никакой инфы о номере транзакции / коннекта, который не даёт добавить строку в detail-таблицу?
для NOWAIT транзакции есс-но не получишь, ибо не сможешь в ЛТ найти ожидающий коннект. Для WAIT - номер коннекта найдешь при желании.
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114820
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидВывод REQUEST BLOCK'ов (<==> ресурсов ) для каждого из двух owner'ов (<==> коннектов ) какой-то сверхъестественный: примерно по 700 строк на каждый коннект.
Что можно было запросить у базы, удаляя одну строку в мастере (и еще одну же в детали), либо делая запрос на добавление строки ?
на каждую занятую страницу кеша - по одному риквесту, плюс локи на метаданные
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114822
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидчто делать тем, кто под виндузой сидит, у них же gdb нету?
у них есть Visual Studio ;-)
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114842
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидНе понимаю, как можно разбираться в этом без надлежащего инструмента-парсераПытаюсь разобраться в "минимально возможных дебрях". Будет много букаф, извиняйте.

Создана пустая база и единственный коннект к ней:
Код: plaintext
1.
2.
3.
C:\1INSTALL\FIREBIRD\Data>isql localhost:C:\1INSTALL\FIREBIRD\Data\tt.FDB -n
Database:  localhost:C:\1INSTALL\FIREBIRD\Data\tt.FDB
SQL>
Снимаю в этот момент лок-таблицу, получаю файлик в 176 строк (7486 байт).
Единственный коннект (owner id=18744) запросил при этом 9 ресурсов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
REQUEST BLOCK  18840
        Owner:  18744, Lock:   18892 , State: 6, Mode: 6, Flags: 0x00
        AST: 0x00447C90, argument: 0x0A10E0E8
        lrq_own_requests:       forward:  18964, backward:  18756
        lrq_lbl_requests:       forward:  18868, backward:  18868
        lrq_own_blocks  : *empty*

REQUEST BLOCK  18964
        Owner:  18744, Lock:  19016, State: 3, Mode: 3, Flags: 0x00
        AST: 0x00445840, argument: 0x09419F18
        lrq_own_requests:       forward:  19072, backward:  18840
        lrq_lbl_requests:       forward:  18992, backward:  18992
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19072
        Owner:  18744, Lock:  19124, State: 2, Mode: 2, Flags: 0x00
        AST: 0x004D7970, argument: 0x0A10E0E8
        lrq_own_requests:       forward:  19188, backward:  18964
        lrq_lbl_requests:       forward:  19100, backward:  19100
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19188
        Owner:  18744, Lock:  19240, State: 5, Mode: 5, Flags: 0x00
        AST: 0x00444750, argument: 0x0A10E4E8
        lrq_own_requests:       forward:  19304, backward:  19072
        lrq_lbl_requests:       forward:  19216, backward:  19216
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19304
        Owner:  18744, Lock:  19356, State: 2, Mode: 2, Flags: 0x00
        AST: 0x004BD590, argument: 0x0A10E0E8
        lrq_own_requests:       forward:  19420, backward:  19188
        lrq_lbl_requests:       forward:  19332, backward:  19332
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19420
        Owner:  18744, Lock:  19472, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EDC0, argument: 0x0A11DA20
        lrq_own_requests:       forward:  19536, backward:  19304
        lrq_lbl_requests:       forward:  19448, backward:  19448
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19536
        Owner:  18744, Lock:  19588, State: 2, Mode: 2, Flags: 0x00
        AST: 0x0045EDC0, argument: 0x0A11E4B4
        lrq_own_requests:       forward:  19652, backward:  19420
        lrq_lbl_requests:       forward:  19564, backward:  19564
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19652
        Owner:  18744, Lock:   19704 , State: 6, Mode: 6, Flags: 0x00
        AST: 0x00490670, argument: 0x0A107A24
        lrq_own_requests:       forward:  19768, backward:  19536
        lrq_lbl_requests:       forward:  19680, backward:  19680
        lrq_own_blocks  : *empty*

REQUEST BLOCK  19768
        Owner:  18744, Lock:   19876 , State: 6, Mode: 6, Flags: 0x00
        AST: 0x00000000, argument: 0x093F9884
        lrq_own_requests:       forward:  18756, backward:  19652
        lrq_lbl_requests:       forward:  19852, backward:  19852
        lrq_own_blocks  : *empty*
=====================
На три "объекта" были запрошены и получены exclusive -блокировки (оба "поля": state & mode - равны 6). Эти три request-блока имеют в полях Lock id'шники = 18892, 19704 & 19876 .

Идём в секцию полученных локов (lock block's, ниже request'ов).

Блок 18892 (последний в выводе) имеет вид:
Код: plaintext
1.
2.
3.
4.
5.
6.
LOCK BLOCK   18892
          Series: 1 , Parent:      0, State: 6, size: 16 length: 12 data: 0
        Key: 5<34><234><164><0><0><24><0><229><244><0><0>, Flags: 0x00, Pending request count:      0
        Hash que (1):   forward:   5548, backward:   5548
        Requests (1):   forward:  18840, backward:  18840
                Request  18840, Owner:  18744, State: 6 (6), Flags: 0x00
Согласно Большой Книги, это блокировка всей базы, выполненная первым коннектом. Она будет понижена при подключении второго и последующих коннектов:
Helen Borrie, page 868SymbolSeriesDescriptionLCK_database.1database lock is taken by eachprocess that attaches a database. The first process takes an exclusive lock. The next process notices a conflict and signals the first to downgrade its lock from exclusive to shared

Блок 19704 имеет вид:
Код: plaintext
1.
2.
3.
4.
5.
LOCK BLOCK  19704
         Series: 7 , Parent:   18892 , State: 6, size: 8 length: 4 data: 0
        Key: 000002, Flags: 0x00, Pending request count:      0
        Hash que (2):   forward:    364, backward:  19240
        Requests (1):   forward:  19652, backward:  19652
                Request  19652, Owner:  18744, State: 6 (6), Flags: 0x00
В книге сказано, что серия (= вид объекта, который блокируется) номер 7 ... не используется!
Helen Borrie, page 868SymbolSeriesDescriptionLCK_attachment7Not used. Attachment lock to support dBase record locks, which can exist across transaction boundaries.
Блок 19876 имеет вид:
Код: plaintext
1.
2.
3.
4.
5.
LOCK BLOCK  19876
         Series: 4 , Parent:   18892 , State: 6, size: 8 length: 4 data: 4
        Key: 000004, Flags: 0x00, Pending request count:      0
        Hash que (1):   forward:    380, backward:    380
        Requests (1):   forward:  19768, backward:  19768
                Request  19768, Owner:  18744, State: 6 (6), Flags: 0x00
Для серии номер 4 в Книге говорится, что это:Helen Borrie, page 868SymbolSeriesDescriptionLCK_tra4Individual transaction lock. Each action takes an exclusive lock on its own transaction ID when it starts. Other owners can acquire null locks on it to read its state.
===============

Еще один lock bloсk, id = 19240, имеет state = 5 ( protected write: "is used for constsency mode (table stability)"):
Код: plaintext
1.
2.
3.
4.
5.
LOCK BLOCK  19240
         Series: 24 , Parent:  18892, State: 5, size: 8 length: 4 data: 33
        Key: 000002, Flags: 0x00, Pending request count:      0
        Hash que (2):   forward:  19704, backward:    364
        Requests (1):   forward:  19188, backward:  19188
                Request  19188, Owner:  18744, State: 5 (5), Flags: 0x00

Но что это за объект - непонятно. В Большой Книге типы объектов ("серии") заканчиваются номером 17 (LCK_update_shadow).

================

Блок с id = 19016 имеет state = 3 ( protected read: все могут читать этот блок, но никто не может в него записывать - правильно ?).
Код: plaintext
1.
2.
3.
4.
5.
LOCK BLOCK  19016
         Series: 15 , Parent:  18892, State: 3, size: 0 length: 0 data: 0
        Key: , Flags: 0x00, Pending request count:      0
        Hash que (3):   forward:  19124, backward:    348
        Requests (1):   forward:  18964, backward:  18964
                Request  18964, Owner:  18744, State: 3 (3), Flags: 0x00
По книге его серия (15) означает:Helen Borrie, page 868SymbolSeriesDescriptionLCK_prc_exist15Procedure existence lock. Prevents procedures and triggers from being dropped while any owner has a prepared request that uses (or depends on) that resource. Это тоже непонятно. Нет ни одной ХП, никаких триггеров (таблиц нету!). Чего блокировать ?

================

Остальные блоки имеют статус = 2 ( shared read):
Код: plaintext
1.
LOCK BLOCK  19124
         Series: 8 , Parent:  18892, State: 2, size: 8 length: 4 data: 0
SymbolSeriesDescriptionLCK_shadow8Lock to synchronize addition of shadows, mainly on Classic server.

Код: plaintext
1.
LOCK BLOCK  19356
         Series: 20 , Parent:  18892, State: 2, size: 8 length: 4 data: 0
-снова нет инфы в Книге (там до 17-й серии расписано).

Код: plaintext
1.
2.
3.
4.
5.
LOCK BLOCK  19588
         Series: 5 , Parent:  18892, State: 2, size: 8 length: 4 data: 0
...
LOCK BLOCK  19472
        Series: 5, Parent:  18892, State: 2, size: 8 length: 4 data: 0
- это "блокировки существования" таблиц:
Helen Borrie, page 868SymbolSeriesDescriptionLCK_rel_exist5Relation existence lock. Prevents tables from being dropped while any owner has a prepared request that uses that table.Опять не понимаю: НЕТ ни одной таблицы в базе (за исключением словарных), чего тут блокировать надо ?

PS. Пфф... без инструмента типа IBAnalyst (в смысле наглядности инфы) - тяжко... Ну, и чувствуется, что Большая Книга устарела кое-где: не все типы серий расписаны.
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114845
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrДля WAIT - номер коннекта найдешь при желании.А кто работает в wait-режиме ? Это же камикадзе надо быть...
...
Рейтинг: 0 / 0
Понимание результатов fb_lock_print
    #38114884
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидНЕТ ни одной таблицы в базе (за исключением словарных), чего тут блокировать надо ?
системные таблицы тоже надо блокировать, они отнюдь не волшебные. А на "книгу" забей, ты ей только голову себе задурил. Смотри в своих сорцах /src/jrd/lck.h, вопросы отпадут.
...
Рейтинг: 0 / 0
25 сообщений из 119, страница 1 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Понимание результатов fb_lock_print
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]