IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.
Модератор: kdv
-
hvlad
- Разработчик Firebird
- Сообщения: 1244
- Зарегистрирован: 21 мар 2005, 10:48
Сообщение
hvlad » 21 сен 2006, 10:57
Alex Prodigy писал(а):hvlad писал(а):Классик ? свип_интевал != 0 ?
Классик! свип_интервал по дефолту.
В классике автосвип выполняеся в тр-ции пользователя - т.е. онлайн.
В супере - в отдельном потоке, т.е. в фоне
Alex Prodigy писал(а):Надо вырубить?
Тебе решать

-
Alex Prodigy
- Сообщения: 17
- Зарегистрирован: 25 янв 2006, 05:33
Сообщение
Alex Prodigy » 25 сен 2006, 03:57
hvlad писал(а):В классике автосвип выполняеся в тр-ции пользователя - т.е. онлайн.
В супере - в отдельном потоке, т.е. в фоне
Т.е. после убивания коннекта при первом подключении происходит сборка мусора? Этим и объясняется задержка?
Ну ладно, когда просто подключаешься, но нафига это делать при backup'е?
У backup'а же есть своя сборка мусора...
Или я гоню тут уже?
А если я отключу сборку мусора совсем, и раз в неделю буду делать backup-restore, а ежедневно только backup при работающей базе, ничего плохого не случится? База в принципе растёт не так уж и быстро, за неделю на 10-30 МБ.
При таком раскладе тормозов не прибавится при выключенной сборке мусора?
-
hvlad
- Разработчик Firebird
- Сообщения: 1244
- Зарегистрирован: 21 мар 2005, 10:48
Сообщение
hvlad » 25 сен 2006, 11:01
Alex Prodigy писал(а):hvlad писал(а):В классике автосвип выполняеся в тр-ции пользователя - т.е. онлайн.
В супере - в отдельном потоке, т.е. в фоне
Т.е. после убивания коннекта при первом подключении происходит сборка мусора? Этим и объясняется задержка?
Скока можно на всех заборах писать: SWEEP != GC ?
Наоборот. При старте тр-ции проверяется OAT-OIT > sweep_interval. Если это так, то
в классике выполняется свип в этой же тр-ции
в супере стартуется фоновый поток со своей тр-цией и выполняет свип
соответственно классику пофигу отвалы клиента - он просто не общается с ним, пока не завершит свип
Alex Prodigy писал(а):Ну ладно, когда просто подключаешься, но нафига это делать при backup'е?
У backup'а же есть своя сборка мусора...
Или я гоню тут уже?
НЕТУ
Alex Prodigy писал(а):А если я отключу сборку мусора совсем, и раз в неделю буду делать backup-restore, а ежедневно только backup при работающей базе, ничего плохого не случится? База в принципе растёт не так уж и быстро, за неделю на 10-30 МБ.
При таком раскладе тормозов не прибавится при выключенной сборке мусора?
Ты можешь 'отключить' только авто-свип.
Бекап не делает свип
Свип нужно делать вручную по ночам
Но сначала - ПРОЧИТАЙ наконец хоть что-нибудь на тему сборки мусора и свипа
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 25 сен 2006, 11:50
Alex Prodigy писал(а):А если я отключу сборку мусора совсем
Это возможно, только если ты во всех коннектах к базе будешь указывать no_garbage_collect, для чего предполагаю придётся перекомпилить все приложения, которые работают с базой. А если используешь IBX для работы с БД (самые свежие версии IBX не смотрел, нет необходимости), то придётся ещё и пропатчить его, т.к. он прикидывается, что не знает о таком параметре.
Стоит оно того?
-
hvlad
- Разработчик Firebird
- Сообщения: 1244
- Зарегистрирован: 21 мар 2005, 10:48
Сообщение
hvlad » 25 сен 2006, 13:11
WildSery писал(а):Alex Prodigy писал(а):А если я отключу сборку мусора совсем
Это возможно, только если ты во всех коннектах к базе будешь указывать no_garbage_collect
Если говорить о блокировании сбрки мусора, то есть более простые способы
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 25 сен 2006, 13:50
Ну... я знаю тыщу куда более простых способов угробить базу, нежели заставить её накопить столько мусора, чтоп полезные данные при простейших запросах находились перебором версий секунд за тридцать...
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 25 сен 2006, 15:02
Merlin писал(а):Ну... я знаю тыщу куда более простых способов угробить базу, нежели заставить её накопить столько мусора, чтоп полезные данные при простейших запросах находились перебором версий секунд за тридцать...
Для большинства селектов нужно будет читать только одну, последнюю версию, и не рыться в бэк-версиях. Увеличение времени будет только когда страницы почти целиком из мусора будут состоять, страниц очень много придётся читать. При ежедневной ночной сборке мусора на большинстве задач такого не получится. имхо, конечно.
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 25 сен 2006, 15:03
hvlad писал(а):Если говорить о блокировании сбрки мусора, то есть более простые способы
Что-то в голову не приходит

Подскажи, пожалуйста.
-
hvlad
- Разработчик Firebird
- Сообщения: 1244
- Зарегистрирован: 21 мар 2005, 10:48
Сообщение
hvlad » 25 сен 2006, 18:10
WildSery писал(а):hvlad писал(а):Если говорить о блокировании сбрки мусора, то есть более простые способы
Что-то в голову не приходит

Подскажи, пожалуйста.
Просто стартуй тр-цию (не read-committed readonly) и не завершай её никогда.
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 25 сен 2006, 18:51
hvlad писал(а):Просто стартуй тр-цию (не read-committed readonly) и не завершай её никогда.
А

Ну я так и делаю. С утра стартую а ночью ей коммит перед бэкапом-рестором. Вот уж не думал, что такая проктология - это "простой способ".