powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Sweep / Garbage collector, мусор убран, но база растет
25 сообщений из 78, страница 1 из 4
Sweep / Garbage collector, мусор убран, но база растет
    #39684662
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Сервер Firebird 2.5, база размером 5GB, за сутки вырастает примерно на 1GB.
Полезных данных, которые нужны и остаются в базе не слишком много, допустим 100MB в сутки.
Рост размера базы напрямую зависит от таблицы с переменными данными. В течение дня миллионы записей в нее пишутся и из нее удаляются (INSERT/DELETE). UPDATE - нет.

В конфиге:
#GCPolicy = combined

Т.е. получается так - на утро база 5GB, к вечеру 6GB.

Если делаю так:
1) sweep,
2) бэкап,
3) ресторе
получаю базу 5.1GB.

Если делаю только sweep, то база продолжает расти, и к следующему вечеру ее размер 7GB.

Как я себе понимаю механизм работы:
1) сборщик мусора, после не сильно большого количества (по умолчанию) транзакций, должен сам чистить мусор (размер базы не уменьшается), и новые инсерты происходят в ранее выделенное и освобожденное место базы. То что происходит в течение дня.
2) sweep - ручная чистка, после которой размер базы не уменьшается и аналогично сборщику мусора, запись начинает происходит в ранее отведенное место.

Как бы база должна (образно) за первые сутки вырасти 1GB, и затем потихоньку расти, на свои 100MB в сутки. Но чистка делается, а база продолжает расти.

Где ошибка, что не так?
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684667
Filippov Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous,

не совсем понятен пункт "1) sweep"
Зачем его делать, если все равно есть пункт "3) ресторе" , который в любом случае делает файл со свежей базой.
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684669
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Filippov Dmitry,
Согласен, написал, потом понял что глупость написал, при бека/ресторе оно не надо. По факту sweep делается каждую ночь, а бекап/ретсоре раз в неделю.
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684675
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperousсборщик мусора, после не сильно большого количества (по умолчанию) транзакций
если есть активные транзакции, то не все старые версии превращаются в мусор.
Если сборщик убирает мусор, то это место используется повторно.
Если не убирает, версии не становятся мусором, и сборщику убирать нечего.
Сборка мусора работает постоянно, это не sweep.

Imperousа база продолжает расти.
прямо на гиг в день, даже при ручном запуске sweep каждый день? Значит нет мусора и версии не убираются, а значит есть длинные активные транзакции. С которыми надо бороться в приложениях.
http://www.ibase.ru/sweep
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684676
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous сборщик мусора, после не сильно большого количества (по умолчанию) транзакций, должен сам чистить мусор (размер базы не уменьшается), и новые инсерты происходят в ранее выделенное и освобожденное место базы. То что происходит в течение дня.

судя по всему у тебя CS/SC там нет фоновой сборки мусора, так что мусор от твоих DELETE никто кроме тебя не прочистит (SELECT по тем данным которые были удалены)

sweep кроме продвижения OIT может ничего и не сделать, если у тебя активные транзакции удерживающие версии

давай сюда gstat -h
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684697
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Database header page information:
Flags 0
Checksum 12345
Generation 348725
Page size 4096
ODS version 11.2
Oldest transaction 284034
Oldest active 289718
Oldest snapshot 289718
Next transaction 346482
Bumped transaction 1
Sequence number 0
Next attachment ID 2138
Implementation ID 26
Shadow count 0
Page buffers 4096
Next header page 0
Database dialect 3
Creation date Aug 5, 2018 23:10:57
Attributes force write

Variable header data:
Sweep interval: 0
*END*
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684707
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ImperousOldest snapshot 289718
Next transaction 346482

однако....
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684710
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ImperousРост размера базы напрямую зависит от таблицы с переменными данными. В течение дня
миллионы записей в нее пишутся и из нее удаляются (INSERT/DELETE).

Где ошибка, что не так?
Во-первых и главных - в архитектуре, которая делает процитированное. Если не можешь
избавиться от желания записать в БД что-то ненужное, хотя бы сделай эту таблицу временной.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684711
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

кстати http://www.ibase.ru/garbage/
sweep, автоматический или ручной. Сервер просматривает абсолютно все страницы данных (таблиц) для сборки мусора. Если после сборки мусора удается "подвинуть" вперед Oldest transactionLINIK , то это делается.
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684712
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну.

ImperousOldest active 289718
Next transaction 346482
Creation date Aug 5, 2018 23:10:57
не меньше полусуток какая-то транзакция торчит. см. mon$transactions
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684715
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

видел, исправлю.
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684717
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

а чем это на версионнике так уж отличается от update ?
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684719
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

там вообще ни одна ссылка в статье не проставлена похоже


Dimitry Sibiryakovхотя бы сделай эту таблицу временной

GTT не живёт между соединениями, т.е. нельзя передать работу другому клиенту или продолжить в случае разрыва и переконнекта
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684725
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

http://www.ibase.ru/summary/

авторОткройте !needsweep.txt.

Откройте !snapshot2.txt:

... наблюдать в файле !rollback.txt.

и т.д.

Ну и "Жизненный цикл транзакций LINK" в начале
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684730
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvну.

ImperousOldest active 289718
Next transaction 346482
Creation date Aug 5, 2018 23:10:57
не меньше полусуток какая-то транзакция торчит. см. mon$transactions

почему ты берешь active, а не snapshot ?

разве read committed без read-consistewncy (которой в 2.х нет) будет мешать собирать мусор?

https://www.firebirdsql.org/pdfmanual/html/gstat-example-header.html Oldest active - the ID of the oldest active transaction, or OAT. This value shows the transaction ID (TID) of the oldest transaction that is still running. A transaction is considered active if it has not been hard committed, is not in a state of limbo and has not been rolled back.

Oldest snapshot - the ID of the oldest transaction which is currently not eligible to be garbage-collected . Any transaction with this or a higher ID cannot, yet, have old record versions removed by a sweep, for example. Normally, this is the same as the OAT above. The difference between this value and the OIT, if greater than the database sweep interval - assuming that automatic sweeping is not disabled - determines if an automatic sweep takes place.
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684733
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochа чем это на версионнике так уж отличается от update ?Вот как понять из этой цитаты - о чём вообще шла речь ???
Что "это" ? Цитировать красную\чёрную розу, что ли ? :)

Если ты про delete+insert вместо update - в первом случае не будет длинных цепочек бекверсий, если сборка мусора застряла.
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684734
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

ну что ты, ей богу. все link в статье исправил.

AriochОткройте !needsweep.txt.
Откройте !snapshot2.txt:
... наблюдать в файле !rollback.txt.
и т.д.
а тут что не нравится? Это файлы в поставке ibanalyst. Там написано - откройте. В ИБА меню файл, открыть, открываешь файл.
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684741
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvЭто файлы в поставке ibanalyst

Это упоминается в начале главы "Нормальное состояние базы данных" - и только. М.б. лучше это в самое начало статьи переместить, что текстовые файлы упоминающиеся - они отсюжда-то? потому что если читать сразу заинтересовавшую главу в середине, то этого не читал и знаешь. Ну и стиль названий файлов - то жирный шрифт, то обычный.

kdvвсе link в статье исправил.

не-а, только что перезагрузил. Сделай в обеих статьях поиски по LINK и по LINIK - сам увидишь
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684744
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

ты всё попутал.
Во-первых read commited read consistency появился в 4.0
Во-вторых до 4.0 read committed не удерживает версии только если она read only

Ну и как раз наоборот read commited в 4.0 вообще не удерживает версии, её удерживают активные статменты и не закрытые курсоры. Ну это судя по описанию. Правда убедится в этом не так легко. Нужно делать специфичное приложение, которое не стартует лишних транзакций и фетчит все записи из курсора. Но даже в этом случае промежуточные версии хорошо собираются, это я уже глянул. И даже снапшоты уровня транзакции не такие страшные ибо не держат вообще всю сборку мусора, а только не дают собрать версии требуемые данному снапшоту.

Кстати достаточно сделать фетч всех записей из курсора, или обязательно закрывать его?
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684745
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЕсли ты про delete+insert вместо update - в первом случае не будет длинных цепочек бекверсий, если сборка мусора застряла.

....зато во втором не надо будет перестраивать индексы (потому что RDB$DB_KEY = голова записи не двигается). Да и сами бекверсии обычно меньше размером, чем пусть одна но полноразмерная удаленная строка.

В общем, мне кажется, примерно равнозначно. Но DS категорически выступил против D+I, против твоего "первого случая". Вот я и удивился, что там такого резко опасного, что я проглядел. Не в конвретной ситуации залипшего snapshot, а "у целом"
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684747
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous,

есть еще причина роста БД
http://www.ibase.ru/dbgrowth
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684748
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochDS категорически выступилНикогда такого не было - и вот, опять (ц)
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684752
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvесть еще причина роста БД
http://www.ibase.ru/dbgrowth Зачем его блобами грузить, когда чётко видно что сборка мусора заблокирована...
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684753
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВо-первых и главных - в архитектуре, которая делает процитированное. Если не можешь
избавиться от желания записать в БД что-то ненужное, хотя бы сделай эту таблицу временной.


темповая таблица здесь не годится, разные коннекты.
...
Рейтинг: 0 / 0
Sweep / Garbage collector, мусор убран, но база растет
    #39684754
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисВо-вторых до 4.0 read committed не удерживает версии только если она read only

ну r/o она от рождения committed, её (с точностью до блобов) вообще как бы нет.

а вот почему RC вынуждены удерживать записи, которые им один чёрт не видны больше - это для меня непонятно и неожидано. Хотя это наверное тут оффтопик.


Симонов Денисread commited read consistency появился в 4.0
Он там в заголовке будет какой-то отдельной, четвёртой строкой типа Oldest XXXXX ?
...
Рейтинг: 0 / 0
25 сообщений из 78, страница 1 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Sweep / Garbage collector, мусор убран, но база растет
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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