powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Остановка работы базы при нехватке места под временный файл
37 сообщений из 37, показаны все 2 страниц
Остановка работы базы при нехватке места под временный файл
    #40135013
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FB 3.0.8.
Сегодня запустили один запрос, который включает много полей для группировки. Через некоторое время на диске закончилось место под файл сортировки (90 Гб), и сервер начал сыпать разными сообщениями про нехватку места, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SERVER	Fri Feb 18 09:30:08 2022
	Database: XXX.FDB
	Error during savepoint backout - transaction invalidated
	Error during savepoint backout - transaction invalidated
	No free space found in temporary directories
	operating system directive WriteFile failed
	Недостаточно места на диске. 
	At procedure 'PKG$TEST.UPDATE_TEST_INFO_FOR_RECORD' line: 250, col: 9
At procedure 'PKG$TBL$REG$ABONENT$EQUIPMENT.TEST' line: 112, col: 9
At trigger 'REG$ABONENT$EQUIPMENT_TEST' line: 9, col: 9
At procedure 'OPER$EQUIPMENT$CALC_DATE_END_SL' line: 58, col: 5
At trigger 'REG$ABONENT$EQUIPMENT_AIU0' line: 16, col: 13
	internal Firebird consistency check (record disappeared (186), file: vio.cpp line: 3939)

Код: plaintext
1.
2.
3.
4.
5.
SERVER	Fri Feb 18 09:30:53 2022
	Database: XXX.FDB
	database file appears corrupt (C:\WINDOWS\TEMP\FB_TABLE_V2FCZR)
	wrong page type
	page 321 is of wrong type (expected index root, found data)

В итоге база остановилась с сообщениями про Firebird consistency check. Хотя на самом деле ничего криминального не произошло.
Добавлю, что уже писал несколько лет назад, что нехватка места под временный файл приводит к вот такому итогу.
Валидация базы после перезагрузки сервера показала, что все ОК.

Могу ли я создать тикеты на следующую тему:
1. Останавливать выполнение запроса, если размер временного файла превышает определенный размер (настраивается в firebird.conf)? Сейчас свободно 200 Гб, но нет гарантии, что через пару лет окажется достаточно.
2. Корректно обрабатывать соединением нехватку места для временного файла? Другие коннекты не виноваты, что кончилось место в Temp Directories.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135066
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CyberMax
Другие коннекты не виноваты, что кончилось место в Temp Directories.


У вас база и Temp на одном диске?
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135069
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

Нет. Temp на диске C, сама база (базы) на диске D.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135070
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

если есть возможность, то подумай о миграции на 4.0. Там для широких сортировок есть улучшения (новый метод доступа REFETCH)
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135072
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxdatabase file appears corrupt (C:\WINDOWS\TEMP\FB_TABLE_V2FCZR)
это не файл базы, и не файл сортировки. Это GTT. Структуру имеет такую же как в базе, поэтому при нехватке места, естественно, его скрючило.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135080
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
CyberMaxdatabase file appears corrupt (C:\WINDOWS\TEMP\FB_TABLE_V2FCZR)

это не файл базы, и не файл сортировки. Это GTT. Структуру имеет такую же как в базе, поэтому при нехватке места, естественно, его скрючило.Как бы там ни было, это ошибка.
Должно было отвалиться выполнение этого стейтмента с ошибкой, возможно - нескольких одновременно, кому не хватило, но не останавливаться же всей базе.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135318
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax
Могу ли я создать тикеты на следующую тему:
1. Останавливать выполнение запроса, если размер временного файла превышает определенный размер (настраивается в firebird.conf)? Сейчас свободно 200 Гб, но нет гарантии, что через пару лет окажется достаточно.
2. Корректно обрабатывать соединением нехватку места для временного файла? Другие коннекты не виноваты, что кончилось место в Temp Directories.
Никто не запрещает создавать любые тикеты.
Другой вопрос - какая судьба их ждёт :)
1. Можно обсудить, но есть сомнения, что это поможет и не будут "наказаны" невиновные
2. Без воспроизводимого примера такой тикет имеет мало шансов на исправление.
С примером - обещаю заняться им сразу как воспроизведу проблему.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135483
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
1. Можно обсудить, но есть сомнения, что это поможет и не будут "наказаны" невиновные

Тогда моя точка зрения на этот вопрос.
При выполнении запроса FB создает структуры под сортировку, группировку и т.д. (это неважно). Когда размер структуры достигает определенного размера (настраивается в firebird.conf), он из памяти перемещается во временный файл. Если размер файла относительно невелик (под этим размером можно подразумевать в принципе любой размер в гигабайтах), то все ОК. Если же размер этого временного файла становится достаточно большим (на усмотрение администратора, например, 100 Гб), это означает, что что-то пошло не так (программист ошибся в запросе или не учел предполагаемый размер выборки). Это первое. Второе. Как известно, место, выделяемое администраторами серверов под временные файлы, ограничено. Если Temp directory находится на системном диске (это не запрещено), то несмотря на наличие 500 Гб свободного места, хотелось бы, чтобы из них FB было максимум взято не более 450 Гб (нужно место для самой ОС). Сейчас способа указать указать максимальный размер файлов под временные нужды нет и FB забирает все пространство, какое есть, нарушая работу ОС или иных сервисов, которые тоже работают с этим диском.
Итого:
1. Необходима настройка ограничения по максимальному объему дискового пространства под временные файлы. Это защитит другие сервисы, использующие этот же диск, от внезапного исчезновения свободного места и от специального/случайного выполнения запроса, выбирающего все свободное место на диске.
2. Необходима настройка ограничения по максимальному размеру временных файлов в рамках соединения. Я уверен, что у нас выборки, которые требуют 50 Гб файла под сортировку - это что-то из ряда вон выходящее, и с такими запросами надо разбираться. Это защитит от опустошения дискового пространства под временные файлы одним соединением, ломая работу других соединений (у них не остается свободного места под свои небольшие сортировки).

Добавлю, что когда размер БД был в районе пары десятков гигабайт, этого не требовалось. Но когда размер БД подходит к сотне Гб, а значит, растут и размеры некоторых выборок, такое ограничение просто необходимо.

hvlad
С примером - обещаю заняться им сразу как воспроизведу проблему.

Будет сделано.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135496
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxДобавлю, что когда размер БД был в районе пары десятков гигабайт, этого не требовалось. Но когда размер БД подходит к сотне Гб, а значит, растут и размеры некоторых выборок, такое ограничение просто необходимо.

Размер временного файла для сортировки не связан напрямую с размером БД.

Он зависит от ширины набора данных для сортировки и количества записей. Кривым запросом можно и на employee.fdb создать временный файл под сортировку в 100Гб.

Ещё раз отмечу, что в 4.0 для широких сортировок используется другой алгоритм сортировки, который позволяет избежать содания гигантских временных файлов

CyberMaxНеобходима настройка ограничения по максимальному объему дискового пространства под временные файлы. Это защитит другие сервисы, использующие этот же диск, от внезапного исчезновения свободного места и от специального/случайного выполнения запроса, выбирающего все свободное место на диске.

сильно сомневаюсь что проверка такого ограничения может быть эффективно реализована в архитектуре классик. Ограничение в рамках коннекта наверное возможно, но там надо смотреть насколько это дорого будет
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135499
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Размер временного файла для сортировки не связан напрямую с размером БД.
Он зависит от ширины набора данных для сортировки и количества записей. Кривым запросом можно и на employee.fdb создать временный файл под сортировку в 100Гб.

Да, напрямую не связан. Да, можно и с табличкой в 100 записей создать файл сортировки на 100 Гб.

Симонов Денис
Ещё раз отмечу, что в 4.0 для широких сортировок используется другой алгоритм сортировки, который позволяет избежать содания гигантских временных файлов

Еще раз напишу - речь идет не об алгоритмах сортировки, а об устранении потенциальных уязвимостей.
На сервере может быть свободно 5 Гб под файлы сортировки. И FB все это съест и еще попросит. С непредсказуемым эффектом.

Симонов Денис
сильно сомневаюсь что проверка такого ограничения может быть эффективно реализована в архитектуре классик. Ограничение в рамках коннекта наверное возможно, но там надо смотреть насколько это дорого будет

Могу предположить, что очень дешево - проверка требуется только при увеличении размера временного файла.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135503
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax
Могу предположить, что очень дешево - проверка требуется только при увеличении размера временного файла.
Какого из сотен возможных?
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135504
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

Каких сотен, ты о чем?
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135508
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если говорить о винде, то кроме FIREBIRD_TMP на системном диске находится ещё и FIREBIRD_LOCK (%ProgramData%\firebird)
Если говорить о линуксах, то, по умолчанию, "они оба" находятся в /tmp.
Если одна или несколько сортировок полностью заняли TempCacheLimit, то все одновременные сортировки (даже небольшие) могут оказаться на диске.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135511
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

в рамках одного коннекта сотен не будет. А вот если общий размер контролировать, то тут уже очень сомнительно. Пока размеры всех файлов соберёшь, они уже станут неактуальными
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135515
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОбоШтоИразговор.
Процесс(ы) firebird могут создавать пачки временных файлов.
Более того, если я правильно понимаю, исходная проблема вообще возникла не для сортировки (fb_sort), а для GTT (fb_table) и поврежденным оказался именно (конкретный) экземпляр GTT.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135528
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вопрос не совсем по теме.
Почему FB создает временный файл в C:\WINDOWS\TEMP\FB_TABLE_6JN3N6, если у меня Temp Directory - c:\Temp? А файл сортировки создается в c:\Temp.

Код: plaintext
1.
2.
3.
4.
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
I/O error during "WriteFile" operation for file "C:\WINDOWS\TEMP\FB_TABLE_6JN3N6".
Error while trying to write to file.
Недостаточно места на диске. .
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135531
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И разные сообщения при нехватке места для GTT и сортировки.
Нет места для GTT:
Код: plaintext
1.
2.
3.
4.
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
I/O error during "WriteFile" operation for file "C:\WINDOWS\TEMP\FB_TABLE_6JN3N6".
Error while trying to write to file.
Недостаточно места на диске. .

Нет места под сортировку:
Код: plaintext
1.
2.
3.
4.
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
sort error.
No free space found in temporary directories.
operating system directive WriteFile failed.
Недостаточно места на диске. .

В первом случае есть имя файла, что очень удобно - сразу понятно, где места нету. Во втором случае имя тщательно скрывается. Я думаю, вот по этому поводу точно можно создать тикет.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135537
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad, я поискал другие сообщения про порчу файлов FB_TABLE_XXX и могу сделать предположение - это происходит при сработке internal Firebird consistency check.
Вот в прошлом году:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SERVER	Fri Jul 09 08:31:37 2021
	Database: XXX.FDB
	internal Firebird consistency check (partner index description not found (175), file: idx.cpp line: 1310)


SERVER	Fri Jul 09 08:31:43 2021
	I/O error during "ReadFile" operation for file "C:\WINDOWS\TEMP\FB_TABLE_2KQ6BW"
	Error while trying to read from file
	Неверный дескриптор. 


SERVER	Fri Jul 09 08:31:43 2021
	Database: XXX.FDB
	database file appears corrupt (C:\WINDOWS\TEMP\FB_TABLE_2KQ6BW)
	wrong page type
	page 206 is of wrong type (expected index root, found data)


Вот на прошлой неделе:
Код: 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.
SERVER	Fri Feb 18 09:30:08 2022
	Database: XXX.FDB
	Error during savepoint backout - transaction invalidated
	Error during savepoint backout - transaction invalidated
	No free space found in temporary directories
	operating system directive WriteFile failed
	Недостаточно места на диске. 
	At procedure 'PKG$TEST.UPDATE_TEST_INFO_FOR_RECORD' line: 250, col: 9
At procedure 'PKG$TBL$REG$ABONENT$EQUIPMENT.TEST' line: 112, col: 9
At trigger 'REG$ABONENT$EQUIPMENT_TEST' line: 9, col: 9
At procedure 'OPER$EQUIPMENT$CALC_DATE_END_SL' line: 58, col: 5
At trigger 'REG$ABONENT$EQUIPMENT_AIU0' line: 16, col: 13
	internal Firebird consistency check (record disappeared (186), file: vio.cpp line: 3939)


SERVER	Fri Feb 18 09:30:53 2022
	I/O error during "ReadFile" operation for file "C:\WINDOWS\TEMP\FB_TABLE_V2FCZR"
	Error while trying to read from file
	Неверный дескриптор. 


SERVER	Fri Feb 18 09:30:53 2022
	Database: XXX.FDB
	database file appears corrupt (C:\WINDOWS\TEMP\FB_TABLE_V2FCZR)
	wrong page type
	page 321 is of wrong type (expected index root, found data)

Сообщение "Error during savepoint backout - transaction invalidated" к данной проблеме, видимо, не относится.

Я не знаю, как вызвать сработку internal Firebird consistency check, чтобы проверить теорию. Если кто подскажет способ, попробую воспроизвести.
P.S. Я в курсе, что это не порча самой БД и никак на нее не влияет. Тем не менее, некорректное поведение FB налицо.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135551
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax
У меня вопрос не совсем по теме.
Почему FB создает временный файл в C:\WINDOWS\TEMP\FB_TABLE_6JN3N6, если у меня Temp Directory - c:\Temp? А файл сортировки создается в c:\Temp.

Код: plaintext
1.
2.
3.
4.
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
I/O error during "WriteFile" operation for file "C:\WINDOWS\TEMP\FB_TABLE_6JN3N6".
Error while trying to write to file.
Недостаточно места на диске. .


Вот тут 22408166 и ниже, обсуждалось что параметр TempDirectories в конфиге не задает место создания файлов fb_table_XXX.
Задать это можно через параметр среды окружения fb_table.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135564
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
imho, разумно задавать лимит не на файлы сортировки или gtt, а лимит на свободное место. Т.е. скажем в настройках указать 1 Гб и если места становится меньше указанного выдавать ошибку. Думаю что это не сложно сделать для любой архитектуры сервера. Исчерпание места на системном диске может привести не только к падению firebird-а, но и к падению всей операционной системы и часто к необходимости её переустановки (натыкался на примере windows server 2012).

И так же неплохо задавать лимит для диска с базой данных. Если на диске с базой меньше установленного лимита - отказывать в подключении. Сам сталкивался в нулевых еще на 1-ом firebird-е с порчей базы на переполненном диске. С тех пор при подключении вызываю UDF, которая проверяет место сразу после коннекта и при малом объеме не подключает. Но контроль за файлами сортировки с помощью UDF не реализовать.

Разумно также, чтобы какие-то лимиты, хоть самые минимальные, уже были по дефолту, без настроек firebird.conf. Конфиг могли забыть настроить, перетереть при переустановке и т.д. Когда служиться п...ц можно конечно уже разобраться во всём, найти виновных, но будет уже поздно.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135567
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

ещё раз повторяю, проверка свободного места на диске совсем не бесплатна. Вот сколько раз в секунду придётся это делать на нагруженном серваке?
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135569
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks
параметр TempDirectories в конфиге не задает место создания файлов fb_table_XXX
Да, так и есть.

fraks
Задать это можно через параметр среды окружения fb_table
Нет такого и никогда не было

В fb4 введён новый параметр TempTableDirectory
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135573
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax
Я не знаю, как вызвать сработку internal Firebird consistency check, чтобы проверить теорию. Если кто подскажет способ, попробую воспроизвести.
Достаточно создать простой пример который переполнит (заранее созданный небольшой) раздел для GTT и приведёт к bugchek'у или wrong page type.
Ведь даже если я сейчас внесу исправление "вслепую" - нужен способ его подтвердить.

CyberMax
P.S. Я в курсе, что это не порча самой БД и никак на нее не влияет. Тем не менее, некорректное поведение FB налицо.
С этим ведь никто не спорит.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135574
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис
ggreggory,

ещё раз повторяю, проверка свободного места на диске совсем не бесплатна. Вот сколько раз в секунду придётся это делать на нагруженном серваке?


Всегда можно сделать трешхолд на такую проверку. Например, функция проверки хранит предыдущее состояние свободного места и GetTickCount64 его получения. И если с момента предыдущего получения прошло менее, скажем, 10 сек, возвращать предыдущее значение. За мгновение диск не заполнится, есть аппаратные ограничения скорости записи. Значения хранить в разделяемой памяти, так чтобы все процессы/потоки пользовались ими и не было зависимости от числа коннектов.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135576
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

в конкурентной среде любые проверки существования\достаточности ресурса до совершения действия потребляющего этот ресурс - не имеют большого смысла.
Это азбука.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135583
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad

в конкурентной среде любые проверки существования\достаточности ресурса до совершения действия потребляющего этот ресурс - не имеют большого смысла.
Это азбука.


Ну так сделать не до, а в процессе совершения действия - в процессе заполнения файла сортировки или временной таблицы. Вот сделали ведь в 4-ке таймаут времени выполнения оператора - значит время проверяется в процессе выполнения. Так и контроль за свободным местом сделать в процессе заполнения.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135585
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

надо понимать что,

1. коннектов может быть много, каждый изменяет свободное пространство в любую секунду
2. Firebird существует не один, есть вероятность что диск сожрёт любая другая программа
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135587
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с Владом на счет проверки прикладным софтом (в данном случае файрбердом) системных ресурсов, кои могут неожиданно появиться или исчезнуть. Все дружно забыли про квотировании на уровне ОСи, и квоты эти двигать можно в любой момент как вверх, так и вниз. Вот не падать с грохотом, если вдруг ресурса не не стало - это гут (как вариант удавить процесс классика с руганью в логи, или откинуть нитку супера с его коннектом и опять таки руганью в логи), а тыща предварительных проверок - баловство.

ggreggory
За мгновение диск не заполнится, есть аппаратные ограничения скорости записи.
Запросто, см. квоты.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135588
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

ты не путай тёплое с мягким. Таймаут считается для одного конкретного статмента или коннекта. Там нет конкуренции
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135595
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
ggreggory,

ты не путай тёплое с мягким. Таймаут считается для одного конкретного статмента или коннекта. Там нет конкуренции
+1.
И ограниченного ресурса тоже нет.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135663
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис

1. коннектов может быть много, каждый изменяет свободное пространство в любую секунду


Мое предложение от числа коннектов не зависит.

Симонов Денис

2. Firebird существует не один, есть вероятность что диск сожрёт любая другая программа


Так и метеорит может упасть, что уж тут поделаешь. Вопрос в реализации схемы, которая не сделает возникновение коллапса невозможным, а сократит его вероятность в 100500 раз. Невозможного не бывает, возможно всё! Но с маленькой вероятностью :)

Ivan_Pisarevsky
и квоты эти двигать можно в любой момент как вверх, так и вниз.


Это ещё надо конкретно постараться. В любом случае если криворукий сисадмин корячит сервер и в этот момент появятся ошибки при работе с базой сразу станет понятно кто виноват.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135670
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory
Вопрос в реализации схемы, которая не сделает возникновение коллапса невозможным, а сократит его вероятность в 100500 раз.
Ценой кратных в 2-3 тормозов? оно точно надо дуть с такой силой на воду? Как по мне так пусть "локальный" коллапс таки наступит, только с причиной в логе. Если запрос требует терабайт темп места - то пусть падает, туда ему и дорога.

ggreggory
Это ещё надо конкретно постараться.
Ничего не понятно. Постараться что? место на томе, куда надо писать файберду может динамически увеличено несколькими путями, от отжатия слишком затянутых квот, до выделения доп места средствами ФС, СХД или чего там в железке есть. Или просто удалили левый хлам и места стало больше.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135679
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky
Ценой кратных в 2-3 тормозов?


Да не будет ничего тормозить, с чего вы взяли?

Ivan_Pisarevsky
Ничего не понятно. Постараться что? место на томе, куда надо писать файберду может динамически увеличено несколькими путями, от отжатия слишком затянутых квот, до выделения доп места средствами ФС, СХД или чего там в железке есть. Или просто удалили левый хлам и места стало больше.


Мне тоже не понятно. Если вы увеличиваете свободное место - это лучше, значит наоборот контроль не сработает.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135686
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory
Да не будет ничего тормозить, с чего вы взяли?
Со слов Влада, см. выше. Проверка не может быть бесплатной, тем более проверка требующая дискового ИО. Если можешь написать такой код, то где же патч?
ggreggory
Если вы увеличиваете свободное место - это лучше, значит наоборот контроль не сработает.
Сработает и даст по рукам, если проверить, когда места еще не было, потом оно появилось, но по рукам уже дадено.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135690
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

я больше не буду повторять - любая подобная проверка, даже если она бесплатна, ничего не гарантирует.
А следовательно - бессмысленна.
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135693
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky
Если можешь написать такой код, то где же патч?


Мое предложение по коду было выше. Другое дело, что, вероятно, могут быть какие-либо виртуальные среды, в которых получение свободного места действительно мега-трудоемкая операция.

Ivan_Pisarevsky
Сработает и даст по рукам, если проверить, когда места еще не было, потом оно появилось, но по рукам уже дадено.


Теперь понял о чём вы. Да, в этом случае такую проверку стоит отключать.

hvlad
ggreggory,

я больше не буду повторять - любая подобная проверка, даже если она бесплатна, ничего не гарантирует.
А следовательно - бессмысленна.


Я лишь предложил свой путь решения проблемы. Возможно, кто-нибудь предложит что-то более рациональное...
...
Рейтинг: 0 / 0
Остановка работы базы при нехватке места под временный файл
    #40135718
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyСогласен с Владом на счет проверки прикладным софтом (в данном случае файрбердом) системных ресурсов
в HQbird есть всякие проверки, в том числе и про место в temp, и какие запросы сколько сортировок генерят (сверх лимита).
Но такой мониторинг хорош когда место вдруг уменьшается, но не совсем до конца, и админ успевает понять что случилось и почему, и как это устранить.
А вот вышеописанная ситуация - и 90 гиг сортировка, и еще и GTT фиг знает какого размера - здесь "предупреждать" некогда, потому что даже с предупреждениями сервера если кто-то сделал сортировку 90 гиг и запрос не закрыл, так больше никому всё равно места не хватит, и никто не может запретить после закрытия запроса с сортировкой 90 гиг запустить этот запрос тут же еще раз.
Здесь ситуацию надо лечить просто удвоением места в temp, как минимум. Опять же, пока кто-то не зафигачит запрос с сортировкой 180 гиг.
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Остановка работы базы при нехватке места под временный файл
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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