|
FB 2.5 commitretain и последствия
|
|||
---|---|---|---|
#18+
Всем доброго дня, в одном из проектов столкнулся с тем что вместо commit люди используют только commitretain. Это позволяет им держать датасеты наполненными и не сбрасывать их содержимое обычным commit. В результате на массовых операциях число постоянно открытых транзакций сильно увеличивается. Я так понимаю это может привести в итоге к истощению памяти и замедлению выборки и сохранения данных. Есть подозрение что и после завершения работы программы в базе остаеётся мусор от таких транзакций. Есть ли возможность посмотреть сколько этого мусора остаётся и чем его лучше чистить? Валидацией из gfix или резервным копированием. Как лучше всего бороться с этим мусором, вызывать rollback всех открытых транзакций в момент завершения программы? Но он по идее итак должен автоматом вызываться. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 12:15 |
|
FB 2.5 commitretain и последствия
|
|||
---|---|---|---|
#18+
hlopotunЕсть ли возможность посмотреть сколько этого мусора остаётся и чем его лучше чистить? Смотреть - gstat, чистить - sweep. hlopotunКак лучше всего бороться с этим мусором, вызывать rollback всех открытых транзакций в момент завершения программы? Это надёжный способ мусор создать. Надо вызывать commit. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 12:33 |
|
FB 2.5 commitretain и последствия
|
|||
---|---|---|---|
#18+
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 всех открытых транзакций в момент завершения программы? как бы ни завершались транзакции после закрытия программы, они завершаются. С этого момента часть версий в БД можно считать мусором. Что и делают другие транзакции, читающие эти данные. И убирают мусор. У вас неполные (как минимум) представления о версионности, мусоре в БД и сборке мусора. Советую почитать статьи, указанные выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 00:19 |
|
FB 2.5 commitretain и последствия
|
|||
---|---|---|---|
#18+
hlopotun ...Я так понимаю это может привести в итоге к истощению памяти и замедлению выборки и сохранения данных... Вот когда приведет, тогда и дёргаться будешь. А пока теорию читай. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 17:42 |
|
|
start [/forum/topic.php?fid=40&fpage=7&tid=1560069]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 247ms |
total: | 410ms |
0 / 0 |