Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5 commitretain и последствия / 5 сообщений из 5, страница 1 из 1
04.04.2021, 12:15
    #40059520
hlopotun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 2.5 commitretain и последствия
Всем доброго дня,

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

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

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

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

Это надёжный способ мусор создать. Надо вызывать commit.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.04.2021, 00:19
    #40059602
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 2.5 commitretain и последствия
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
05.04.2021, 17:42
    #40059954
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 2.5 commitretain и последствия
hlopotun
...Я так понимаю это может привести в итоге к истощению памяти и замедлению выборки и сохранения данных...

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

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

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


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