|
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 |
|
|
start [/forum/topic.php?fid=40&msg=38426469&tid=1561806]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 159ms |
0 / 0 |