powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
20 сообщений из 270, страница 11 из 11
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38430508
Alex Truhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovХотеть что-то ненужное обычно называется "блажь".

Гвозди довольно неплохо заколачиваются булыжником, а гантелей так вообще... Но не думаю, что при этом хотеть иметь в хозяйстве, хороший молоток - "блажь".
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38430526
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПарней из IBSurgeon это не остановило.
кстати, и правда, а то я про этот плагин забыл.
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38430577
Alex Truhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,
а что за плагин? Платный?
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38430662
oleg_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Truhinkdv,
а что за плагин? Платный?
13160039
Плагин может выводить результат тремя вариантами:
- в файл текстовый, как стандартный
- в файлы структурные, которые затем можно подключить к FB как EXTERNAL TABLE
- в базу FB, подгрузив fbclient (или fbembed)
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38431217
Евгений Болтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это так для того кто та таймауты начнет писать.

Я прислушался к Вам и переделал все на короткие пишущие транзакции, ну я так думал, что все короткие будут. Смотрел на этот топик как вы тут таймауты обсуждаете. И тут позвонил клиент. Он сказал, что мол запустили функцию на открытие документов для изменений и начался коллапс в фирме "Deadlock" то там то там.

Я сразу сообразил в чем дело и побежал смотреть. В некоторых случаях не возможно вообще оказывается предположить сколько будет длиться транзакция.

Пришлось переписать это место так
Код: sql
1.
2.
3.
4.
EXECUTE BLOCK(
...
  EXECUTE STATEMENT (:sSQL) WITH AUTONOMOUS TRANSACTION;
...



И то по моим подсчетам 02:43:00 будут открываться 1 160 000 документов. У меня попутный вопрос 118 транзакций в секунду это нормально?

Вот статистика на 1 операцию
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Время подготовки "00:00:002", выполнения "00:00:002"
Plan:PLAN (DOCS DLOCK INDEX (PKDLOCK))
PLAN (DOCS I002 INDEX (II002_1))
PLAN (DOCS CONTR INDEX (PKCONTRACTOR))
PLAN (DOCS CONTR INDEX (PKCONTRACTOR))
PLAN (DOCS DLOCK INDEX (PKDLOCK))
PLAN (DOCS T003 INDEX (IT003_1))
MaxMemory: 478607684, CurrentMemory: 478593540, NumBuffers: 28192
Cache fetches 79, reads from disk 0, writes to disk 0
I002 backout 0, delete 0, expunge 0, insert 0, purge 0, read_idx 1, read_seq 0, update 0
TREE10 backout 0, delete 0, expunge 0, insert 0, purge 0, read_idx 1, read_seq 0, update 0
CONTR backout 0, delete 0, expunge 0, insert 0, purge 0, read_idx 2, read_seq 0, update 0
DLOCK backout 0, delete 0, expunge 0, insert 0, purge 0, read_idx 3, read_seq 0, update 1
T003 backout 0, delete 0, expunge 0, insert 0, purge 0, read_idx 2, read_seq 0, update 1
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38431253
Евгений Болтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений БолтикУ меня попутный вопрос 118 транзакций в секунду это нормально?


на SSD получили 190 транзакций в секунду
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38434116
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сож-ю, не мог сразу подключиться к этой беседе, но пока топег не утонул, добавлю сюда свои 5 коп.

*. First of all. Для любого стейтмента должна быть возможность ограничить объем мусора, который он должен собирать. "Единицей измерения" в этом лимите должно быть всё таки время , потраченное на сборку мусора, а не число мусорных версий. До тех пор, пока этого не будет, один и тот же запрос на одних и тех же данных будет "нерегулярно обламываться" по таймауту, если ему пришлось после кого-то делать GC.

* При запуске user-трейса должна быть какая-то возможность указать движку, продолжать ли отслеживать таймауты. Потому что трейс грузит движок! и могут быть срубания вовсе не от того, что запрос тупой, а потому что трейс запущен и повлияло именно это .

* При старте системного GC отсчет таймаутов должен приостанавливаться. Не у всех GC запланирован на ночер или время минимальной активности, есть системы с круглосуточной работой. Этот GC - он тоже "небесплатен", насколько я могу понять

* При получении аттачем запроса заполнить mon$-таблицы - тоже самое, время таймаута для него должно быть увеличено на то число сек/минут, что он потратил на удовлетворение любопытного админа;

* Отсчет времени должен вести сервер. На клиенте системное время может глючить (глюки BIOS'a, отсутствие регулярной синхронизации времени в процессе работы и проч). Кроме того, когда прога сильно задумывается, юзер может переключиться в какую-нить полноэкранную игру и тогда что там будет со временем на рабочей станции - вообще неизвестно.

* Таймаутов должно быть несколько:
** на время выполнения отдельного стейтмента (отслежка - с момента его начала, а не момента фетча 105001-ой записи);
** на время отсутствия стейтментов в транзакции, если она имеет TIL <> (RO | RC). При наступлении таймаута в RW-транзакции, если она ничего не меняла, делать COMMIT вместо rollback'a;

* Неактивная транзакция, если её номер > OAT, не должна завершаться по таймауту;

* Таймаут ставить надо только в databases.conf, по разным базам - разный.

* Должна быть возможность "замораживания" таймаутов на ночное время. Если предприятие НЕ работает с 21 вечера до 9 утра, то всякие тугодумные отчеты, стартующие из-под крона, или просто запущенные усерами в 20 ч, должны спокойно доработать до утра. Их нельзя срубать. А вот днём - извините, но "ну вас нахрен, ждите вечера".

* Разработчик прикладухи НЕ должен иметь никакого способа влиять на таймаут. Никаких "хинтов", параметров в dpb\tpb\etc и проч. Этот гад разраб наваяет и свалит, а админу затем разгребать. А если еще и исходников нет, то вообще веселуха будет. К тому же, для тиражируемых продуктов очевидно, что железо будет разное и никто вообще не скажет, какой конкретно нужен таймаут там или сям.

* Очень правильным считаю предложение CybarMax'a: дать возможность разной реакции на срабатывание таймаута: а) оборвать с логированием; б) только залогировать этот факт; в) добавил бы еще и полное отсутствие логирования, но этот вариант объявить "опасным" или "вредным" и т.п.

* Админ должен иметь возможность указать в databases.conf в виде списка (как в конфиге трейса имена алиасов или баз):
** имена приложений, на которые таймауты НЕ распространяются. Тогда все остальные приложения будут подпадать под действие таймаутов;
** имена только тех приложений, на которые следует распространять таймауты. Тогда на все остальные приложения под действие таймаутов не подпадут;

И еще, хотя и 0xFF: помимо таймаутов, было бы классно иметь что-то типа квот на max число фетчей. Админ, зная данные и то, какие запросы к ним идут, всегда сможет внятно сказать: "в моей системе любой запрос, выполняющийся за 1 сек, но делающий более NNN млн фетчей - всё равно является дерьмом" :-). И такие запросы лучше узнать в лицо, хотя бы и однократно включив отсечку их.

PS. ("вновь закинул старик свой невод")
2 dimitr : дай пинка Кальтенбруннеру, плз. НЕ работает нормально его similar to с текстами среднего размера (>=1Mb) - и тупит, да и не реагирует на команду обруба через mon$. Я сигналил в трекере, и не единожды, да всё бестолку.
К чему это я, спросите ? А к тому, что пока в приложении есть стейтменты, содержащие SIMILAR TO и обрабатывающие большие тексты, вся эта затея с таймаутами будет не сильно эффективной. Надо сначала научить SIMILAR'ы хотя бы изредка "выглядывать" во внешний мир во время своей работы.

Ффух... пока вроде бы всё...
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38435723
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид* Отсчет времени должен вести сервер. На клиенте системное время может глючить (глюки BIOS'a, отсутствие регулярной синхронизации времени в процессе работы и проч). Кроме того, когда прога сильно задумывается, юзер может переключиться в какую-нить полноэкранную игру и тогда что там будет со временем на рабочей станции - вообще неизвестноЭто не аргумент: тайм-ауты - дельта. Небольшая.
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38435770
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЭто не аргумент: тайм-ауты - дельта. Небольшая.какая именно "небольшая" ? ты уже промерял ?
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38435821
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидBasil A. SidorovЭто не аргумент: тайм-ауты - дельта. Небольшая.какая именно "небольшая" ? ты уже промерял ?Четыре миллиарда тиков это несколько более сорока суток.
Какая точность устроит лично вас на таких интервалах?
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38435824
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovТаблоидпропущено...
какая именно "небольшая" ? ты уже промерял ?Четыре миллиарда тиков это несколько более сорока суток.
Какая точность устроит лично вас на таких интервалах?А причём тут сутки с миллиардами тиков ? Достаточно, чтобы время на раб. станции отстало от времени сервера на 3-5 сек - и всё.
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #38435836
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидА причём тут сутки с миллиардами тиков ? Достаточно, чтобы время на раб. станции отстало от времени сервера на 3-5 сек - и всё.Ещё раз - тайм-аут это дельта , даже если оно делается на системном времени.
Но, обычно, таймеры работают на таймерах. У которых есть длительность, но нет времени суток.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #39164379
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

И чем все кончилось к 2016му году ?
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #39231488
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkohvlad,

И чем все кончилось к 2016му году ?Всё только начинается :)
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #39365505
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, просмотрел 11 страниц, не нашёл то, что нужно. Есть ли в FB3 параметр "время разрыва неактивного коннекта"?
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #39365510
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI,

пока нет, будет в ФБ 4 (типа того).
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #39365553
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Правильно понимаю, что и по умолчанию ничего нет, коннект висит вечно? Пока админ руками не отключит?
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #39365573
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIkdv,

Правильно понимаю, что и по умолчанию ничего нет, коннект висит вечно? Пока админ руками не отключит?
Есть таймаут неактивности для ТСР, зависит от настроек ОС.
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #39365666
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvбудет в ФБ 4 (типа того).
Лично я очень сильно надеюсь, что не будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
    #39365668
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI,

если коннект жив - да. Используется keepalive, при котором ОС при неактивности в коннекте его пинает сама, и если он на какой-то стороне умер, отрубает. Не умер - не отрубает. Если коннект сам помер - другой стороне об этом сообщается, она соединение закрывает.
А серверу, сейчас, совершенно по барабану, делает что-то коннект, или нет.
...
Рейтинг: 0 / 0
20 сообщений из 270, страница 11 из 11
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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