powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5 commitretain и последствия
5 сообщений из 5, страница 1 из 1
FB 2.5 commitretain и последствия
    #40059520
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня,

в одном из проектов столкнулся с тем что вместо commit люди используют только commitretain. Это позволяет им держать датасеты наполненными и не сбрасывать их содержимое обычным commit. В результате на массовых операциях число постоянно открытых транзакций сильно увеличивается. Я так понимаю это может привести в итоге к истощению памяти и замедлению выборки и сохранения данных. Есть подозрение что и после завершения работы программы в базе остаеётся мусор от таких транзакций. Есть ли возможность посмотреть сколько этого мусора остаётся и чем его лучше чистить? Валидацией из gfix или резервным копированием.
Как лучше всего бороться с этим мусором, вызывать rollback всех открытых транзакций в момент завершения программы? Но он по идее итак должен автоматом вызываться.

Спасибо
...
Рейтинг: 0 / 0
FB 2.5 commitretain и последствия
    #40059522
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotunЕсть ли возможность посмотреть сколько этого мусора остаётся и чем его лучше чистить?

Смотреть - gstat, чистить - sweep.

hlopotunКак лучше всего бороться с этим мусором, вызывать rollback всех открытых транзакций в
момент завершения программы?

Это надёжный способ мусор создать. Надо вызывать commit.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 2.5 commitretain и последствия
    #40059602
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotunВ результате на массовых операциях число постоянно открытых транзакций сильно увеличивается. Я так понимаю это может привести в итоге к истощению памяти и замедлению выборки и сохранения данных.
нет, нет, да.
Потому что версионность. Транзакция с commitretaining длится долго, в результате все версии в БД не превращаются в мусор, мусор не убирается, база пухнет, тормоза растут.
Про вред commitretaining написано тут
http://www.ibase.ru/ibx/
и тут
http://www.ibase.ru/ibtrans/
(искать по слову retain)

Про версионность и сборку мусора тут
http://www.ibase.ru/mga/
http://www.ibase.ru/garbage/
http://www.ibase.ru/sweep/

hlopotunКак лучше всего бороться с этим мусором
пока какая-то транзакция активна, версии, которые ей могут понадобиться (если начнет их читать) не считаются "мусором".
Поэтому sweep запускать бесполезно.
hlopotunrollback всех открытых транзакций в момент завершения программы?
как бы ни завершались транзакции после закрытия программы, они завершаются. С этого момента часть версий в БД можно считать мусором. Что и делают другие транзакции, читающие эти данные. И убирают мусор.

У вас неполные (как минимум) представления о версионности, мусоре в БД и сборке мусора. Советую почитать статьи, указанные выше.
...
Рейтинг: 0 / 0
FB 2.5 commitretain и последствия
    #40059954
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hlopotun
...Я так понимаю это может привести в итоге к истощению памяти и замедлению выборки и сохранения данных...

Вот когда приведет, тогда и дёргаться будешь. А пока теорию читай.
...
Рейтинг: 0 / 0
FB 2.5 commitretain и последствия
    #40059967
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

Спасибо большое за развёрнутый ответ и за ссылки!
Прочитал сегодня эти статьи, многое стало понятнее.
Сейчас буду эксперементировать с gstat.

Спасибо!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5 commitretain и последствия
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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