|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Привет всем Решил добавить возможность рубануть выполняющийся запрос через MON$STATEMENTS. Открываю, а в полях MON$TRANSACTION_ID, MON$TIMESTAMP null-ы в таблице транзакций Код: plsql 1. 2. 3. 4. 5.
Это как так? И как тогда определить какой STATEMENT грохнуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 19:54 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
На последней сборке тоже самое Firebird-2.5.3.26709-0_Win32.7z ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 19:56 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Может я неправильно понял. Разъясните 1.Стартую транзакцию 2.Выполняю запрос он возвращает всегда 1 строку эмулирую зависание вывожу сообщение с кнопкой ОК пока не нажму на ОК транзакция не завершится Получается запрос выполнился и по этой причине в таблице NULL-ы? Если да то тогда как остановить ту транзакцию на которую грешу, что она висит? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 20:27 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Транзакция - вещь пассивная, "висеть" она не может. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 20:32 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТранзакция - вещь пассивная, "висеть" она не может. Ясен перец в ожидании. Вопрос как убить ее. В IB вроде как можно через таблицы tmp, в FB получаю delete from MON$TRANSACTIONS where MON$TRANSACTION_ID ... The INSERT, UPDATE, DELETE, DDL or authorization statement cannot be executed because the transaction is inquiry only. Operation not supported. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 20:58 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений БолтикВопрос как убить ее. Вместе с коннектом, иначе нельзя. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 21:01 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик, вместо транзакции убивай оператор. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 21:20 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисЕвгений Болтик, вместо транзакции убивай оператор. Это не оператор виноват, а сбербанк, со своим глючным ПО на терминалах банковских карт. Как всегда придется извращаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 21:26 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений БолтикКак всегда придется извращаться. Тебе повторить как должна работать программа, чтобы глюки левого софта не создавали проблем в базе?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 21:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕвгений БолтикКак всегда придется извращаться. Тебе повторить как должна работать программа, чтобы глюки левого софта не создавали проблем в базе?.. Я тебя уже слышал в прошлый раз. У нас задачи и понятия разные. В некоторых местах мне надо именно через транзакцию делать. То что ты предложи я сто лет как использую. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 22:05 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕвгений БолтикВопрос как убить ее. Вместе с коннектом, иначе нельзя. Случаем не в курсе, в тройке будет возможность, не весь коннект рубить, а только транзакцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 23:00 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик, убить транзакцию нельзя. Её можно либо подтвердить, либо откатить. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 23:02 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисЕвгений Болтик, убить транзакцию нельзя. Её можно либо подтвердить, либо откатить. "Убить" = "откатить", т.к. нельзя завершать то не зная что ;). Цель зависшие срубить быстро. Такое бывает редко но метко. Ни кто из клиентов учить не хотят всякие настройки серверов и сетей, вот и извращаемся. К примеру дома у меня даже не получается сделать так чтобы процессы зависшие оставались, а клиенты умудряются. Только программу срублю в диспетчере на удаленном ПК тут же процесс сервера выгружается. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 23:10 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтикмне надо именно через транзакцию делать Как же меня бесят такие заявления... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 23:42 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик > мне надо именно через транзакцию делать А для чего конкретно? Т.е. прикладная цель какая? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 23:51 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамприкладная цель какая? Да рассказывал он уже в другом топике: нет никакой прикладной цели, он лучше выдумать не смог. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 01:17 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovКак же меня бесят такие заявления...И это твоя слабость :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 01:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений БолтикРешил добавить возможность рубануть выполняющийся запрос через MON$STATEMENTS. Открываю, а в полях MON$TRANSACTION_ID, MON$TIMESTAMP null-ы <...> И как тогда определить какой STATEMENT грохнуть?Эти два поля (MON$TRANSACTION_ID, MON$TIMESTAMP) будут not-null только во время, пока выполняется стейтмент. Как только он заканчивается, они обNULLяются. Но тогда и уже срубать эту транзакцию "не за что": ведь она уже не грузит сервер, а простаивает. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 07:20 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик, Про откат транзакций через mon$transactions. Вроде бы изначально при проектировании mon таблиц рассматривалась такая функциональность, но потом по каким-то причинам было решено её не делать. Старожилы или разработчики могут ответить подробнее отчего так. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 10:46 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
ну, если кто-либо сможет рассказать, чем оно принципиально лучше отстрела активного запроса (что в большинстве вменяемых приложений автоматически приводит к роллбеку активной транзакции)... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 11:13 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
dimitr, я могу придумать только убиение тр-ций, потерянных кривым приложением, без отстрела собственно коннекта такого приложения. Дабы не удерживать OIT\OST. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 11:16 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, зачитывается. Хотя таким приложениям для профилактики лучше сразу коннект отстреливать, мало ли что там еще "теряется" :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 11:27 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Но для этого, наверное, лучше (?) сделать таймаут для неактивных тр-ций (а так же для выполняющихся запросов и неактивных коннектов). Например ввести такие таймауты и действия по их истечению: - таймаут для выполняющегося запроса по его истечению запрос останавливается, его изменения откатываются - таймаут для неактивной тр-ции (т.е. такой тр-ции, в которой нет выполняющихся запросов) по его истечению тр-ция откатывается (или подтверждается ?) - таймаут для неактивного коннекта (т.е. такого коннекта, в котором нет выполняющихся запросов) по его истечению все тр-ции коннекта откатываются (или подтверждаются ?) и сам коннект удаляется ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 11:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, А это разве для тройки не запланировано? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 11:35 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денис, запланировано, но сначала нужно об этом подумать. Почему не сейчас ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 11:45 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, Если это можно будет конфигурировать на уровне БД (database.conf) или даже на уровне подключения, то почему бы и нет. Насчёт автоматического подтверждения транзакции вопрос спорный. Про откат согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:00 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисНасчёт автоматического подтверждения транзакции вопрос спорный транзакция изначально задумана как атомарный набор изменений. В том, что админ сможет коммитить лишь ее часть, есть что-то глубоко неправильное, хотя возможно и в каких-либо случаях допустимое. Пока что я против автоматического подтверждения. А в целом Влад все правильно описал, примерно так оно и предполагалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:05 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Как по мне, так примерно так было бы хорошо:hvladНапример ввести такие таймауты и действия по их истечению: - таймаут для выполняющегося запроса по его истечению запрос останавливается, его изменения откатываются+1 Еще бы до пары к этому таймауту в конфиге возможность передать таймаут прямо в параметрах транзакции, например я зажимаю параметр в конфиге в несколько секунд, а для особых случаев указываю явно, скажем пару минут. hvlad- таймаут для неактивной тр-ции (т.е. такой тр-ции, в которой нет выполняющихся запросов) по его истечению тр-ция откатывается (или подтверждается ?)выполняется дефолт экшн из конфига, который по-умолчанию роллбек. Опять таки возможность указать в параметрах транзакции, что "меня отстреливать не надо" была бы не лишней. С коннектами аналогично. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:16 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, Кстати, да - хороший вопрос - как эти таймауты должны задаваться, и чья установка главнее - админа (в конфиге) или прикладного разработчика (в dpb\tpb\etc) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:29 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyКак по мне, так примерно так было бы хорошо:hvladНапример ввести такие таймауты и действия по их истечению: - таймаут для выполняющегося запроса по его истечению запрос останавливается, его изменения откатываются+1 Еще бы до пары к этому таймауту в конфиге возможность передать таймаут прямо в параметрах транзакции, например я зажимаю параметр в конфиге в несколько секунд, а для особых случаев указываю явно, скажем пару минут. А мы не напоремся на труднопонимаемые ситуации несвоевременным отстрелом? Ну когда долгий отчет формируется за 10 минут. Потом мы вливаем туда порцию данных, ломаем индекс или еще чего и отчет начинает формироваться 15 минут. При вводе ограничения например на 12 минут мы утром обнаруживаем, что отчет не сфомировался, т.к. нас "отстрелили". Причем это сервером считается как штатная ситуация и в логах мы по идее фиг что увидим. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, а кто запрещает это логировать. Я имею ввиду что сервер должен логировать такие вещи. Тогда можно будет узнать кто виноват и что делать ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:37 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterА мы не напоремся на труднопонимаемые ситуации несвоевременным отстрелом? Ну когда долгий отчет формируется за 10 минут. Потом мы вливаем туда порцию данных, ломаем индекс или еще чего и отчет начинает формироваться 15 минут. При вводе ограничения например на 12 минут мы утром обнаруживаем, что отчет не сфомировался, т.к. нас "отстрелили". А что не понятного в этой ситуации ? Тут даже есть плюс - ты своевременно узнаешь о том, что отчёт стал формироваться слишком долго. DarkMasterПричем это сервером считается как штатная ситуация и в логах мы по идее фиг что увидим.А почему тот, кто формировал отчёт, не сохранил сообщение об ошибке ? Это ведь может быть не только таймаут, а что угодно. Причём же тут серверные логи ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:39 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисDarkMaster, а кто запрещает это логировать. Я имею ввиду что сервер должен логировать такие вещи. Тогда можно будет узнать кто виноват и что делать Ну серверу явно сказали - отстрели нас через 5 минут. Что он и сделал - т.е. все штатно, без ошибок - зачем логировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:39 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, он ведь логирует начало и завершение свипа. Почему бы и не логировать эти вещи. К тому же ситуация не совсем штатная. Это своего рода предупреждение о проблемах. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:41 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
я конечно имею ввиду логировать только то, что отвалилось по таймауту ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:42 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladDarkMasterПричем это сервером считается как штатная ситуация и в логах мы по идее фиг что увидим.А почему тот, кто формировал отчёт, не сохранил сообщение об ошибке ? Это ведь может быть не только таймаут, а что угодно. Причём же тут серверные логи ? 1) Отчет может формироваться роботом. У которого одна задача - на приход часа Х запустить процедуру У. 2) Отстрел по таймауту - это ошибка? Ну я же вроде задаю интервал, значит закладываюсь на какие-то временные рамки. P.S. Кстати, а в серверном коде такие ситуации можно будет обработать? Ну типа блоков WHEN... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:46 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, кто тебе мешает для твоего робота убрать таймаут. Это же вроде необязательный параметр. Моё мнение параметры заданные приложение при подключении должны иметь более высокий приоритет над теми что заданы в databases.conf ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:52 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денися конечно имею ввиду логировать только то, что отвалилось по таймаутуДавайте не будем впадать в маразм. Ибо так легко получить логгирование вообще всех запросов. Кому надо логгировать таймауты - трейс в зубы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:54 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster1) Отчет может формироваться роботом. У которого одна задача - на приход часа Х запустить процедуру У. 2) Отстрел по таймауту - это ошибка? Ну я же вроде задаю интервал, значит закладываюсь на какие-то временные рамки.1. Если он не ведёт лог своей работы с протоколом полученных ошибок - это плохой робот, бесполезный. 2. Для клиента - конечно ошибка, так же как и отмена запроса\аттача. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:55 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, в принципе нормально если это можно будет отследить в аудите. Но только мне кажется нужен отдельный переключатель или фильтр чтобы отследить только то, что отвалилось по таймауту, а не все откаченные транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:57 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денис, ну так это уже другой вопрос :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:58 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Да, еще транзакции бывают разные, например, для "read read_commited nowait" можно воткнуть часок-другой, для ридонли снапшота десяток минут, для райт снапшота вообще десяток секунд. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:02 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad2. Для клиента - конечно ошибка, так же как и отмена запроса\аттача. Неоднозначно. Т.е. я как разработчик должен закладываться на какие-то среднепотолочные значения таймаутов "чтобы наверняка успеть", отдавать заказчику и молится, чтобы через Н-е время меня не начали задалбывать вопросами "а почему это наш супер пупер важный отчет не ушел на мыло директору?". Соответственно такую ситуацию даже воспроизвести толком нельзя будет без доступа к тому набору данных, который у заказчика. Доступ к которым могут и не дать. Да и для админом начнется тихий ужас с захардкоженными в коде таймаутами (по закону подлости его начнуть пихать куда можно и куда нельзя)... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:04 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Вообще с таймаутами не всё так просто, как кажется на первый взгляд. Один из приципиальных вопросов : кто должен отсчитывать время - клиент или сервер ? Ответ в лоб - конечно сервер, т.к. клиент может отвалиться или зависнуть, а сервер об этом не узнает. Однако может быть и обратная ситуация, когда клиент не обнаруживает потерю соединения или же сервер висит\слишком загружен чтобы вовремя информировать клиента о таймауте. Таким образом мы приходим к необходимости отслеживать таймауты с обеих сторон. И тут же возникает новый вопрос - нужно ли делать отдельные опции для клиента и сервера, или же ограничиться одним и тем же значением. Если идти по второму пути, то клиент должен как-то узнавать значение таймаута, заданное на сервере по-умолчанию. Далее. Как считать таймаут для запроса ? Нужно ли начинать отсчёт времени заново после каждого фетча или выключать таймер сразу же после первого фетча ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:04 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterНеоднозначно. Т.е. я как разработчик должен закладываться на какие-то среднепотолочные значения таймаутов "чтобы наверняка успеть", отдавать заказчику и молится, чтобы через Н-е время меня не начали задалбывать вопросами "а почему это наш супер пупер важный отчет не ушел на мыло директору?".Всё однозначно, ты просто не даёшь себе подумать. 1. Отключай таймаут для своего проложения\БД, если ты не умеешь его готовить. 2. Для конкретного запроса выставляй заведомо большое значение таймаута. 3. Всегда все роботы обязаны реагировать на любые ошибки (кроме внезапного саморазрушения :) ) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:07 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladввести такие таймауты IMHO - нах-нах. Геморроя много, пользы мало. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:07 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterДа и для админом начнется тихий ужас с захардкоженными в коде таймаутами (по закону подлости его начнуть пихать куда можно и куда нельзя)...А вот тут см. 14966027 PS И не надо бояться, в других серверах давно есть таймауты и никто о них не плачет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:09 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladДалее. Как считать таймаут для запроса ? Нужно ли начинать отсчёт времени заново после каждого фетча или выключать таймер сразу же после первого фетча ? Зовем какие-то хитросделанные УДФ`ы, которые могут бог знает что делать - получаем непонятное поведение. Никаких фетчей, а время тю-тю... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:10 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovhvladввести такие таймауты IMHO - нах-нах. Геморроя много, пользы мало.А ты с кем разговариваешь ? Т.е. на что ты вообще отвечаешь ? Ты против любых таймаутов ? Аргументация, как обычно, блестяща и полна ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:11 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterЗовем какие-то хитросделанные УДФ`ы, которые могут бог знает что делать - получаем непонятное поведение. Никаких фетчей, а время тю-тю...Есс-но, самый первый раз таймер взводится в момент начала выполения запроса. Ты может таки начнёшь хоть чуть-чуть думать, перед тем как писать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:12 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladТ.е. на что ты вообще отвечаешь ? Ты против любых таймаутов ? Фразу, на которую я отвечаю, я всегда цитирую. Это как бы основы нетикета. И таки да, я против любых таймаутов, предлагающихся в процитированном сообщении. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:14 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladDarkMasterНеоднозначно. Т.е. я как разработчик должен закладываться на какие-то среднепотолочные значения таймаутов "чтобы наверняка успеть", отдавать заказчику и молится, чтобы через Н-е время меня не начали задалбывать вопросами "а почему это наш супер пупер важный отчет не ушел на мыло директору?".Всё однозначно, ты просто не даёшь себе подумать. 1. Отключай таймаут для своего проложения\БД, если ты не умеешь его готовить. 2. Для конкретного запроса выставляй заведомо большое значение таймаута. 3. Всегда все роботы обязаны реагировать на любые ошибки (кроме внезапного саморазрушения :) ) Та не, я не то, чтобы против, я - за взвешенное решение... А выставление заведомо большего значения - суть вещь импирическая и (иногда!) труднопрогнозируемая, ибо зависит от... P.S. Мои-то роботы реагируют ;) Они даже друг за дружкой следят ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:15 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, ИХМО отсчёт таймера должен вестись от начала транзакции и не зависеть от того сколько там фетчей сделано. Единственное, что наверное для readonly RC транзакций его вообще не применять. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:18 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovФразу, на которую я отвечаю, я всегда цитируюЦитируй так, что бы было понятно, что же ты цитируешь. "Это как бы основы нетикета" (c) Dimitry SibiryakovИ таки да, я против любых таймаутов, предлагающихся в процитированном сообщении.Без аргументации лучше воздержись от дальнейшего участия в этой ветке. Вот такая просьба. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:23 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЕсс-но, самый первый раз таймер взводится в момент начала выполения запроса. Ты может таки начнёшь хоть чуть-чуть думать, перед тем как писать ? Гм... Я не могу со 100% уверенностью указать длину таймаута. Что непонятно-то? Все остальное - так, возможные сопутствующие проблемы. P.S. А может завести отдельный процесс таймера, который бы что-то там обновлял в контекстных переменных? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:25 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денисотсчёт таймера должен вестись от начала транзакции и не зависеть от того сколько там фетчей сделаноА давай подумаем немного: вот есть запрос, возвращающий резалтсет. Вот его жизненный цикл: 1. execute 2. fetch ... N. fetch Ты предлагаешь ставить таймер в момент (1) и, например, если 10 записей было успешно сфетчено, а 11-я не успела, то обламывать такой запрос. Так ? А не будет ли правильнее сбрасывать и снова ставить таймер после каждого фетча ? Представь себе запрос, который выдаёт по 1-ой записи в секунду (может сетка медленная, а может записи трудно вычисляются). И ты предлагаешь его остановить после X записей, при таймауте в X секунд ? Даже если он вполне себе может выдать все 10X записей в том же темпе ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:28 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, это уже другая задача. Исполнение скриптов по встроенному таймеру. Хотя задачу отстрела и можно подвести под неё, но пока это вроде не планируется. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:29 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, вопрос конечно интересный. Т.е. ты как альтернативу предлагаешь вести отсчёт от последнего фетча. Тогда уж и в случаем набора модифицирующих запросов отсчёт надо вести от последнего активного запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:33 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, Таблоида на вас нету с его 100500 одновременно запущенными окнами и с тяжелыми запросами ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:35 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, а вот его тоже ждём в этой ветке. Он сейчас 100500 примеров придумает в обосновании того когда это нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:36 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladБез аргументации лучше воздержись от дальнейшего участия в этой ветке. Ну, моя проскопия для тебя, может, и не аргумент, но лично я привык на неё полагаться. Предложенные тобой таймауты это лечение симптомов, не проблем. При их применении будут игнорироваться баги в приложениях, которые иначе были бы пофикшены. Таймаут для выполняющегося запроса? Ага, это же гораздо проще чем ускорять выполнение запроса. Таймаут для неактивной транзакции? Ага, это ведь гораздо проще чем устранить негативное влияние этой транзакции. Таймаут неактивного коннекта? Ага, наплевать, что этот коннект ждёт событий из базы или откуда-то снаружи. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:40 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, это всё в идеальном мире. На практике как раз бывает всё это очень нужным. Разработчик может пользоваться какой-нибудь CRM системой, где ему не доступен её исходный код, а есть только возможность делать настройки из весьма ограниченного набора. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:46 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladА не будет ли правильнее сбрасывать и снова ставить таймер после каждого фетча ? Если я допущу алгоритмический или еще какой косяк в примерно таком коде: Код: plsql 1. 2. 3. 4. 5. 6.
и таки решу использовать таймауты (мы же все на 100% непогрешимы ;) - то причину отлета по таймауту фиг быстро найду... Такой подводный камень имеет место быть, или я опять "не умею готовить"? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:52 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, На вечный цикл внимание можно не обращать ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 13:54 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денис, Ну вообще-то если мы не говорим о CRM-системах - нам вообще-то пофигу, что отчет генерится 12 минут вместо 10. Тут более приоритетным является именно факт генерации отчета. А вот если отчет перестает генерироваться из-за того, что где-то кто-то ошибся со временем - это упс. Т.е. я в принципе не должнен заморачиваться, что если мой запрос нормально переваривает 10 млн. записей - он когда-то может отказаться переварить 30 млн, так как у него может просто не хватить времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:02 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, если разработчик/админ имеет такие запросы/ХП и выставил таймаут - то он ССЗБ. По умолчанию вроде как таймауты будут выставлены в 0 (т.е. работать не будут). Кроме того, при отстреле по таймауту клиенту можно кинуть ошибку "Ваша транзакция была откачена, поскольку был превышен таймаут 10 секунд". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:03 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денисэто всё в идеальном мире. А на практике вместо того, чтобы дерьмо вычищать, его надо просто засунуть под ковёр, да... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:03 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, ну и что. Поймает твой робот такую ошибку (выше указано), которую залогирует. Будет повод админу разобраться с неправильным значением таймаута или запросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:05 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, я же сказал, что откат не должен быть молчаливым. Тогда будет повод исправить ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:06 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovбыли бы пофикшеныС чего бы это ? PS я пользую твой способ цитирования, правда хорошо получилось ? Вот только не дождался, пока цитируемое на пару страниц назад уйдёт. Ничё, в следующий раз... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:09 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денис, Ага, конечно. Сейчас наблюдаем кучку поделок на ФБ, которые вытворяют бог знает что (в соседний форум по Дельфям иногда страшно заглядывать). Потом народ начнет активно пихать таймауты в свои произведения (как здорово - у меня любая транзакция живет не более 10 секунд). А потом админы сидят и не могут понять, почему это "ваша транзакция была откачена", если ПО отработало уже Н-е время без нареканий. И хто виноват? Данные? Сетка? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:09 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
А еще есть, хоть и немного, хостеров предоставляющих хостинг для файрберда, им тоже нужны вменяемые рычаги для ограничение нагрузки на железку/виртуалку. Если я работаю на своем сервере, то для меня имеют приоритет настройки, которые я передал серверу как разработчик, потом уже конфиги от админа/ДБА. А вот если я хостер, то у меня есть ненулевой интерес прижать хвосты арендаторам, чтоб не расслаблялись. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:11 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисDarkMaster, ну и что. Поймает твой робот такую ошибку (выше указано), которую залогирует. Будет повод админу разобраться с неправильным значением таймаута или запросом. Денис - это в идеальном мире (с) Доступа к исходникам может не быть или быть набор очень ограниченных параметров ;) Ничего, что я тебя процитировал? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:12 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, и чего? Кто тебе помещает в конфиге отключить/увеличить таймаут. Туда то у тебя доступ есть. Хотя согласен с приоритетом вопрос неоднозначен. Думаю там придётся ещё вводить параметр разрешить ли приложениям переопределять параметры таймаутов выставленных на БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:17 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladС чего бы это ? С того, что у кривой софтины вообще-то есть два пути: быть пофикшенной или перестать использоваться. Но эти таймауты, которые (вследствие того, что Firebird не является системой реального времени) будут вылазить в самых непредсказуемых местах (и ещё не дай бог с невнятной ошибкой "timeout happened", как вы это любите) затруднят продвижение софтины по жизненному циклу. Она будет глючить слишком непонятно для того чтобы её пофиксили и не слишком часто для того чтобы выбросили. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:18 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисТ.е. ты как альтернативу предлагаешь вести отсчёт от последнего фетча. Да, я предлагаю подумать об этой альтернативе тоже. Перед тем, как делать. Симонов ДенисТогда уж и в случаем набора модифицирующих запросов отсчёт надо вести от последнего активного запроса.Есс-но, а как же ещё ? Или ты о запросах в PSQL модуле (процедуре\триггере\exec block'е) ? Тогда не выйдет, весь модуль - это один запрос с точки зрения сервера ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:19 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladИли ты о запросах в PSQL модуле (процедуре\триггере\exec block'е) ? Не в коем разе. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:21 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterЕсли я допущу алгоритмический или еще какой косяк ... и таки решу использовать таймауты (мы же все на 100% непогрешимы ;) - то причину отлета по таймауту фиг быстро найду... Такой подводный камень имеет место быть, или я опять "не умею готовить"?А причину тормозов ты быстро найдёшь ? А о том, что они вообще есть, ты как узнаешь ? Я не могу понять причину твоего сопротивления таймаутам... Если с Сибиряковым всё ясно (он просто вредный, упёртый и любит противоречить из принципа), то тебя я пока понять не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:23 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
мне видится, что основным применением все-таки должно быть админско-конфигурационное. Задавать таймауты в приложении придется разве что разработчикам псевдо-realtime-задач со временем реакции, прописанным в ТЗ к их софтине, ну или еще в каких-либо редких случаях. Причем разработчики зачастую имеют слабое представление о железе, на котором крутится сервер, поэтому приоритетным должно быть значение из конфига. Заодно это защитит админов от "крутых пацанов", зашивших в коде таймаут в 1 год и считающих, что всех обманули. Либо каким-либо образом надо учитывать оба таймаута (через MIN?) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:25 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovбудут вылазить в самых непредсказуемых местахНе включай их, кто тебя заставляет ? И вообще не переходи на новую версию ФБ, с такой кривой софтиной - в чём проблемы-то ? :) Вот только другим не мешай ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:25 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovhvladС чего бы это ? С того, что у кривой софтины вообще-то есть два пути: быть пофикшенной или перестать использоваться. Но эти таймауты, которые (вследствие того, что Firebird не является системой реального времени) будут вылазить в самых непредсказуемых местах (и ещё не дай бог с невнятной ошибкой "timeout happened", как вы это любите) затруднят продвижение софтины по жизненному циклу. Она будет глючить слишком непонятно для того чтобы её пофиксили и не слишком часто для того чтобы выбросили. +100 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:26 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, Dimitry Sibiryakov не вижу проблем. Ещё раз. Ну будет клиенту показана ошибка "Истёк таймаут". Это лишь означает, что либо его надо увеличить, либо отключить вовсе. Вот и всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:29 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
dimitr, я пока вижу так а) значение таймаута по-умолчанию, задано в в конфиге б) значение таймаута, заданное в приложении в) предельное значение таймаута, задано в конфиге Эффективное значение вычисляется как MIN(в, COALESCE(б, а)) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:31 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЯ не могу понять причину твоего сопротивления таймаутам... Если с Сибиряковым всё ясно (он просто вредный, упёртый и любит противоречить из принципа), то тебя я пока понять не могу. Я не сопротивляюсь. Я пытаюсь сказать, что непредвиденное проявление таймаутов в нормальных, долгоживущих проектах есть зло. В необходимости которого меня пока не убедили. Собственно DS это уже озвучил. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:32 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
dimitrЗадавать таймауты в приложении придется разве что разработчикам псевдо-realtime-задач со временем реакции, прописанным в ТЗ к их софтине, ну или еще в каких-либо редких случаях.Вот совсем не редкие случаи, когда таймаут можно\нужно задавать в приложении: - инструменты вроде IBE - тяжёлые отчёты, гарантированно не умещающиеся в умолчательные 30-60 сек ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:33 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterЯ пытаюсь сказать, что непредвиденное проявление таймаутовА в каком месте оно непредвиденное ? Они же в конфиге настраиваются, где проблемы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, кто тебя заставляет их использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladDarkMasterЯ пытаюсь сказать, что непредвиденное проявление таймаутовА в каком месте оно непредвиденное ? Они же в конфиге настраиваются, где проблемы ? Влад, ты читаешь, что я пишу или по диагонали? Вот решил я поиспользовать таймауты (да, такой ССЗБ). У меня есть 10 млн записей. Я что-то с ними делаю. Я укладываюсь в 10 минут. Для запаса ставлю 20 минут... Проходит время. Записей у меня становится 30 млн. Я перестаю укладываться - лезет таймаут. Т.е. вчера его не было, сейчас он есть. По факту. До тех пор, пока кто нить (я, админ, господь бог) не исправит эту ситуацию - система не работает. Вообще. При накладках (отпуска/болезни/другие города и страны) - система стоит не минуты, а часы и дни (заказчик теряет время и деньги, админы получают по шапке и бьют в колокола и т.п.). И это вместо того, чтобы отработать не за 20, а за 21 минуту, что никак не критично. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:44 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денисне вижу проблем. Ещё раз. Ну будет клиенту показана ошибка "Истёк таймаут". Это лишь означает, что либо его надо увеличить, либо отключить вовсе. Вот и всё. Т.е. либо запрос укладывается в таймаут и таким образом тот вообще не срабатывает, либо запрос не укладывается и тогда таймаут надо увеличить, чтобы тот срабатывать перестал. В чём смысл? PS: Долгоиграющие запросы ловятся аудитом, там есть специальный фильтр для этого. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:46 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterПроходит время. Записей у меня становится 30 млн. Я перестаю укладываться - лезет таймаут.Дык ить благо! Это как боль, она предупреждает. У меня висит открытая заявка "оптимизировать отчеты собирающиеся более 5 минут", для этого я просил постановщика обежать народ, собрать данные, она что-то там насобирала, что-то я сделал, так или иначе (в основном вынос ресусожрущей хрени на вспомогательный сервер с односторонней репликацией), но тем не менее наблюдаем подтормаживание основного сервера по закрытию квартала. А тут бы я вкручиваю таймаут в 5 минут, и к концу рабочего дня получаю полную картину. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:51 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovPS: Долгоиграющие запросы ловятся аудитом, там есть специальный фильтр для этого.Еще интересней не допустить тормозов, аудит оно постфактум. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:52 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, тут уже ответили. Прок от этого есть хотя бы хостерам. Чтобы один чудак написавший свою систему криво не ставил весь сервер раком. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:56 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyЕще интересней не допустить тормозов, аудит оно постфактум. Ну а таймауты это способ не допустить тормоза с помощью гильотины. Да, запросы перестают выполняться медленно. Они вообще перестают выполняться. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 14:58 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, Это если ты "сидишь" на системе и ее мониторишь. А если ты ее отдал заказчику год назад (вот только не надо говорить, что у всех заказчиков есть админы и техсаппорт) - начинается игра в рулетку - выстрелит али нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:00 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисЧтобы один чудак написавший свою систему криво не ставил весь сервер раком. Для этого не нужны таймауты, для этого нужно SMP. И если верить бравурным заявлениям, в тройке оно уже есть. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:00 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovдля этого нужно SMP. И квоты на процессор, диск, память и т.д. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:01 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, и чем спасет тебя SMP например от запроса насилующего HDD или поедающего немерено памяти? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:05 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDimitry Sibiryakovдля этого нужно SMP. И квоты на процессор, диск, память и т.д. Этого сразу не увидел. Согласен нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:06 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ксати. Я понимаю ещё квотировать диск по объёму, но вот как быть с IO? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:13 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterВлад, ты читаешь, что я пишу или по диагонали?Стараюсь. DarkMasterВот решил я поиспользовать таймаутыТогда о какой непредвиденности идёт речь ? Решил использовать ? Значит знаешь о потенциальных проблемах. Значит можешь их обработать. Не можешь (не знаешь как) обработать ? Не используешь таймауты. Не так ? Чем "твой" апокалипсис с таймаутами отличается от "случайно" удалённого индекса ? Или от "вдруг" изменившегося плана ? Когда твой 20-минутный отчёт начинает колбасить полтора часа и никто другой вообще не может работать все эти полтора часа ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:15 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денискак быть с IO? Гугель утверждает, что для линуха есть способы: http://www.cyberciti.biz/tips/linux-set-io-scheduling-class-priority.html Как и для Windows: http://en.wikipedia.org/wiki/Windows_Vista_I/O_technologies Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:25 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, Случайно отвалившийся индекс не приведет к отказу работы запроса. Он все равно "доколбасит". А отстреленный запрос приведет к угадайке - что случилось и необходимости править конфиги. Что по лености скроет проблему с отвалившимся индексом - поменяли таймаут и все заработало. Т.е. лечить будем не причину, а следствие. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:27 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, на мой вопрос ты не ответил, посему считаю ответ положительным. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНу а таймауты это способ не допустить тормоза с помощью гильотины.Как в ПДД, если твое ТС не способно развить скорость в 40км/ч, ему нехрен делать на автомагистрали. Так и тут, не уложился в пару минут, вэлкам на вспомогательный сервер. Время исполнения довольно интегральный критерий, он уже вбирает в себя отчасти и дисковой ИО, и проц и память. Да, возможность рулись по отдельность тоже интересна, но не все сразу. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Хоть кто-нибудь видит хоть какой-нибудь смысл в продолжении обсуждения таймаутов тут на sql.ru ? Хоть кто-нибудь видит хоть какой-нибудь смысл в попытке обсуждения любой новой фичи тут на sql.ru ? Хоть кто-нибудь помнит предыдущую мою попытку обсудить новую фичу публично, и что из этого вышло ? ... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:39 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Мне интересно, я читаю весь топик. Если что могу проредить/причесать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:41 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, Мой "апокалипсис" отличается тем, что он закончится (когда-нить), и возлагаемая на запрос работа будет выполнена. При отстреле он даже не успеет начаться и работа выполнена не будет. Причем при отстреле обязательно нужно будет вмешательство со стороны. А первом случае - можно будет и погодить если что. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:43 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, успокойся. Не все такие как DS. Есть люди которым данный функционал действительно интересен. Он занимается репликатором, поэтому любые фичи к нему не относящиеся или затрудняющие его работу воспринимаются им в штыки. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:45 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterОн все равно "доколбасит".А если оператор тупо ошибся и получает отчет не за 1 крайний месяц, а, например, за 13 месяцев? Подумаешь 1 цифирь в годе, эка невидаль! DarkMasterТ.е. лечить будем не причину, а следствие.Желающие могут лечить следствие. Мне интересней не образовывать заторы на рабочем сервере. Мы это и так делаем, но тут будет гарантированный превентивный механизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:46 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, боишься за корректность работы своего приложения не пользуйся таймаутами. Кто тебя заставляет их использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:47 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladХоть кто-нибудь видит хоть какой-нибудь смысл в продолжении обсуждения таймаутов тут на sql.ru ? Есть такие, кто мало пишет, но всё читает. hvladХоть кто-нибудь видит хоть какой-нибудь смысл в попытке обсуждения любой новой фичи тут на sql.ru ? А где ещё? В девеле на англицом? hvladХоть кто-нибудь помнит предыдущую мою попытку обсудить новую фичу публично, и что из этого вышло ? Риторический ) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:49 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladХоть кто-нибудь видит хоть какой-нибудь смысл в попытке обсуждения любой новой фичи тут на sql.ru ? Нет смысла обсуждать какую-либо фичу где угодно, потому что вы всё равно сделаете по-своему. Последняя попытка обсудить что-то в firebird-devel закончилась полным молчанием. Те попытки, что не закончились полным молчанием - см. абзац выше. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:49 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterМой "апокалипсис" отличается тем, что он закончится (когда-нить)Откуда такая уверенность ? DarkMasterПри отстреле он даже не успеет начатьсяС чего бы это ? Или ты про таймаут в 0 сек говоришь ? Ты забываешь, что движок СУБД в первую очередь заботится о выполнении всех запросов, а не о каком-то одном . Поэтому в случае с обломанным тяжёлым запросом общая производительность системы будет выше, чем если все будут тормозить неизвестное кол-во времени. Ты упираешь на то, что нет возможности предсказать время выполнения этого запроса и настроить для него правильный таймаут, но это ничем не отличается от невозможности предсказать план выполнения запроса и кол-во инструкций процессора\дискового IO нужных для его выполнения. Давай просто запретим параллельные коннекты, для того, чтобы отчёт гарантированно выполнился и никому не мешал ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:49 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyЕсли что могу проредить/причесатьЯ о цензуре даже не думал, не надо :) Симонов Денисуспокойся. Не все такие как DSЯ вроде спокоен. А на ДС я давно кладу, когда надо, и прислушиваюсь, когда надо :) Меня просто расстраивает отсутствие конструктива и альтернативных разумных предложений. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:52 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, Попробую прочистить ХШ Сибирякова :) 1. Таймауты для транзакций - в целом нужны. 2. В моих приложениях они должны задаваться при старте каждой конкретной транзакции. Если такой параметр не задан - из конфига сервера. По умолчанию - бесконечность. Код: sql 1.
ибо у меня несколько сортов транзакций - пользовательский интерфейс (хоть сто лет на чтении), до 2 сек на реакцию - пакетная обработка (до нескольких часов) - аналитические отчеты (до минут) - оперативные отчеты до 2 сек - OLTP - до 500 мс один параметр в конфиге сервера ничего не решит, при этом на него уйдет уйма столь ценного меха времени разработчиков. 3. С клиентской стороны должен быть гарантированный вызов исключения. 4. Пришло время осенне-зимнего периода донаций. Как обычно, через Пешкова? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:53 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНет смысла обсуждать какую-либо фичу где угодно, потому что вы всё равно сделаете по-своему.Ты только это и способен сказать, я в курсе :) Dimitry SibiryakovПоследняя попытка обсудить что-то в firebird-devel закончилась полным молчаниемТы про своё дурацкое не умное предложение грантовать GTT все права ? Я тебе сразу сказал, что оно дурацкое не умное. И в трекере это подтвердили, не зависимо от меня. Или ты про свой вопрос о правах UDR ? Так это не обсуждение, это вопрос, хочешь обсуждения - предложи что-нить не дурацкое умное ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:56 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
это мы таким образом приходим что таймаут можно выставить в трёх местах - на базу данных (database.conf) - при подключении - при старте транзакции мне кажется либо второй либо третий пункт здесь лишний. Кстати может ли потребоваться установить лимит на автономную транзакцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:00 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladТы упираешь на то, что нет возможности предсказать время выполнения этого запроса и настроить для него правильный таймаут, но это ничем не отличается от невозможности предсказать план выполнения запроса и кол-во инструкций процессора\дискового IO нужных для его выполнения. Не, ну зачем передергивать? Я указываю на то, что время жизни выполняемого SQL запроса в системе может менятся. И что неправильная настройка приведет к тому, что запрос перестанет выполнятся. Т.е. не просто замедлится запрос, а прервется. Я могу предвидеть, что запрос выполняется от Н до Н+10 минут на текущих доступных данных/индексах и на текущем доступном железе. Любые подвижки в данных/индексах или в железе - и опять придется пересматривать, что и где поплыло. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:04 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
pastor1. Таймауты для транзакций - в целом нужны. 2. В моих приложениях они должны задаваться при старте каждой конкретной транзакции. Если такой параметр не задан - из конфига сервера. По умолчанию - бесконечность. Код: sql 1.
ибо у меня несколько сортов транзакций ... один параметр в конфиге сервера ничего не решит, при этом на него уйдет уйма столь ценного меха времени разработчиков. 3. С клиентской стороны должен быть гарантированный вызов исключения. 4. Пришло время осенне-зимнего периода донаций. Как обычно, через Пешкова? 1. Ну так и я о том же :) 2. Именно это и предлагается. Разве что про кол-во меха переоценено :) Ну и я не вижу реакции на 14967127 , мне этот путь пока что кажется оптимальным компромиссом между кол-вом настроек и функционалом. 3. Есс-но, обломанный запрос вернёт isc_cancelled (или какой-нить isc_query_timeout). Обломанный аттач\тр-ция венут ошибку при попытке с ними работать. Если сильно припечёт, можно подумать о клиентских колбеках для события таймаута. Но тут же не хотят думать, тут хотят всё похерить не думая. 4. Это не ко мне :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:07 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladИли ты про свой вопрос о правах UDR ? Так это не обсуждение, это вопрос, хочешь обсуждения - предложи что-нить умное Чтобы предложить что-нибудь умное, надо убедиться, что то, что есть - глупое. <оптимизьм on> Может, Адриано уже обо всём побеспокоился, поскольку та тема уже поднималась два года назад. Но, поскольку обсуждение как обычно было невнятное, его результата я не помню. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:08 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денисэто мы таким образом приходим что таймаут можно выставить в трёх местах - на базу данных (database.conf) - при подключении - при старте транзакцииНе забываем, что самих таймаутов тоже предлагается (пока ещё) несколько видов. Симонов ДенисКстати может ли потребоваться установить лимит на автономную транзакцию?Конечно может. Думаю этот вопрос будет решён так: - значение по умолчанию - значение из родительской тр-ции - если введём полный синтаксис св-в тр-ции для автономок, то там и таймаут можно будет задать тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:10 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ну так прояви настойчивость. Хоть раз в полезном русле :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:11 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMasterНе, ну зачем передергивать?Веришь - я не передёргиваю, я пишу так, как я тебя понимаю. Вот скажи - чем тебе вредят таймауты, отключенные по умолчанию ? Чем ? DarkMasterЛюбые подвижки в данных/индексах или в железе - и опять придется пересматривать, что и где поплыло.Ну так при чём тут таймауты ? Поплыть может и без них :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:13 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денис- на базу данных (database.conf) - при подключении - при старте транзакции мне кажется либо второй либо третий пункт здесь лишний. Не лишний. Для RO/RW транзакций логично задавать разные таймауты + деление на уровне конфига. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:16 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladpastor1. Таймауты для транзакций - в целом нужны. 2. В моих приложениях они должны задаваться при старте каждой конкретной транзакции. Если такой параметр не задан - из конфига сервера. По умолчанию - бесконечность. Код: sql 1.
ибо у меня несколько сортов транзакций ... один параметр в конфиге сервера ничего не решит, при этом на него уйдет уйма столь ценного меха времени разработчиков. 3. С клиентской стороны должен быть гарантированный вызов исключения. 4. Пришло время осенне-зимнего периода донаций. Как обычно, через Пешкова? 1. Ну так и я о том же :) 2. Именно это и предлагается. Разве что про кол-во меха переоценено :) Ну и я не вижу реакции на 14967127 , мне этот путь пока что кажется оптимальным компромиссом между кол-вом настроек и функционалом. 3. Есс-но, обломанный запрос вернёт isc_cancelled (или какой-нить isc_query_timeout). Обломанный аттач\тр-ция венут ошибку при попытке с ними работать. Если сильно припечёт, можно подумать о клиентских колбеках для события таймаута. Но тут же не хотят думать, тут хотят всё похерить не думая. 4. Это не ко мне :) По второму пункту полностью солидарен. По третьему - возможно надо получать подтверждение из клиента, т.е. обработать как-то чтобы транзакция или запрос при желании могли быть продолжены. Если конечно он не на разрыв коннекта. Опять же регулировать можно в конфиге. Хотя возможно это уже перебор. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:17 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
afgm, не я имею ввиду что на уровне подключений тогда лишний. Раз мы задаём длительность на уровне транзакций. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:19 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad3. Есс-но, обломанный запрос вернёт isc_cancelled (или какой-нить isc_query_timeout). Обломанный аттач\тр-ция венут ошибку при попытке с ними работать. Обычный способ работы с ошибками в транзакции это [src Delphi]StartTransaction try ... Commit; except Rollback; raise; end;[/quot] Я очень сильно надеюсь , что никому не придёт в голову возвращать ошибку из isc_rollback_transaction() при попытке отката уже убитой транзакции. PS: Тех чудаков, которые ставят Commit в finally (привет, IBSurgeon) мне искренне не жаль. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:23 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денис, сходу не могу придумать аргументов. Так что звучит разумно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:30 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисПо третьему - возможно надо получать подтверждение из клиента, т.е. обработать как-то чтобы транзакция или запрос при желании могли быть продолжены. Если конечно он не на разрыв коннектаЕсли инициатор отмены - клиент, то, технически, можно сделать колбеки до и после отмены. Симонов ДенисХотя возможно это уже переборВот-вот :) Если же отмена возникает на сервере, то я не думаю, что он должен консультироваться с клиентом. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:40 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЯ очень сильно надеюсь, что никому не придёт в голову возвращать ошибку из isc_rollback_transaction() при попытке отката уже убитой транзакции. И, кстати: использовать bad_trans_handle в качестве ошибки, возвращаемой при попытке использования убитой транзакции - тоже плохая идея. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:41 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЯ очень сильно надеюсь , что никому не придёт в голову возвращать ошибку из isc_rollback_transaction() при попытке отката уже убитой транзакции.А почему, собственно ты так сильно на это надеешься ? Как по мне, тут самое место ошибке isc_bad_tra_handle (ну или isc_cancelled, если это будет возможно). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:42 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladА почему, собственно ты так сильно на это надеешься ? Потому что в документации по IB API недвусмысленно написано "isc_rollback_transaction() никогда не обламывается и гарантированно завершает транзакцию". И это правильно (в чём я имел возможность убедиться на обратном примере с ODBC). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:48 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
[quot hvlad]Симонов Денисэто мы таким образом приходим что таймаут можно выставить в трёх местах - на базу данных (database.conf) - при подключении - при старте транзакцииНе забываем, что самих таймаутов тоже предлагается (пока ещё) несколько видов. [quot] для разрыва коннекта можно указывать в 1 и 2 для отмены транзакции в 1 и 3 для отмены оператора 1 и ? hvladСимонов ДенисКстати может ли потребоваться установить лимит на автономную транзакцию?Конечно может. Думаю этот вопрос будет решён так: - значение по умолчанию - значение из родительской тр-ции - если введём полный синтаксис св-в тр-ции для автономок, то там и таймаут можно будет задать тоже как по мне так нужны все варианты. Из родительской если явно ничего не указано. Первый вариант если только явно описан в синтаксисе (timeout default) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 16:59 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladDarkMasterНе, ну зачем передергивать?Веришь - я не передёргиваю, я пишу так, как я тебя понимаю. Вот скажи - чем тебе вредят таймауты, отключенные по умолчанию ? Чем ? DarkMasterЛюбые подвижки в данных/индексах или в железе - и опять придется пересматривать, что и где поплыло.Ну так при чём тут таймауты ? Поплыть может и без них :) Мне отключенные таймауты не мешают. Меня смущает необходимость обязательных телодвижений при штатном замедлении запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 17:05 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
DarkMaster, таймауты отключены - никаких телодвижений ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 17:06 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovПотому что в документации по IB API недвусмысленно написано "isc_rollback_transaction() никогда не обламывается и гарантированно завершает транзакцию". И это правильноЯ не говорю, что это не правильно. Я хочу аргументов, а не бла-бла вроде:Dimitry Sibiryakovв чём я имел возможность убедиться на обратном примере с ODBC Ибо завтра ты будешь утверждать обратное, а у меня не будет аргументов :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 17:10 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЯ хочу аргументов Каких аргументов ты хочешь? У приложения есть два способа завершить транзакцию: isc_commit_transaction() и isc_rollback_transaction(). Третьего не дано, а значит хотя бы один из этих способов должен работать вне зависимости от текущего состояния транзакции. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 17:20 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, и какие проблемы влечёт за собой isc_bad_trans при попытке сделать роллбек несуществующей тр-ции ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 17:28 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladкакие проблемы влечёт за собой isc_bad_trans при попытке сделать роллбек несуществующей тр-ции ? Сначала возникает недоумение: "и что мне теперь делать", ответом на которое служит "да и забить на эту ошибку". Что, собственно, и равноценно вообще отсутствию ошибки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 17:45 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСначала возникает недоумение: "и что мне теперь делать"Обнулить своё хендл тр-ции и отпустить связанные с ней ресурсы. Dimitry SibiryakovЧто, собственно, и равноценно вообще отсутствию ошибки.Тебе равноценно - игнорируй её. Но не заставляй других делать каку... Dimitry SibiryakovЯ очень сильно надеюсь , что никому не придёт в голову возвращать ошибку из isc_rollback_transaction() при попытке отката уже убитой транзакции.Ну как, прошло ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 17:49 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladОбнулить своё хендл тр-ции и отпустить связанные с ней ресурсы. Угу, это при ошибке. А что делать в случае отсутствия этой ошибки? Сэкономлю время, поскольку ответ будет "обнулить своё хендл тр-ции и отпустить связанные с ней ресурсы". Так в чём фишка? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 17:55 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТак в чём фишка?В том, что нельзя прятать ошибки\события от пользователя. Если тебе по барабану, от чего и как закрылась твоя тр-ция, то есть другие люди, которые (моют руки) реагируют на ошибки. Конструктив есть, или ты опять упёрся ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 18:25 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladВ том, что нельзя прятать ошибки\события от пользователя. Эта ошибка/событие произошло не здесь. Поведение Rollback в данном случае уже будет "снежный ком", который как раз обычно и прячет ошибки от пользователя. В вышеприведённом коде если обработать ошибку и выкинуть исключение из Rollback, оно перекроет оригинальный eхception и пользователь уже никогда не узнает что там было. Если ты никогда на эти грабли не наступал, то... уж не знаю - завидовать или сочувствовать. hvladКонструктив есть, или ты опять упёрся ? Я высказал своё мнение "rollback не должен возвращать ошибок". Оно отлично от твоего. Что ты посчитаешь в данном случае "конструктивом"? Что я изменю своё мнение? Или приведу ещё десяток граблей на которые наступал в дополнение к уже названным? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 18:33 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Да, и кстати о таймаутах на транзакцию и коннект: вот есть приложение, оно соединилось с базой и что-то там себе делает. К базе не обращается . Вообще. В какое место вы собираетесь пихать ошибку таймаута? Подождёте следующего обращения к базе? Которым может быть как раз дисконнект?.. Чуть посложнее задача: приложение соединилось с базой, подписалось на события и что-то там себе делает. К базе опять же не обращается . Собираетесь ему обломать всю малину или только первичный коннект? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 18:53 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovДа, и кстати о таймаутах на транзакцию и коннект: вот есть приложение, оно соединилось с базой и что-то там себе делает. К базе не обращается . Вообще. В какое место вы собираетесь пихать ошибку таймаута? Подождёте следующего обращения к базе? Которым может быть как раз дисконнект?.. Чуть посложнее задача: приложение соединилось с базой, подписалось на события и что-то там себе делает. К базе опять же не обращается . Собираетесь ему обломать всю малину или только первичный коннект? конечно при обращении когда же ещё. А как сейчас делается при отмене оператора или срубании коннекта через таблицы мониторинга? В чём проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 18:58 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovВ вышеприведённом коде если обработать ошибку и выкинуть исключение из RollbackТ.е. ты озаботился вод таким вот кодом (с IBX\FIB+\etc) Код: pascal 1. 2. 3. 4. 5. 6. 7.
Да ? 1. Этот код изначально не полон, т.к., тут не определена реакция на исключение в Rollback. Например, IBTransaction.Rolback может вызвать исключение даже до самого роллбека, ибо он вызывает кучу пользовательских событий (BeforeTransactionEnd). Но даже если мы забьём на вышесказанное и поклянёмся никода не кидать исключения в BeforeTransactionEnd, то 2. Кто заставляет метод Rollback высокоуровневой (!) компоненты кидать исключение при обнаружении isc_bad_trans, а не обработать его более цивилизованно ? В моей очень старой копии IBDatabase.pas, например, есть обработка ошибки isc_network_error с вызовом DefaultDatabase.ForceClose (я уже сам успел забыть об этом и немало удивился, когда это сейчас обнаружил) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 19:00 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovДа, и кстати о таймаутах на транзакцию и коннект: вот есть приложение, оно соединилось с базой и что-то там себе делает. К базе не обращается . Вообще. В какое место вы собираетесь пихать ошибку таймаута?Коннект разорвётся по истечении таймаута. А вот приложение узнает об этом - при попытке что-то сделать в коннекте - если мы сделаем спец. колбек и приложение зарегистрирует его обрабтчик - то сразу Dimitry SibiryakovЧуть посложнее задача: приложение соединилось с базой, подписалось на события и что-то там себе делает. К базе опять же не обращается . Собираетесь ему обломать всю малину или только первичный коннект?Это можно обсудить. Сходу - я бы не стал для обрубать коннект во время ожидания ивентов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 19:04 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
в какой-то степени я согласен с камрадом Сибиряковым. Ибо у нас уже есть асинхронный обрыв коннекта, через мониторинг. В результате которого клиент для всех операций с данным хендлом получает isc_att_shutdown, кроме дисконнекта, который проходит без ошибок. Я это делал сознательно, ибо так оно казалось правильным. Не вижу принципиальной разницы для транзакций, кроме нюансов реализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 19:04 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
dimitr, одно дело категорично кричать что нужно сделать только так и никак иначе, а другое обсуждать с аргументированием своей позиции (что камрад Сибиряков начал делать со скрипом и только из-под палки :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 19:06 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, он таки поддается дрессировке! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 19:41 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladКоннект разорвётся по истечении таймаута. А вот приложение узнает об этом - при попытке что-то сделать в коннекте - если мы сделаем спец. колбек и приложение зарегистрирует его обрабтчик - то сразу Уточни как именно разорвётся коннект и как сообщение о коллбэке попадёт на клиента. Для этого нужно чтобы клиентская сторона вызвала select/recv, нет?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 19:42 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЭтот код изначально не полон, т.к., тут не определена реакция на исключение в Rollback. Этот код - результат многолетнего хождения по граблям. И я на данный момент считаю его правильным, просто потому, что все другие варианты облажались. Я не настаиваю, что этот код абсолютно правильный, но, повторюсь, на данный момент я не изобрёл ничего лучшего. И таки нет, это не код конкретных IBX/FIB+, это код использует мою собственную обёртку, в которой Rollback гарантированно ничего не выкидывает. Именно потому, что мне никогда в голову не пришла ни одна идея как можно "обработать его более цивилизованно". О чём я, впрочем, уже сказал выше. В-общем, я всё уже сказал. Повторять по несколько раз только потому, что до некоторых аргументация не доходит с первой попытки, не собираюсь. В конце концов, это же вам потом отвечать на вопросы в firebird-support, не мне. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 20:10 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovhvladКоннект разорвётся по истечении таймаута. А вот приложение узнает об этом - при попытке что-то сделать в коннекте - если мы сделаем спец. колбек и приложение зарегистрирует его обрабтчик - то сразу Уточни как именно разорвётся коннект и как сообщение о коллбэке попадёт на клиента. Для этого нужно чтобы клиентская сторона вызвала select/recv, нет?..Я выше писал о том, что таймауты могут отслеживаться как на клиенте, так и на сервере. В случае клиентского таймаута всё тривиально - как только таймер таймаута на клиенте сработал, он вызывает колбек и рвёт соединение (закрывает сокет, если это tcp). В случае серверного таймаута всё происходит так же, как и при отмене через мониторинг\шатдауне БД, т.е. клиент ничего не узнает, пока не см. п1 выше ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 20:15 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladВ случае серверного таймаута всё происходит так же, как и при отмене через мониторинг\шатдауне БД, т.е. клиент ничего не узнает, пока не см. п1 выше И тут возникает логичный вопрос к авторам этого предложения: в чём вообще смысл таймаута на коннект? Сократить число подключений? Ну так см. п1 выше почему это не будет работать без поддержки со стороны клиентского приложения. А при наличии таймаута в приложении оно всё может сделать и само, без модификаций в сервере. Так в чём фишка?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 20:33 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovhvladВ случае серверного таймаута всё происходит так же, как и при отмене через мониторинг\шатдауне БД, т.е. клиент ничего не узнает, пока не см. п1 выше И тут возникает логичный вопрос к авторам этого предложения: в чём вообще смысл таймаута на коннект? Сократить число подключений? Ну так см. п1 выше почему это не будет работать без поддержки со стороны клиентского приложения. А при наличии таймаута в приложении оно всё может сделать и само, без модификаций в сервере. Так в чём фишка?.. при реалтайме я должен пристрелить поток вместе с коннектом, если ответа нет более N сек. станет намного легче следить за пулом коннектов, вовремя переключаться на другие источники данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 21:03 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
pastorя должен пристрелить поток вместе с коннектом, если ответа нет более N сек. А теперь повторяю вопрос медленно: зачем нужен таймаут на неактивность коннекта? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 21:06 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovв чём вообще смысл таймаута на коннект? Сократить число подключений? Ну так см. п1 выше почему это не будет работать без поддержки со стороны клиентского приложения будет работать на 95%. Сервер сам освободит все ресурсы ядра, живыми останутся лишь сокет и клиентские хендлы. Для многих целей этого вполне достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 21:17 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovэто не будет работать без поддержки со стороны клиентского приложенияКогда я говорю "клиент" - речь о fbclient'е. Не думал, что и это надо расжёвывать. Dimitry SibiryakovА при наличии таймаута в приложении оно всё может сделать и само, без модификаций в сервереЕщё раз - таймаут не в приложении, он в клиенте. Серверный таймаут к этому не относится. Dimitry SibiryakovТак в чём фишка?..Сделать то, что тебе самому делать лениво. Сделать это правильно и для всех. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 21:48 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladКогда я говорю "клиент" - речь о fbclient'е. Не думал, что и это надо расжёвывать. Не это надо разжёвывать, а реализацию. Как будешь таймаута ждать? Создавать отдельный поток при каждом коннекте? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 21:54 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, а) нет никакой реализации на данный момент, есть обсуждение б) не надо меня держать за дурачка ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 22:30 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladа) нет никакой реализации на данный момент, есть обсуждение И это обсуждение не может включать в себя варианты реализации?.. Я вот вижу вариант реализации с дополнительным потоком. А что у тебя на уме? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 22:55 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Уффф.... я все-таки одолел этот топик. Сначала порывался начать отвечать, недочитав до конца Тема наболевшая, но я ее для себя решил. да-да FBScanner я поэтому и начал писать. Dimitry SibiryakovИ тут возникает логичный вопрос к авторам этого предложения: в чём вообще смысл таймаута на коннект? Сократить число подключений? зришь в корень. Да отстрелить к чм рукожопое приложение, которое держит OAT. Выбросить его немогу уже который год, но с помощью таймаутов на активность коннекта могу продолжать работать и далее. Постепенно изымаю у него функции, передавая их новым приложениям, к которым есть исходники. И разумеется я ЗА 14967127 , чтобы админ сервера мог задать общую планку для разных приложений. Не укладываешься - учи матчасть. Сервер общий, ты тут не один. DarkMasterhvladЕсс-но, самый первый раз таймер взводится в момент начала выполения запроса. Ты может таки начнёшь хоть чуть-чуть думать, перед тем как писать ? Гм... Я не могу со 100% уверенностью указать длину таймаута. Что непонятно-то? Все остальное - так, возможные сопутствующие проблемы. ну разумеется! Я тебе больше скажу: ты как разработчик и несможешь сказать, как на разных серверах разных заказчиков будет выполняться твой запрос. Какой там будет план, вследствие разного заполнения тех же таблиц. И ведь (о ужас!), на сервере может быть не только твое приложение. И не только твое приложение может работать с твоей базой. Поэтому таймауты, заданные из приложения - суть зло, которые админы всегда будут давить. И будут правы. У одного есть ресурсы на покупку приличного сервера (да, это про тебя IP ) , и он задаст для своего сервера одну планку. А у другово - "чем богаты тем и рады". Админа нет, и таймаут выключен по умолчанию конфиге. Когда нибудь сделает - и ладно. Так что считаю неразумными стенания "и куда потом податься бедному разработчику". Сначала огребет админ, за установленный в конфиге параметр таймаута. А если админа нет - откуда отстрел по таймауту возникнет? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 23:04 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Так все-таки таймауты точно будут делать или обсуждается необходимость этого? Из топика это не совсем понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 07:46 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 07:54 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Почитал сегодня утром топик, и никак не могу сообразить, таймауты хорошо это или плохо. Взять тот же таймаут для коннекта. Если пользователь оставил программу подключенной к БД и ушел до утра, то утром он должен прийти и продолжить работать. Принудительно его отключать не считаю правильным (либо делать дисконнект уже из программы). Если же кто-то подключился и ушел в отпуск - тут не знаю, отключать ли его. А вот если кто-то подключился, запустил обработку в снапшот-транзакции и и свалил в отпуск - тут коннект грохать надо, так как скоро будут проблемы. Таймаут для запроса - аналогично. Например, на базе одного филиала отчет будет делаться 1 минуту, на другом филиале - 10 минут. Или какая-то общая обработка - в крупном филиале она будет делаться полчаса (причем в снапшоте), в другом - менее минуты. Возможно, имеет смысл завершать по таймауту конкретные ситуации - запущенные достаточно долгое время concurrency/consistency-транзакции, по которым нет активности, слишком тяжелые запросы (формирование 1 записи более 10 секунд). Но опять-таки, в высоконагруженной в текущий момент системе возможно значительное ухудшение скорости получения строки/общего времени выполнения запроса и будет отлуп на ровном месте. Поэтому предлагаю свести в один список, где и для чего нужны различного рода таймауты, а так же где они наоборот, внесут негативный эффект. Это можно будет сразу указать в описании к их конфигурированию (если все-таки будут). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 08:49 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
CyberMax, прежде чем устанавливать значения таймаутов надо хорошенько подумать. В любом случае всегда можно вернуть дефолтное значение (отсутсвие таймаута) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 09:35 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
А почему бы ИД транзакции не оставить хоть и выполнился запрос. Так хоть можно понять от какой транзакции это чудо. Транзакция то в списке болтается. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 09:47 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Дениспрежде чем устанавливать значения таймаутов надо хорошенько подумать. В любом случае всегда можно вернуть дефолтное значение (отсутсвие таймаута) Дык обо что и речь. В какую сторону думать? Как думать? Что учитывать? И стоит ли оно того? Добавлю еще два нюанса: 1.Выполнение запроса после массового удаления/апдейта, оно же проблема сборки мусора. Вот обозначили выполнение апдейта в 2 секунды (проплывала в топике такая цифра). Сегодня обновили много записей в разных таблицах (установили обновление версии). Апдейт начал выполняться (а это может быть и SP с селектами) и стал собирать мусор. В итоге вместо 1 секунды делался 5 секунд. То же самое может и с выборками произойти (журналы, отчеты). 2. У GTT есть противная вещь - нелинейная деградация времени селекта при вставке/удалении, когда движок проходит по всем версиям записей. То есть запрос (EB, SP, неважно), работающий с разным количеством строк в GTT, даст разное время выполнения, причем разница может отличаться на несколько порядков. Хотя сам запрос будет абсолютно корректным. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 10:27 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
CyberMaxВот обозначили выполнение апдейта в 2 секундыТаймаут в 2 сек - это полный маразм, давайте без фанатизма, плс Таймауты, в первую очередь, предназначены для предотвращения ненужного потребления ресурсов (тот же застрявщий OST, толпа неактивных коннектов, жрущих память и т.п.) и как страховка от граничных (форс-мажорных, если хотите) ситуаций (кривой запрос, выполняющийся слишком долго и т.д.) Не нужно искать realtime в таймаутах ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 10:40 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
CyberMaxУ GTT есть противная вещь - нелинейная деградация времени селекта при вставке/удалении, когда движок проходит по всем версиям записей.Я так понимаю, что речь о многократных вставках и удалениях в одной тр-ции ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 10:41 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
CyberMax, просто не надо ставить таймаут когда это не требуется. Вот моё мнение когда использование таймаутов оправдано: - на хостинге (чтобы ограничить ресурсы) - в целях отладки приложения (хотя можно воспользоваться и трейсом) - для админов, например срубать забытый кем-то IBExpert на двое суток. Пытаться предсказать что запрос отработает в течении 5 секунд однозначно не стоит. Если уж устанавливать таймаут, то как минимум с 10 кратным запасом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 10:46 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЯ так понимаю, что речь о многократных вставках и удалениях в одной тр-ции ? Да. Топик на эту тему создавал джва года назад. Насчет тикета в трекере не знаю, есть ли он. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 10:49 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
CyberMax, это уже оффтоп. Тут бедный Евгений Болтик и так потерял нить беседы. Задал один вопрос, а в итоге уже на 7 страниц обсуждение таймаутов идёт (хотя косвенно это имеет отношение к его вопросу). Но теперь отделять новый топик уже поздно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 10:54 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
CyberMax, ну так ещё тогда выяснилось, что GTT тут не причём и все возможные рецепты были даны. Так что, да, завязываем с оффтопом :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 11:00 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денисбедный Евгений Болтик и так потерял нить беседыЧитая его тексты, я ещё ни разу не видел в них нити. Скорее запутанные клубки из разных нитей. Так что либо ему это и так привычно, либо это такая месть с нашей (моей) стороны :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 11:01 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladCyberMaxВот обозначили выполнение апдейта в 2 секундыТаймаут в 2 сек - это полный маразм, давайте без фанатизма, плс +1 Забыл сказать: у меня стоит таймаут 8часов. Люди больше не работают. Обед нормально переждет, а на ночь надо программы закрывать. У меня просто нет отчетов (или регламентых расчетов), которые надо запускать с вечера, чтобы они были готовы к утру. Избавился. P.S. заодно отстреливаются коннекты от IBE, забытые программистами в терминале. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 11:30 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
А будет ограничение по минимальному времени таймаутов? Я не спорю, что 2 секунды или 5 или 10 маразм, но найдутся же граждане... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 11:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
тут ещё в конфиге придётся вводить дополнительные единицы измерения s, m, h (наподобие k, m, g) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 11:37 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисCyberMax, просто не надо ставить таймаут когда это не требуется. Вот моё мнение когда использование таймаутов оправдано: - на хостинге (чтобы ограничить ресурсы) - в целях отладки приложения (хотя можно воспользоваться и трейсом) - для админов, например срубать забытый кем-то IBExpert на двое суток. Пытаться предсказать что запрос отработает в течении 5 секунд однозначно не стоит. Если уж устанавливать таймаут, то как минимум с 10 кратным запасом. п-а-а-звольте! 5 сек - это уже 20-ти кратный запас. 2 сек - максимальное время ожидания, не приводящее к баттхерту дискомфорту пользователя для всяких многозвенок важно вовремя понять, что очередной сервер врезал дуба и попытаться переключиться на резервные источники. для многих других приложений такой таймаут, есс-но, неприменим. поэтому я последовательно выступаю за явное указание таймаута для каждой транзакции (ну или коннекта). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 12:33 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
oleg_m, по моему опыту для "неактивных транзакций" надо ставить таймаут 60 минут, а то и 30 минут. Неактивные коннекты пусть живут хоть 100 лет. И запросы пусть выполняются хоть по 5 часов, если их так написали, и такие данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 12:33 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
pastorдля всяких многозвенок важно вовремя понять, что очередной сервер врезал дуба и попытаться переключиться на резервные источники. в многозвенках обычно сложно понять, кто и где врезал дуба. Я имею в виду клиентскую сторону, от которой до БД слишком много звеньев со своими особенностями. pastorпоэтому я последовательно выступаю за явное указание таймаута для каждой транзакции (ну или коннекта). а я последовательно выступаю за таймауты по неактивности, и в первую очередь для транзакций. На текущий момент это массовая беда. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 12:38 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladТаймаут в 2 сек - это полный маразм, давайте без фанатизма, плс Таки согласен на 5 сек. hvladТаймауты, в первую очередь, предназначены для предотвращения ненужного потребления ресурсов (тот же застрявщий OST, толпа неактивных коннектов, жрущих память и т.п.) и как страховка от граничных (форс-мажорных, если хотите) ситуаций (кривой запрос, выполняющийся слишком долго и т.д.) Все перечисленные проблемы мне фиолетовы. Меня интересует только гарантированное время получения отклика, хотя бы для переключения на резервный источник данных. Сейчас приходится прибивать ВЕСЬ поток вместе с коннектом. А это очень грязное дело. hvladНе нужно искать realtime в таймаутах И куда же тогда податься бедному еврею? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 12:39 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
pastor, таймауты здесь тебе не помогут. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 12:40 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovИ это обсуждение не может включать в себя варианты реализации?.. Я вот вижу вариант реализации с дополнительным потоком. А что у тебя на уме? Вот так и кончаются все попытки обсудить варианты реализации. Влад любит аргументы, поэтому приведу один в пользу своего варианта реализации: в дополнительном потоке не обязательно доложен быть простой sleep/WaitFor, там можно крутить цикл select-recv для приёма пакетов их сокета/трубы/ДЕ_знает_чего_у_ХНЕТа, что в свою очередь даёт: 1) Возможность серверу в любой момент послать клиенту пакет "отвались, бездельник" после чего серверные таймауты работают на 100% вместо 95. 2) Оперативный приём, ответ и посылка ватчдог пакетов, что решает проблему переполнения системного буфера и оперативного обнаружения оборванной связи вне зависимости от настроек keep alive. 3) Возможность доставлять события в том же коннекте, без установки дополнительного. 4) С незначительным изменением сетевого протокола можно реализовать асинхронное API или реально параллельное использование одного коннекта разными потоками. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 12:54 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Денисpastor, таймауты здесь тебе не помогут. нужно иметь отличное зрение, чтобы на таком расстоянии увидеть "не помогут" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:08 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
pastor, просто таймауты никак не смогут обеспечить гарантированное время отклика. Думаю здесь вообще ничего не поможет. Получить от программы отклик с сообщением таймаут истёк - это совсем не то чего ожидает увидеть пользователь. Поэтому я и говорю что сфера их применения несколько иная. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:13 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
[quot kdv]pastorдля всяких многозвенок важно вовремя понять, что очередной сервер врезал дуба и попытаться переключиться на резервные источники. в многозвенках обычно сложно понять, кто и где врезал дуба. Я имею в виду клиентскую сторону, от которой до БД слишком много звеньев со своими особенностями. это в кривых многозвенках. речь идет именно о последнем звене и уходе isc_execute_immediate в глухую несознанку, без возможности получения статуса и без возможности привести ее в чувство без убиения вместе с потоком. как вариант - опциональный callback (с дефолтным "продолжайте до упора") для всех вызовов. в т.ч. commit ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:14 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov2) Оперативный приём, ответ и посылка ватчдог пакетов, что решает проблему переполнения системного буфера и оперативного обнаружения оборванной связи вне зависимости от настроек keep alive . А вот ЭТО было бы весьма и весьма неплохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:21 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovhvladа) нет никакой реализации на данный момент, есть обсуждение И это обсуждение не может включать в себя варианты реализации?.. Я вот вижу вариант реализации с дополнительным потоком. А что у тебя на уме?Поток на коннект в клиенте - это маразм перебор. Есс-но, таймеры будут жить не в рабочем потоке приложения, но (на первый взгляд) достаточно одного служебного потока на все цели. На уме у меня - получить наиболее полную спецификацию данной фичи до начала её реализации. Тут уже прозвучали некоторые не самые очевидные нюансы, жду ещё :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:30 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladСимонов Денисбедный Евгений Болтик и так потерял нить беседыЧитая его тексты, я ещё ни разу не видел в них нити. Скорее запутанные клубки из разных нитей. Так что либо ему это и так привычно, либо это такая месть с нашей (моей) стороны :) Хочется нити, то тогда выходи на контакт и обсуждай без посторонних. Потому что забросаете фигней не по теме и хотите нормальной беседы. Я готов по скайпу в живую нормально объяснить, если чтиво дурно пишу. И будет обсуждение не 2-3 дня, а 1 час т.к. твой ответ будет 1. "не понял я тебя, иди подумай" 2. "мы это делать не будем" 3. "это запланирована голосуй" Я тут выше в этом балагане задал вопрос. А почему бы ИД транзакции не оставить хоть и выполнился запрос. Так хоть можно понять от какой транзакции это чудо. Транзакция то в списке болтается Мы тут не русский изучаем, чтобы придраться что знак вопроса не поставил. " почему бы " это то же знак вопроса. По балагану на твоем месте я бы: 1.Раз понимаешь о чем речь, про тайматуты, сделал первый вариант и сказал желающим попробуйте. И потом давай корректировать под ситуации. Причем для тестирующих на первой паре можно было бы такое на основе RDB$SET_CONTEXT сделать. Стартанул транзакцию кодовое слова для таймаута и время. На тестируются тестеры, сделаете изменения в ODS. 2.или создал трекер(или как оно там) кому надо голосуйте. Т.к. сейчас нету времени. И тут как всегда, желающие ждут пока благодать на сею вещь не сойдет. PS Собеседник был прав. На второй день когда проснулся глазам своим не поверил. Думал что не моя тема. С трудом прочитал... Я вообще не понимаю как можно еще и работать успевать, если столько тут писать. Или я один дурак чем старей, тем больше работаю и меньше общаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:30 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений БолтикХочется нитиЖеня, мне - не хочется. Не я задаю вопросы. То, как ты пишешь, после первого прочтения вызывает недоумение, после второго - раздражение, после N лет игнорируемых просьб писать по-человечески приходит ощущение что ко мне обращается человек, которому глубоко наплевать на собеседника. Так понятно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:36 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений БолтикА почему бы ИД транзакции не оставить хоть и выполнился запрос. Так хоть можно понять от какой транзакции это чудо. Транзакция то в списке болтается именно этот твой вопрос считаю вполне осмысленным. Про RDB$SET_CONTEXT ты чушь говоришь. Так делать точно никто не будет. И про ODS тоже. Пока вообще не вижу как таймауты могут на ODS повлиять. Хотя может я и ошибаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:37 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovВлад любит аргументы, поэтому приведу один в пользу своего варианта реализации: в дополнительном потоке не обязательно доложен быть простой sleep/WaitFor, там можно крутить цикл select-recv для приёма пакетов их сокетаТы предлагаешь вообще всю сетевую работу вынести в этот отдельный поток, или только служебные задачи ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:45 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
pastorМеня интересует только гарантированное время получения отклика, хотя бы для переключения на резервный источник данных. Сейчас приходится прибивать ВЕСЬ поток вместе с коннектом. А это очень грязное дело.Ну так есть же fb_cancel_operation. pastorhvladНе нужно искать realtime в таймаутахИ куда же тогда податься бедному еврею?Для начала - в realtime OS :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:46 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladПоток на коннект в клиенте - это перебор. Сейчас этот поток создаётся при использовании эвентов. Я предлагаю создавать его безусловно. Среднее приложение устанавливает один, максимум два коннекта одновременно, так что оптимизация в этом месте мне кажется излишней, поскольку усложнит код без реальной потребности. Но, конечно, ты сможешь написать мегакод, который в одном дополнительном потоке сможет обслужить все таймауты всех коннектов, а заодно и события, ватчдоги и прочие пакеты. Я в тебя верю. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:48 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЕвгений БолтикХочется нитиЖеня, мне - не хочется. Не я задаю вопросы. То, как ты пишешь, после первого прочтения вызывает недоумение, после второго - раздражение, после N лет игнорируемых просьб писать по-человечески приходит ощущение что ко мне обращается человек, которому глубоко наплевать на собеседника. Так понятно ? После того как с тобой общаются, по другому не получается. А особенно когда говоришь "N лет игнорируемых просьб". Это понятно? Я повторюсь у меня нет желания лабудить просто так, даже "не желания", а "времени нет". Я хочу продуктивно поговорить 15 мин и уйти со сцены в раздумья. Давай сделаем по другому я тебе предложу, что то без "игнора". Мы встретимся в скайпе, если будет у меня такое. Ты выслушаешь. И если предложу вроде как нужную мысль, ты ее на обсуждение. Якобы на вашем "человеческом" языке, мне даже не надо моего упоминания, что это мысль была моя. Лишь бы это появилось по возможности. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:54 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladТы предлагаешь вообще всю сетевую работу вынести в этот отдельный поток, или только служебные задачи ? Если бы у меня хватало мозгов чтобы разобраться в современном коде птицы, то лично я бы вынес туда весь приём пакетов от сервера и, возможно, их парсинг. (Надеюсь, для тебя не будет сюрпризом, что принимать пакеты из сокета и посылать их в него могут разные потоки. По крайней мере в Windows.) А отсылку пакетов оставил бы тем потокам, в которых вызываются функции API. Естественно, с сериализацией этой отсылки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:55 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик, тебя регулярно слушает Дмитрий Еманов, насколько я знаю. Так что : - про "N лет игнорируемых просьб" ты преувеличиваешь, - вторую жертву ты не получишь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 13:58 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений БолтикДавай сделаем по другому я тебе предложу, что то без "игнора". Мы встретимся в скайпе, если будет у меня такое. Ты выслушаешь. извиняюсь, что влезаю, но если человек не может изложить мысль в письме, то и в скайпе он ее не изложит. Иногда даже и в очном разговоре мысль трудно понять. Мы, правда, тут уже давно работаем телепатами, но у этой способности есть предел. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:03 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисЕвгений БолтикА почему бы ИД транзакции не оставить хоть и выполнился запрос. Так хоть можно понять от какой транзакции это чудо. Транзакция то в списке болтается именно этот твой вопрос считаю вполне осмысленным. Про RDB$SET_CONTEXT ты чушь говоришь. Так делать точно никто не будет. И про ODS тоже. Пока вообще не вижу как таймауты могут на ODS повлиять. Хотя может я и ошибаюсь. Я про RDB$SET_CONTEXT сказал как временное решение, чтобы не расширять синтаксис до момента осознания, что нужно. То есть временно не документируемый код. Я бы так сделал. Так быстрей можно понять, что нужно и что происходит. Про ODS это к тому, что я так понимаю могут добавиться команды. Если не повлияет то даже можно без RDB$SET_CONTEXT сразу реализовать расширение функционала для тестеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:04 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик Я про RDB$SET_CONTEXT сказал как временное решение, чтобы не расширять синтаксис до момента осознания, что нужно. То есть временно не документируемый код. Я бы так сделал. Так быстрей можно понять, что нужно и что происходит. Про ODS это к тому, что я так понимаю могут добавиться команды. Если не повлияет то даже можно без RDB$SET_CONTEXT сразу реализовать расширение функционала для тестеров. Ты не думал, что пока это будет тестироваться через RDB$SET_CONTEXT кто-нибудь заложится на это решение. А потом бац, и всё поменялось - код стал неработоспособен. К твоему сведению не каждая новая команда требует изменений ODS. Ответьте ему уж на вопрос Евгений БолтикА почему бы ИД транзакции не оставить хоть и выполнился запрос. Так хоть можно понять от какой транзакции это чудо. Транзакция то в списке болтается чтобы дальше обсуждению ничего не мешало. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:11 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕсли бы у меня хватало мозгов чтобы разобраться в современном коде птицыДело исключительно в желании, хватит пенять на мозги. Про мозги лучше с ё беседуй, ему твои нравятся :) Dimitry Sibiryakovя бы вынес туда весь приём пакетов от сервера и, возможно, их парсинг. ... А отсылку пакетов оставил бы тем потокам, в которых вызываются функции API. Естественно, с сериализацией этой отсылки.Берём любую ф-цию АПИ. Она пакует параметры, вызывает send и .... что дальше ? Ждёт ответа ? Но ведь recv вызывается в другом потоке. Тогда что же она ждёт ? Сигнала от этого другого потока ? А чем это лучше ожидания в recv ? Ок, получила она сигнал, что дальше ? Откуда-то выгребает пришедший пакет ? Т.е. опять ждёт на доступе к очереди с принятыми пакетами ? А, ты же предлагаешь чтобы доп. поток сам парсил принятые пакеты ! А что он делает с полученными данными ? С резалтсетами, статус-векторами, хендлами объектов ? Их ведь нужно предоставить рабочему потоку клиента. Кладём это всё в другой пакет и добавляем его в очередь ? :) Берём сервер приложений. Да, есть такие приложения, у которых вполне легально могут быть десятки и даже сотни хорошо нагруженных коннектов. Единый поток, работающий с сетью, сразу станет бутылочным горлышком. ЗЫ На самом деле центральный сетевой диспетчер (пусть и не в одном потоке) - это вполне рабочий подход. Но реализуется он не так, как ты написал. Но у нас есть дополнительные сложности на пути к нему: - в каждой ОСи соотв. АПИ не просто разное, а кардинально разное (по памяти - IOCP, epoll, kqueue) - в некоторых ОСях такого АПИ вообще нет - сочетать разные транспорты (протоколы) в едином диспетчере тоже не так просто ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:13 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисОтветьте ему уж на вопрос Евгений БолтикА почему бы ИД транзакции не оставить хоть и выполнился запрос. Так хоть можно понять от какой транзакции это чудо. Транзакция то в списке болтаетсяdimitr появится, ответит. Если посчитает нужным. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:15 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЕвгений Болтик, тебя регулярно слушает Дмитрий Еманов, насколько я знаю. Так что : - про "N лет игнорируемых просьб" ты преувеличиваешь, - вторую жертву ты не получишь :) За упомянутые "N лет", если ты игнорил ты был не прав. Ничего нового я вроде не предлагал. Только при попадание в ступор с сервером писал вам обоим. Были и мои ошибки и ваши(ну у тех кто до вас был). Я тоже не бог и бывает ошибки допускаю, но если я их нахожу, я тут же отписываюсь, мол сам дурак. Не успел намотал на ус "то что сказали" и сижу в норке. Если у тебя есть время, то мог бы и выслушать. А я не дурак чтобы кому то надоедать до игноров. Мог бы давно сказать мне не пиши, вместо игнора. Мне казалось, что либо ты либо он поможете при беде с сервером. Сейчас получается только он. Диме респект за то, что он меня хоть как то понимает и выслушивает. Но он не всесилен и сейчас такое впечатление в запарках по боле моих. Ответы долгие, это сказывается ..., т.к. поток данных у меня большой последнее время и могу забыть про что речь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:29 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений БолтикЗа упомянутые "N лет", если ты игнорил ты был не прав.Не вижу смысла это тут обсуждать. Добавлю только: - тебе спасибо за найденные проблемы в оптимизаторе - то, что ты мне писал, было в основном не по "моей" части, поэтому оно всё равно уходило к ДЕ - я не могу разорваться на части, тем более когда твой поток слов нужно сначала полдня расшифровывать Закончим на этом ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladБерём любую ф-цию АПИ. Она пакует параметры, вызывает send и .... что дальше ? Ждёт ответа ? Но ведь recv вызывается в другом потоке. Тогда что же она ждёт ? Сигнала от этого другого потока ? А чем это лучше ожидания в recv ? Ну, закладываясь на максимальный случай: эта функция помещает некоторый блок в некоторый список, в этом блоке есть хэндл event-а или адрес callback-функции, который и используется принимающим потоком после того как он положил в этот же блок адрес буфера с пришедшим пакетом (как есть или уже распарсенным). После создания этого блока и отсылки пакета функция может заниматься чем хочет, включая ожидание с таймаутом (буде какой-нибудь чудик таковой запросит), немедленный возврат в вызывающий код (буде она из пока не существующего асинхронного API) или что фантазия позволит. Получила сигнал - берёт из блока пришедший пакет, удаляет блок из списка и завершается, все счастливы. (ЕМНИП, именно так и работает лок-менеджер, только тот ждёт совсем не сетевые пакеты.) hvladБерём сервер приложений. Да, есть такие приложения, у которых вполне легально могут быть десятки и даже сотни хорошо нагруженных коннектов. Единый поток, работающий с сетью, сразу станет бутылочным горлышком. Ну, поздравляю, ты сам нашёл аргумент за создание отдельного потока на каждый коннект. (Что я и предлагал.) hvladНо у нас есть дополнительные сложности на пути к нему: - в каждой ОСи соотв. АПИ не просто разное, а кардинально разное (по памяти - IOCP, epoll, kqueue) - По счастью код этого потока не обязан собираться для всех ОСей из одного исходника - Старый добрый, имеющийся везде, select() имеет проблему с производительностью только если ему пихают много хэндлов, чего при системе "выделенный поток на каждый коннект" нет. hvlad- в некоторых ОСях такого АПИ вообще нет Назови OS где нет select(). hvlad- сочетать разные транспорты (протоколы) в едином диспетчере тоже не так просто И по счастью не нужно. Дело диспетчера - унифицировать список блоков ожидания. Каждый транспорт может обрабатываться разными функциями, благо коннект (и связанный с ним служебный поток) использует только один транспорт. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:36 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик, в большинстве случаев тебе могли бы помочь и другие форумчане, а не только разработчики FB. Но ты не умеешь правильно формулировать вопросы. Последний раз когда мы с тобой беседовали после долгого количества часов всё таки выяснилось, что ты хочешь материлизованные представления. Ты же поначалу писал какую то чушь про супер мега индекс. Отсюда и такое отношение. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:38 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНу, поздравляю, ты сам нашёл аргумент за создание отдельного потока на каждый коннект.Конечно нет. Dimitry SibiryakovПо счастью код этого потока не обязан собираться для всех ОСей из одного исходникаСпасибо тебе, добрый человек. Отлаживать 100500 реализаций одного и того же ведь ты будешь, правда ? Dimitry SibiryakovСтарый добрый, имеющийся везде, select() имеет проблему с производительностью только если ему пихают много хэндлов, чего при системе "выделенный поток на каждый коннект" нет.Поток на коннект - это последнее, что я буду рассматривать. Ну и подумай ещё о том, что 100 потоков, сидящих в select - это 100 вызовов ядра и 200 переключений контекста (если ты понимаешь, о чём я). На остальные "аргументы" я уже ответил выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:50 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
kdvЕвгений БолтикДавай сделаем по другому я тебе предложу, что то без "игнора". Мы встретимся в скайпе, если будет у меня такое. Ты выслушаешь. извиняюсь, что влезаю, но если человек не может изложить мысль в письме, то и в скайпе он ее не изложит. Иногда даже и в очном разговоре мысль трудно понять. Мы, правда, тут уже давно работаем телепатами, но у этой способности есть предел. Все нормально. Просто иногда проще по скайпу объяснить чем на пальцах "которые описываешь в тексте". Нарисовать картинку по быстрому. Да-да нет-нет. И весь разговор, а так день два три переписки не о чем. Еще и огребешь. Это к тому что http://www.sql.ru/forum/1042010/obsuzhdenie-a-mozhet-multi-indeks было на "19 авг 13, 20:10" и что узнали на "20 авг 13, 20:01" "материализованного представления". 2. про многотабличные индексы я тебе уже пару лет назад говорил что в сад Это не ответ. Это отговорка, а вось когда нить дойдет до мальчика. Дошло давно только называли по разному. Что было трудно отправить почитать. Я вот не понимаю как это можно было не понять знатокам про "материализованного представления". Я только увидел бы такую тему и по тексту сразу определил, что мол мальчик хочет вот это и отправил почитать. Без ругани и лишних вопросов. А по скайпу, только заикнулся бы, что типа сводные таблицы в индексе, меня бы сразу знаток на место поставил и сказал это вот это. А вообще я выше писал про общение по скайпу 3 варианта ответа. И будет продуктив. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:51 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladПоток на коннект - это последнее, что я буду рассматривать. А зря, поскольку это простейший (а стало быть надёжнейший) вариант и рассматривать любые другие стоит только после того, как будет доказано, что он не справится. KISS. Не будешь усложнять задачу - не придётся ломать голову над решением. hvladНу и подумай ещё о том, что 100 потоков, сидящих в select - это 100 вызовов ядра и 200 переключений контекста (если ты понимаешь, о чём я). Это переключения в один конец. Вызовы не вернутся, пока не будет необходимости. Надеюсь, тебе не придёт в голову дурная идея для ожидания таймаута коннекта поставить таймаут у select в сотую долю секунды и каждый раз когда оно вернётся проверять текущее время... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:01 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЕвгений БолтикЗа упомянутые "N лет", если ты игнорил ты был не прав.Не вижу смысла это тут обсуждать. Добавлю только: - тебе спасибо за найденные проблемы в оптимизаторе - то, что ты мне писал, было в основном не по "моей" части, поэтому оно всё равно уходило к ДЕ - я не могу разорваться на части, тем более когда твой поток слов нужно сначала полдня расшифровывать Закончим на этом - не надо благодарить, я там бежал чуть раньше кого то другого. Ваша благодарность это ваша работа и своевременный отклик. :) моя забота ошарашить вас багом или получить пендаля, если сам виноват. - тогда извиняюсь, что тревожил тебя. Мне по почте, если не сложно по каким вопросам тебе отправлять. Не охота лишний раз надоедать. Можешь просто не за раз, а переодически постить мол по этой теме, я это отфильтрую и потом буду писать только по теме. - да ладно последнии репорты были максимально просты несколько запросов и статистика. Хотя если не ты их смотришь тогда ты не знаешь. PS Если бы у Embarcadero были разработчики как вы, то была бы благодать в Delphi в плане правленых багов. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:11 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисЕвгений Болтик, в большинстве случаев тебе могли бы помочь и другие форумчане, а не только разработчики FB. Но ты не умеешь правильно формулировать вопросы. Последний раз когда мы с тобой беседовали после долгого количества часов всё таки выяснилось, что ты хочешь материлизованные представления. Ты же поначалу писал какую то чушь про супер мега индекс. Отсюда и такое отношение. Согласен. Кстати есть одна мысль могу по скайпу рассказать, а ты скажешь стоящая иль нет. А потом переварив предложишь здесь. Т.к. может такое где то есть и проще будет ткнуть в ту сторону. ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:15 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик, завязывай с флудом. Если хочешь чего спросить лучше создай отдельный топик. Обещаю не издеваться как прошлый раз. По скайпу мне общаться некогда. Я ещё и работаю. Сюда пишу в перерывах и чтобы мозги отвлечь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:19 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovhvladПоток на коннект - это последнее, что я буду рассматривать. А зря, поскольку это простейшийПростейший вариант мы уже имеем сейчас. Dimitry SibiryakovhvladНу и подумай ещё о том, что 100 потоков, сидящих в select - это 100 вызовов ядра и 200 переключений контекста (если ты понимаешь, о чём я). Это переключения в один конец. Вызовы не вернутся, пока не будет необходимости.Не, ты меня не понимаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:22 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисЕвгений Болтик, завязывай с флудом. Если хочешь чего спросить лучше создай отдельный топик. Обещаю не издеваться как прошлый раз. По скайпу мне общаться некогда. Я ещё и работаю. Сюда пишу в перерывах и чтобы мозги отвлечь. Лучше тогда в почту тут начнется длинный офф сначала непонимания меня и т.д. Моя почта не скрыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:42 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladПростейший вариант мы уже имеем сейчас. Правильно. И поскольку он не работает так как хочется, время рассмотреть простейший среди оставшихся. hvladНе, ты меня не понимаешь. Естественно не понимаю: твои намёки слишком мудрёны. Насколько я знаю, потоки, висящие в функциях ожидания, шедулером ОСи игнорируются и никаких переключений между контекстами не происходит. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:42 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕстественно не понимаюНадоело. Если есть что по таймаутам, не трогая реализацию, давай. Остальное - без меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 16:09 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 16:13 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Про таймаут на запрос. Он может указываться для всех в database.conf или непосредственно в вызове stsm.execute(sql, 10000), где 10000 необязательный параметр таймаута в секундах. Точный вызов API не помню поэтому извиняйте если что не так. Других мест вроде как придумать не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 16:32 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Таймауты нужны, как минимум на длительность транзакции и время выполнения запроса. Но не должны ли они относиться к БД, а не к серверу? Ведь необходимое (допустимое) время реакции для для разных БД может быть разным. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 20:32 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Alex Truhin, на какой-то конференции Корпоративные базы данных (увы, не нашел, было лет 5 назад точно), Бартунов из PostgreSQL или кто-то еще на тему таймаутов делал специальный доклад. Рассказывали, насколько сложно в многопользовательской среде соблюдать эти самые таймауты, и для каких военных применений они позарез нужны. У нас, пока, есть проблема вообще со срубанием длительного запроса, от Execute до первого Fetch. В том числе и в InterBase (насколько я в курсе), где в tmp$statements можно отрубать запросы (т.е. функционала по срубанию запросов, транзакций и коннектов там поболее есть через tmp$, чем у Firebird в mon$, как минимум потому, что у IB есть только SuperServer). Поэтому особо на тему "ах, что же делать при большой нагрузке с таймаутами запросов" предлагаю просто не париться. Если задано, что запрос не должен выполняться более 5 минут, значит амба, эти 5 минут должны работать при любых условиях. Что касается таймаута транзакции, то я уже говорил, что такой таймаут нужен только по неактивности в транзакции. Я считаю, что никто не имеет права срубать транзакцию, если она длится 5 часов, и каждую минуту в ней выполняются какие-то действия. Если и вводить для этого таймаут, то исключением должна быть read read_committed, разумеется. Впрочем, реализацию такого рода таймаута я ожидаю в последнюю очередь. Таймаут коннекта - по вкусу. Он и так сейчас есть, в виде keepalive. И насколько я знаю, разработчики с ним борются методическими запросами типа select * from rdb$database. В общем, по таймаутам я в первую очередь послушал бы админов, отделенных от разработчиков, и всех, у кого legacy applications с никаким управлением транзакциями и коннектами. Впрочем, их мнение я тут и излагаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 04:13 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
kdvТаймаут коннекта - по вкусу. Он и так сейчас есть, в виде keepalive. И насколько я знаю, разработчики с ним борются методическими запросами типа select * from rdb$database.Кто с кем борется? У нас кипалайв зажат до примерно 2-3 минут, коннекты в большинстве своем висят весь рабочий день, никто ни с кем бороться не собирается. Со слишком длительными коннектами обращаемся просто, в 23.30 все срубаются принудительно, далее сервер переходит в "ночной режим", чтобы "человеческие" юзеры не мешали. Как по мне так таймаут на коннект если и нужен, то с самым низким приоритетом. Таймаут на транзакцию должен иметь возможность зависеть от параметров "чтение-запись","снапшот-ридкоммитед-консистенси", приоритет между "конфиг сервера" и "передано разработчиком" должен иметь рычаги настройки (например параметрт Priority_level database server developer или Priority_level developer database server ), чем завершать коммитом или роллбеком тоже самое, по-умолчанию роллбек. Самый интересный, безусловно таймаут на оператор, лично я бы им пользовался. Приоритезация по аналогии с транзакциями, абзацем выше. Как вариант для разработчика возможность (опционально) передать таймауты в параметрах транзакции отдельно для самой транзакции , отдельно для стейтментов внутри оной. Вариант подглядеть у постгресовцав не лишен смысла. ;) Как минимум с доками/презентациями ознакомиться стОит! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 08:39 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
По поводу таймаутов на коннекты и транзакции я пожалуй соглашусь с Владом. Т.е. время должно отсчитываться от последней активности. А вот по поводу запросов вопрос спорный. С одной стороны для SELECT можно смотреть на время последнего фетча и от него отсчитывать время неактивности. С другой - для операторов DML, как мне кажется, всё таки важно начинать отсчёт от начала этого оператора. Не уверен что эти параметры есть одно и то же. Добавлю к сказанному, что если введут таймауты на подключения, транзакции и запросы, то эти таймауты по идее должны отображаться в MON$ таблицах, так же в них должно отображаться время неактивности. По поводу мониторинга у меня ещё одна хотелка. Нужна отдельная таблица мониторинга в которой была бы видна вся конфигурации как на уровне сервера, так и на уровне базы данных. Особенно важно это на хостингах, когда файл конфигурации скрыт от конечного разработчика, а ему нужно как то оценить выделяемые ресурсы. <имя параметра> <значение> <уровень>, где <тип конфигурации> - на уровне сервера, на уровне БД, на уровне подключения ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 09:32 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисА вот по поводу запросов вопрос спорный. С одной стороны для SELECT можно смотреть на время последнего фетча и от него отсчитывать время неактивности может, наоборот, активности? Насколько я понял, в этой ветке обсуждаем таймаут неактивности для коннектов и транзакций и таймаут активности для запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 09:36 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
dimitr, hvladСимонов Денисотсчёт таймера должен вестись от начала транзакции и не зависеть от того сколько там фетчей сделаноА давай подумаем немного: вот есть запрос, возвращающий резалтсет. Вот его жизненный цикл: 1. execute 2. fetch ... N. fetch Ты предлагаешь ставить таймер в момент (1) и, например, если 10 записей было успешно сфетчено, а 11-я не успела, то обламывать такой запрос. Так ? А не будет ли правильнее сбрасывать и снова ставить таймер после каждого фетча ? Представь себе запрос, который выдаёт по 1-ой записи в секунду (может сетка медленная, а может записи трудно вычисляются). И ты предлагаешь его остановить после X записей, при таймауте в X секунд ? Даже если он вполне себе может выдать все 10X записей в том же темпе ? Если это качается только транзакций/коннектов. Тогда мой вопрос снят. Если же же нет, то он остаётся в силе. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 09:41 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Есть предложение по такой фиче. При реализации таймаутов, предусмотреть в конфиге настройку для них трех видов: 1. Отключить. 2. Включить с прерыванием. 3. Включить с логированием. Первый пункт очевиден. Второй - при наступлении таймаута, сервер выполняет обычное действие (дропает коннект, завершает транзакцию и т.д.). Третий пункт вот для чего. При его активации, сервер в случае таймаутов пишет в специальный файл лог об этом: База данных; Дата/время; Пользователь; Тип таймаута (коннект, транзакция, запрос); Время старта; Для запросов имеет смысл писать сам запрос, параметры и план. Таким образом, администратор/разработчик может в любое время, прозрачно для пользователя, посмотреть, все ли нормально - были ли зависшие транзакции, долго выполняющие запросы и прочее. Можно даже добавить еще режим: 4. Включить с прерыванием и логированием. Таким образом, убиваются несколько зайцев: 1. Диагностика проблем с долгими запросами. 2. Диагностика плохого управления транзакциями. 3. Прозрачность для любых клиентов. При использовании чужого ПО, можно видеть проблемы и сообщить о них разработчику. 4. Отсутствие необходимости логировать эти таймауты через приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 09:57 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Добавлю - при третьем пункте, сервер не прерывает коннект/транзакцию/запрос, а оставляет как есть, уже не возвращаясь к нему. Только пишет в лог о сработке таймаута. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 10:00 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
CyberMax, по третьему пункту Влад сказал, что это задача трейса/аудита (долгие запросы там и сейчас можно отследить, коннекты и транзакции пока нет). 1 пункт очевиден. Скорее всего выключаться будет установкой времени таймаута в 0. Если таймаут будет установлен прерывание будет всегда. А вот лог можно будет получить если есть настройка в аудите. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 10:04 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Дениспо третьему пункту Влад сказал, что это задача трейса/аудита (долгие запросы там и сейчас можно отследить, коннекты и транзакции пока нет). 1 пункт очевиден. Скорее всего выключаться будет установкой времени таймаута в 0. Если таймаут будет установлен прерывание будет всегда. А вот лог можно будет получить если есть настройка в аудите. Я не хочу стрелять из пушки по воробьям. Я хочу настроить: 1. Для всех баз (в конфиге) таймаут для неподтвержденной пишущей транзакции - 5 минут с прерыванием и логом. Это для отлова забытых в IBE обработок или слишком уж долгих обработок БД. 2. Для указанной транзакции таймаут в 1 минуту с логом без прерывания. Это для отлова слишком долго выполняющихся отчетов. На крайний случай, можно будет приделать к каждому отчету его граничное время выполнения. Что сведет ложное срабатывание и проблемы с отчетами к нолю. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 10:23 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
CyberMax, я тоже примерно тоже самое сначала хотел. Потом после объяснений Влада подумал и согласился с ним. Вместо таймаута с логом без прерывания предлагаю отдельный фильтр для трейса/аудита позволяющий поймать длительные неактивные коннекты/транзакции. Это кстати может быть сделано и в рамках 2.5, если конечно Влад не найдёт аргументов против этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 10:32 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladА не будет ли правильнее сбрасывать и снова ставить таймер после каждого фетча ?Вопрос как минимум интересный, у меня, например, на него нет однозначного ответа. <хотелка ОН>Сделать оба и вывести рычаги управления в конфиг?</хотелка ОФФ> ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 11:23 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисВместо таймаута с логом без прерывания предлагаю отдельный фильтр для трейса/аудита позволяющий поймать длительные неактивные коннекты/транзакции. Это кстати может быть сделано и в рамках 2.5, если конечно Влад не найдёт аргументов против этого.1. Это в рамках 2.х можно смотреть и обрывать используя мониторинг. 2. В трейсе я предлагал писать события убиения запроса\тр-ции\коннекта по таймауту. Это не то же самое, что обнаружение простаивающих тр-ций\коннектов (или тормозящих запросов) по истечение некоторого таймаута. И опять же, таковое обнаружение уже сейчас можно делать самостоятельно через мониторинг. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:19 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyhvladА не будет ли правильнее сбрасывать и снова ставить таймер после каждого фетча ?Вопрос как минимум интересный, у меня, например, на него нет однозначного ответа. <хотелка ОН>Сделать оба и вывести рычаги управления в конфиг?</хотелка ОФФ>Очень не хочется добавлять это в конфиг. Я пока что склоняюсь к варианту переустановки таймера на каждом фетче (группе фетчей). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:21 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЯ пока что склоняюсь к варианту переустановки таймера на каждом фетче (группе фетчей).Я рассматриваю житейскую ситуацию, когда юзер ошибся в параметрах отображения/фильтра и вынуждает программу фетчить мильон-другой записей на клиента. образно вылез на своем тихоходной тракторе на хайвей и загородил несколько полос собой.Мне он такой нахрен не нужен, ошибку по таймауту ему в зубы, чтоб дорогу не загораживал. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:36 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
"Пони бегает по кругу..." Ivan_Pisarevskyвылез на своем тихоходной тракторе на хайвей и загородил несколько полос собой Так значит хайвей надо расширять, отдельные полосы сужать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:41 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, сейчас в мониторинге можно узнать время начала транзакции и её состояние. А вот время с которого она начала простаивать нельзя. Если можно тогда как? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:43 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Дениссейчас в мониторинге можно узнать время начала транзакции и её состояние. А вот время с которого она начала простаивать нельзя. Если можно тогда как?Согласен, напрямую никак. Только косвенно, по отсутствию активных запросов в этой тр-ции. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:11 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyhvladЯ пока что склоняюсь к варианту переустановки таймера на каждом фетче (группе фетчей).Я рассматриваю житейскую ситуацию, когда юзер ошибся в параметрах отображения/фильтра и вынуждает программу фетчить мильон-другой записей на клиента. образно вылез на своем тихоходной тракторе на хайвей и загородил несколько полос собой.Мне он такой нахрен не нужен, ошибку по таймауту ему в зубы, чтоб дорогу не загораживал.Ну так ты и на тех, кто в секунду 1000 мелких запросов выполняет, тоже запрет захочешь ставить... Как по мне, "бороться" со слишком слабыми фильтрами\слишком большими резалтсетами должен не сервер, а прикладной разработчик. Возможно с помощью волшебного админского пенделя :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:14 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladСимонов Дениссейчас в мониторинге можно узнать время начала транзакции и её состояние. А вот время с которого она начала простаивать нельзя. Если можно тогда как?Согласен, напрямую никак. Только косвенно, по отсутствию активных запросов в этой тр-ции. Косвенно мы узнаем лишь то что она не активна. А вот с какого времени неактивна... Это важно. Просто когда транзакция неактивна 2 секунды, то и фиг с ней, а вот если полдня, то совсем другое дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:21 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТак значит хайвей надо расширять, отдельные полосы сужать.Дык рядом есть "проселок" (2 штуки), ползи сколь хошь. Тяжелая риодонли хрень методично выносится на зеркальный сервер на репликации. Легчает основному от этого весьма здорово. hvladКак по мне, "бороться" со слишком слабыми фильтрами\слишком большими резалтсетами должен не сервер, а прикладной разработчик.Боремся, но заторы иногда все равно возникают, иногда. И превентивно боремся и разбором полетов. hvladВозможно с помощью волшебного админского пенделя :)Вот его-то мы сейчас и обсуждаем! разве нет? hvladНу так ты и на тех, кто в секунду 1000 мелких запросов выполняет, тоже запрет захочешь ставить...Дык это уже другой параметр, что знает, может и захочу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:24 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyВот его-то мы сейчас и обсуждаем! разве нет? Нет, сейчас вы обсуждаете бомбу, которая разнесёт трактор к ЧМ вместо того, чтобы его с хайвея аккуратно изъять и на просёлок пересадить. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:55 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
С кочки зрения сисадмина: кто тайм-аут выставил, тот и виноват, а разборки с тормозами приложения - прерогатива разработчика. Вне зависимости от того, что сам разработчик думает по этому поводу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 17:14 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovего с хайвея аккуратно изъять и на просёлок пересадить.Изъять аккуратно можно только постфактум, когда пробка стала видна (например в логах трейса, в жалобах юзеров и т.п.). Да изъять именно "аккуратно", когда он уже выехал и все загородил нахрен, не уберешь или тупо ждать или взрывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 17:42 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyДа изъять именно "аккуратно", когда он уже выехал и все загородил нахрен, не уберешь или тупо ждать или взрывать. Отсюда поподробнее, пожалуйста: что именно он загородил? Read-латчи как и локи между собой совместимы. Или этот запрос - DML?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 17:50 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladpastorМеня интересует только гарантированное время получения отклика, хотя бы для переключения на резервный источник данных. Сейчас приходится прибивать ВЕСЬ поток вместе с коннектом. А это очень грязное дело.Ну так есть же fb_cancel_operation. pastorпропущено... И куда же тогда податься бедному еврею?Для начала - в realtime OS :) fb_cancel_operation. нужно вызывать из другого потока? а туточки сразу - поставил 2 сек - выстрелил и забыл. через указанное время вернет или результат или отлуп. это как Mutex.WaitFor( msec). в управлении из другого потока есть беда - поток может таки выполнить команду, пока его приговаривают. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 18:15 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladИ опять же, таковое обнаружение уже сейчас можно делать самостоятельно через мониторинг. Проблема мониторинга в том что его нужно постоянно опрашивать, а опрос мониторинга операция затратная. Вот если бы можно было к мониторингу прицепить триггер, тогда да! :) С аудитом вижу основную проблему в сложности машинной обработки (текстовый вывод и отсутствие стандарта). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 23:39 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Alex TruhinС аудитом вижу основную проблему в сложности машинной обработки (текстовый вывод и отсутствие стандарта). Именно поэтому аудит делается плагином. Напиши такой, который будет его выводить в машиночитаемом формате. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 23:48 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, во первых насколько я знаю на этот плагин нет ни какой документации. Разбираться по исходникам FB как минимум не мой уровень снания C++. во вторых я не говорил что мне это необходимо, в этой теме обсуждаем что бы хотелось. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 00:01 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Alex Truhinво первых насколько я знаю на этот плагин нет ни какой документации. Парней из IBSurgeon это не остановило. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 00:05 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Alex Truhinо вторых я не говорил что мне это необходимо, в этой теме обсуждаем что бы хотелось. Хотеть что-то ненужное обычно называется "блажь". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 00:07 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovХотеть что-то ненужное обычно называется "блажь". Гвозди довольно неплохо заколачиваются булыжником, а гантелей так вообще... Но не думаю, что при этом хотеть иметь в хозяйстве, хороший молоток - "блажь". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 00:15 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovПарней из IBSurgeon это не остановило. кстати, и правда, а то я про этот плагин забыл. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 00:45 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
kdv, а что за плагин? Платный? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 05:35 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Alex Truhinkdv, а что за плагин? Платный? 13160039 Плагин может выводить результат тремя вариантами: - в файл текстовый, как стандартный - в файлы структурные, которые затем можно подключить к FB как EXTERNAL TABLE - в базу FB, подгрузив fbclient (или fbembed) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 08:45 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Это так для того кто та таймауты начнет писать. Я прислушался к Вам и переделал все на короткие пишущие транзакции, ну я так думал, что все короткие будут. Смотрел на этот топик как вы тут таймауты обсуждаете. И тут позвонил клиент. Он сказал, что мол запустили функцию на открытие документов для изменений и начался коллапс в фирме "Deadlock" то там то там. Я сразу сообразил в чем дело и побежал смотреть. В некоторых случаях не возможно вообще оказывается предположить сколько будет длиться транзакция. Пришлось переписать это место так Код: sql 1. 2. 3. 4.
И то по моим подсчетам 02:43:00 будут открываться 1 160 000 документов. У меня попутный вопрос 118 транзакций в секунду это нормально? Вот статистика на 1 операцию Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 13:56 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений БолтикУ меня попутный вопрос 118 транзакций в секунду это нормально? на SSD получили 190 транзакций в секунду ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 14:11 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
К сож-ю, не мог сразу подключиться к этой беседе, но пока топег не утонул, добавлю сюда свои 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'ы хотя бы изредка "выглядывать" во внешний мир во время своей работы. Ффух... пока вроде бы всё... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2013, 19:59 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Таблоид* Отсчет времени должен вести сервер. На клиенте системное время может глючить (глюки BIOS'a, отсутствие регулярной синхронизации времени в процессе работы и проч). Кроме того, когда прога сильно задумывается, юзер может переключиться в какую-нить полноэкранную игру и тогда что там будет со временем на рабочей станции - вообще неизвестноЭто не аргумент: тайм-ауты - дельта. Небольшая. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 15:50 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Basil A. SidorovЭто не аргумент: тайм-ауты - дельта. Небольшая.какая именно "небольшая" ? ты уже промерял ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 16:18 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
ТаблоидBasil A. SidorovЭто не аргумент: тайм-ауты - дельта. Небольшая.какая именно "небольшая" ? ты уже промерял ?Четыре миллиарда тиков это несколько более сорока суток. Какая точность устроит лично вас на таких интервалах? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 16:46 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Basil A. SidorovТаблоидпропущено... какая именно "небольшая" ? ты уже промерял ?Четыре миллиарда тиков это несколько более сорока суток. Какая точность устроит лично вас на таких интервалах?А причём тут сутки с миллиардами тиков ? Достаточно, чтобы время на раб. станции отстало от времени сервера на 3-5 сек - и всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 16:47 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
ТаблоидА причём тут сутки с миллиардами тиков ? Достаточно, чтобы время на раб. станции отстало от времени сервера на 3-5 сек - и всё.Ещё раз - тайм-аут это дельта , даже если оно делается на системном времени. Но, обычно, таймеры работают на таймерах. У которых есть длительность, но нет времени суток. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 16:52 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, И чем все кончилось к 2016му году ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 18:29 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkohvlad, И чем все кончилось к 2016му году ?Всё только начинается :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2016, 12:49 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Народ, просмотрел 11 страниц, не нашёл то, что нужно. Есть ли в FB3 параметр "время разрыва неактивного коннекта"? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2016, 10:31 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
KreatorXXI, пока нет, будет в ФБ 4 (типа того). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2016, 10:35 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
kdv, Правильно понимаю, что и по умолчанию ничего нет, коннект висит вечно? Пока админ руками не отключит? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2016, 11:20 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
KreatorXXIkdv, Правильно понимаю, что и по умолчанию ничего нет, коннект висит вечно? Пока админ руками не отключит? Есть таймаут неактивности для ТСР, зависит от настроек ОС. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2016, 11:45 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
kdvбудет в ФБ 4 (типа того). Лично я очень сильно надеюсь, что не будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2016, 13:31 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
KreatorXXI, если коннект жив - да. Используется keepalive, при котором ОС при неактивности в коннекте его пинает сама, и если он на какой-то стороне умер, отрубает. Не умер - не отрубает. Если коннект сам помер - другой стороне об этом сообщается, она соединение закрывает. А серверу, сейчас, совершенно по барабану, делает что-то коннект, или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2016, 13:33 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561806]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
202ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 291ms |
0 / 0 |