powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / auto sweep: должен ли он стартовать, если OST < OIT ?
25 сообщений из 72, страница 1 из 3
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691232
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Если есть вот это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
         Oldest transaction      215825 
        Oldest active           215826
         Oldest snapshot         129653 
        Next transaction        248841
        Creation date           Jul 8, 2014 22:45:44
        Attributes

    Variable header data:
        Sweep interval:         1000

- то должен ли стартануть свип при таком маленьком интервальчике, как сейчас (1000) ?
В логе ФБ - пустошь, в трейсе тоже ничего.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691302
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид> В логе ФБ - пустошь

Ничего не путаешь? Версия, лог, сервер, файл?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691360
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

ничего не путаю.

$ /opt/fb30trnk/bin/fbsvcmgr localhost/3333:service_mgr user sysdba password masterke info_server_version info_svr_db_info
Server version: LI-T3.0.0.31208 Firebird 3.0 Alpha 2
Databases:
Number of attachments: 0
Number of databases: 0

В логе ФБ - ничего просвип нету.
Заголовок базы - см "фотку".
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691380
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько могу вспомнить, этот OST < OIT получился "как обычно": открыл в ИБЭ что-то (у него TIL = RC), забыл про него на 3-5 минут, а затем сделал rollback. При молотилках, работающих с TIL = snapshot, получаю этот самый застрявший OST.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691403
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ответь себе самому, какое отношение имеет OST к свипу. И заодно - как собирать мусор при таком OST.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691426
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrкакое отношение имеет OST к свипу. И заодно - как собирать мусор при таком OST.ну, я вот смотрю в garbage_collection.pdf (материалы "транзакционного семинара"), и там из написанного на стр. 27 делаю вывод: автозапуск свипа движком происходит, когда “sweep gap” : OST - OIT достигает лимита, либо дефолтного (20000), либо проставленного врукопашную.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691429
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrИ заодно - как собирать мусор при таком OST.еще бы понять, из-за чего такое вообще происходит (OST < OIT).
Вот запустил сейчас 40 окошек, и периодически дёргаю gstat -h. И каждый раз вижу, что OST отстаёт от OIT на 400-500. Т.е. все счетчики движутся "параллельно", но отставание OST от OIT - постоянно в этих пределах.
Коннекты не килял, все молотят свою работу.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691506
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты пока можешь перечитать тынц раз и тынц два . А KDV с Владом пусть уже договорятся: OST - OIT или OAT - OIT :-) А то сколько лет уже разброд и метания.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691513
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидну, я вот смотрю в garbage_collection.pdf (материалы "транзакционного семинара"), и там из написанного на стр. 27 делаю вывод: автозапуск свипа движком происходит, когда “sweep gap” : OST - OIT достигает лимита, либо дефолтного (20000), либо проставленного врукопашную.Ну так какие ещё вопросы ?
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691782
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrты пока можешь перечитать тынц раз и тынц два . А KDV с Владом пусть уже договорятся: OST - OIT или OAT - OIT :-) А то сколько лет уже разброд и метания.
Почитал. http://www.ibase.ru/devinfo/sweep.htm в созданной базе данных есть параметр Sweep Interval, равный 20000. Как только разница между транзакциями Oldest Snapshot и Oldest (см. gstat -h db.gdb) (в InterBase 7.x и выше, и в Firebird 2.1 и выше - разница между Oldest Active и Oldest ) дQ1: про "ФБ 2.1 и выше" - это действительно так, т.е. сравнивается O A T ?
(и эта же фраза повторяется в тынц_два , только ФБ тут явно не упоминается: "Процесс сборки мусора (sweep) контролируется разницей между Oldest Interesting Transaction и Oldest Active Transaction (примечание kdv: в версиях InterBase ранее 7.1 данная разница считается между Oldest Interesting Transaction и Oldest Snapshot Transaction). ")

Мой случай, когда OST < OIT и OST < OAT, показан в тынц_два в таком виде:
kdvЕсли в базе данных не было большого rollback, но есть активная транзакция snapshot, то порядок будет:

OST -> OIT = OAT -> NTQ2: у меня стопудово ЕСТЬ большие роллбаки, которые невозможно сделать через отмены+коммит. И все активные транзакции работают в snapshot'e.
Застрявших транзакций нет, вот что вижу сейчас (через 4 часа после начала молотьбы):
Код: plaintext
1.
2.
3.
4.
5.
$ /opt/fb30trnk/bin/gstat -h oltp30.fdb | grep -i "oldest\|next tra"
        Oldest transaction      732500
        Oldest active           732501
        Oldest snapshot         730258
        Next transaction        734898
Ну так по какой причине OST всё время меньше OIT (хотя и движется вслед за ним) ? Свип из-за этого так и не стартует, и как тогда мусор убирать - каунтить таблицы периодически ?
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691837
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидQ1: про "ФБ 2.1 и выше" - это действительно так, т.е. сравнивается O A T ?Нет, нет и ещё раз НЕТ.
Задолбало это уже.

ТаблоидНу так по какой причине OST всё время меньше OIT (хотя и движется вслед за ним) ?А какая вообще связь между OST и OIT ? С чего ты взял, что OST обязан быть больше OIT ?

В идеальном случае, когда нет роллбеков через TIP, OIT всегда будет равен OAT-1.
С чего ты взял, что OST должен быть равен OAT ??? Это возможно, только когда нет snapshot тр-ций.

ТаблоидСвип из-за этого так и не стартует, и как тогда мусор убирать - каунтить таблицы периодически ?Ты же был на семинаре, я же 100500 раз там акцентировал внимание на том, что эти счётчики НЕ ИМЕЮТ никакого отношения к кол-ву мусора в БД...

Ты статистику снимал ? На кол-во версий смотрел ? Оно только увеличивается ?
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691839
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидQ2: у меня стопудово ЕСТЬ большие роллбаки, которые невозможно сделать через отмены+коммитТа ты шо ! И OIT у тебя не движется ? И свип не делается ? И стопудово роллбеки большие ? Ай-яй-яй...
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691862
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидQ2: у меня стопудово ЕСТЬ большие роллбаки, которые невозможно сделать через отмены+коммитТа ты шо ! И OIT у тебя не движется ? И свип не делается ? Ну я же говорю: OIT - движется. Они все вместе прут вверх, с почти постоянным интервалом OIT - OST =~500.
Но свип не стартует из-за отрицательной разницы OST - OIT, а в статистике некоторых таблиц - мусорная свалка. И мну она не нравится что-то... :-)
hvladИ стопудово роллбеки большие ? Ай-яй-яй...да, есть и большие (лок-обломы при отменах поднятых инвойсов, там тысячи строк меняются).
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691868
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНет, нет и ещё раз НЕТ.
Задолбало это уже.
однако, KDV - саботажник...
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691872
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидда, есть и большие
тогда бы OIT застыл намертво (до свипа)
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691873
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидQ1: про "ФБ 2.1 и выше" - это действительно так, т.е. сравнивается O A T ?Нет, нет и ещё раз НЕТ.
Задолбало это уже. 2 kdv : ну поправь доку уже, что ле...
hvladТаблоидНу так по какой причине OST всё время меньше OIT (хотя и движется вслед за ним) ?А какая вообще связь между OST и OIT ? С чего ты взял, что OST обязан быть больше OIT ?в бол-ве продакшен-систем - как они соотносятся ? что-то встряло в голову, что OIT обычно меньше OST.
hvladВ идеальном случае, когда нет роллбеков через TIP, OIT всегда будет равен OAT-1.
С чего ты взял, что OST должен быть равен OAT ??? Это возможно, только когда нет snapshot тр-ций.не, я как раз OST и не сравнивал с OAT. Просто привёл цитату с ibase.ru, там соотношение показано между ними.

hvladТаблоидСвип из-за этого так и не стартует, и как тогда мусор убирать - каунтить таблицы периодически ?Ты же был на семинаре, я же 100500 раз там акцентировал внимание на том, что эти счётчики НЕ ИМЕЮТ никакого отношения к кол-ву мусора в БД...

Ты статистику снимал ? На кол-во версий смотрел ? Оно только увеличивается ?Статистику снимал, но не логировал, к сож-ю. И не по всем таблицам.
Сегодня запущу задание в кроне, пущай откладывает.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691879
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrТаблоидда, есть и большиетогда бы OIT застыл намертво (до свипа)Тогда, если они не большие, я должен был бы видеть в трейсе по каждому роллбаку (для транзакций, которые действительно что-то меняли) статистику его действий по таблицам - так или нет ?
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691892
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrоднако, KDV - саботажник...
Таблоид2 kdv: ну поправь доку уже, что ле...
в где поправить?

единственные ссылки на то, что sweep interval срабатывает при OAT-OIT, есть только в отношении InterBase, якобы в какой то версии (типа 7.1) поменяли срабатывание с OST-OIT на OAT-OIT. И все.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691896
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

ты сначала выясни, у тебя OIT сам по себе не отстает (тогда больших роллбеков нет) или это твой автосвип его постоянно подгоняет (и тогда они есть)
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38691897
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид, dimitr

все, извиняюсь, нашел, исправил. Вообще надо бы и InterBase проверить, а то вдруг меня жестоко обманули.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38692030
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

твоя картинка (когда OST отстает от OIT) рассказывается тут
"Когда ReadCommitted блокирует Oldest Snapshot"
http://www.ibase.ru/devinfo/summary.htm
и то же самое есть в последней презентации AK на семинаре по транзакциям.

Если у тебя были "настоящие роллбэки", то из-за мелкого sweep interval ты скорее всего проглядел авто-запуск sweep. В логе точно свипа нет?
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38692052
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrты сначала выясни, у тебя OIT сам по себе не отстает (тогда больших роллбеков
нет) или это твой автосвип его постоянно подгоняет (и тогда они есть)
А кстати: у IBS или IBE нет (случайно так) тулзы, которая бы показывала состояние
транзакций в TIP? Хотя, конечно, получив голую TIP можно и глазками посмотреть...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38692126
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvтвоя картинка (когда OST отстает от OIT) рассказывается тут
"Когда ReadCommitted блокирует Oldest Snapshot"
http://www.ibase.ru/devinfo/summary.htm
и то же самое есть в последней презентации AK на семинаре по транзакциям.kdv, спасибо! есть у мну одна догадка: это служебная ХП, которая регулярно стартует с TIL = RC и выполняет пересчет статистики индексов. Я её затолкал в RC... не помню уже, для чего :-)
Других аттачей с TIL = RC нету, так что сейчас переделаю эту штуку.

kdvЕсли у тебя были "настоящие роллбэки", то из-за мелкого sweep interval ты скорее всего проглядел авто-запуск sweep. В логе точно свипа нет?Точно нету.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38692146
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТы статистику снимал ? На кол-во версий смотрел ? Оно только увеличивается ?Запустил 50 молотилок, работают почти 2 часа.
Запустил также два .sh-скрипта, которые с интервалом 10 сек делают:
1) gstat -h с фильтром значений счетчиков
2) gstat -r с фильтром значений версий в тех таблицах, что мну сильнее всего сейчас интересуют (т.к. они меняются самым интенсивным образом).

Результат:
1) число версий в таблицах сначала выросло до нек. значений, а затем стало "танцевать" вокруг них, с небольшими амлитудами. Но постоянного роста - нету;
2) счетчики стабильно прут вверх, но и интервал OST - OIT также стабилен.

Логи в аттаче.
...
Рейтинг: 0 / 0
auto sweep: должен ли он стартовать, если OST < OIT ?
    #38692237
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.ibase.ru/devinfo/summary.htm Обратите внимание, что Oldest transaction больше Oldest snapshot. И Sweep gap имеет отрицательное значение. Это может произойти в двух случаях.
Первый случай , когда есть периодически стартуемые и завершаемые транзакции snapshot. То есть, эта картинка показывает наличие "долгоживущих" snapshot так же, как и предыдущая.
Второй случай происходит на серверах, кроме IB 7.1, при работе с ReadCommitted транзакциями (или в комбинации read_committed и snapshot). Здесь транзакция ReadCommitted блокирует Oldest Snapshot точно таким же образом, как транзакции Snapshot.Переделал процедуру, собиравшую статистику по индексам в RC, под снапшот.
Теперь ReadCommitted транзакций нет. Вообще.

Увы и ах, но по прежнему OST < OIT, причём опять на какую-то стабильную величину около 500:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
20140709_174224 iter 82
......................
        Oldest transaction      48834
        Oldest active           48835
        Oldest snapshot         48304
        Next transaction        49326
now sleep 10 seconds. . .

20140709_174234 iter 83
......................
        Oldest transaction      49213
        Oldest active           49214
        Oldest snapshot         48691
        Next transaction        49832
now sleep 10 seconds. . .

20140709_174244 iter 84
......................
        Oldest transaction      49791
        Oldest active           49792
        Oldest snapshot         49214
        Next transaction        50434
now sleep 10 seconds. . .

20140709_174254 iter 85
......................
        Oldest transaction      50472
        Oldest active           50473
        Oldest snapshot         49872
        Next transaction        51095
now sleep 10 seconds. . .
Остается тогда только первый случай - наличие долгих снапшотов.
Значит, автосвип так и не будет стартовать.
Утешает, впрочем, что число версий не растёт после того, как достигнет некоторого потолка.

ЗЫ. Пока не появится фича, позволяющая разобраться в причинах сумасшедших значений времени при небольших числах fetches / marks и практически отсутствующих reads/writes - причину застреваний не найти :(
...
Рейтинг: 0 / 0
25 сообщений из 72, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / auto sweep: должен ли он стартовать, если OST < OIT ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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