> >     А что такое background gc по-твоему ?
>
> По моему это когда фоновый поток периодически
> проверяет все данные на предмет мусора.

    Не угадал

> >>Можно предложит вариант с перерасчётом при commit, но отложенно
> >>в мусорщике.
> >
> >
> >     Ты понимаешь причины застревания OIT ? А механизм его сдвига после
> > застревания ?
>
> Блин, у меня дикий своппинг в мозгу - вспомнить всё :-0

    Зачем тогда эта беседа ?

> Застревает как я понимаю если сделат rollback.

    Не каждый rollback к этому приводит.

> Чтобы сдивинуть
> потом нужно в TIP пометить эту транзакцию как commited, но

    Не нужно

> при условии что версии из rollback транзакции почищены.

    Тут правильно

> Это всё в свою очередь возможно если нет работающих
> snapshot транзакций запущенных _до_ старта rollback
> транзакции. Вот какая хренотень.

    OIT не бывает выше OAT, так что это не в кассу

>   Получается что основная проблема - это сборка версий
> старой rollback транзакции. Для этого надо пробегать
> все таблицы базы... либо .... Вообщем я пока пас :-|

    Никаких либо - нужно читать всю БД, чем свип и занимается

> >>При том что задача в целом аналогична сборке мусора. И требуются
> >>примерно аналогичные решения.
> >
> >
> >     Я тупой и не вижу аналогий
>
> Ну вместе со свипом пересчитывать статистику.

    Статистика индекса - это значения всех ключей. Свип не читает все
индексы. Он даже не читает все версии всех записей. Так что - аналогия
только в фоновом выполнении. Но тогда можно сказать, что обновлять
статистику можно по-аналогии с cache_writer

> >     Ибо статистика пока слабо пользуется оптимизатором.
>
> Достаточно чтобы похерить план :-)
> Основная проблема - пустая база создаётся из скрипта и
> бросается на произвол судьбы юзерам.

    Maitenance со встроенным в ОС планировщиком не судьба делать ?
И никакого призвола со стороны юзеров :)

-- 
Хорсун Влад

PS Насчёт произвола юзеров из кода FB :

/**************************************
*
* g d s _ $ c r e a t e _ d a t a b a s e
*
**************************************
*
* Functional description
* Create a nice, squeeky clean database, uncorrupted by user data.
*
**************************************/
...
/**************************************
*
* g d s _ $ a t t a c h _ d a t a b a s e
*
**************************************
*
* Functional description
* Attach a moldy, grungy, old database
* sullied by user data.
*
**************************************/

:)))


Ответить