[devel] hasher unchecked_initroot_cache

Dmitry V. Levin ldv на altlinux.org
Вт Сен 8 22:05:30 MSK 2020


On Tue, Sep 08, 2020 at 06:09:11PM +0300, Anton Farygin wrote:
> On 08.09.2020 18:01, Dmitry V. Levin wrote:
> > On Tue, Sep 08, 2020 at 03:12:33AM +0300, Igor Vlasenko wrote:
> >> Оптимизируем hasher для работы с фиксированным репозиторием. II.
> >> ________________________________________________________________
> >>
> >> При запуске hasher, если hasher/cache/ уже есть,
> >> то hasher проверяет, не изменился ли репозиторий, и если изменился,
> >> то обновляет hasher/cache/, иначе использует hasher/cache/.
> >>
> >> По условиям задачи у нас фиксированный репозиторий. Это означает,
> >> что репозиторий не меняется без нашего ведома -- к примеру,
> >> локальное зеркало ежедневного релиза Сизифа.
> >>
> >> Вторая оптимизация позволяет ускорять любые работы с hasher.
> >>
> >> Ее суть проста: поскольку мы явно знаем, что репозиторий не менялся,
> >> то сообщить об этом hasher'у опцией вроде --same-repository,
> >> чтобы он поверил человеку на слово, пропустил тяжелые проверки,
> >> и сразу использовал свой hasher/cache/.
> > Я думаю, что поддержка $unchecked_initroot_cache, которая была реализована
> > весной прошлого года в hasher-1.3.36, предназначена для решения именно
> > этой задачи.  Эта оптимизация используется в install check на сборочнице.
> >
> > Пример использования:
> > unchecked_initroot_cache="$(sed '/^task[[:space:]]\+/!d;s///;q' /path/to/Sisyphus/files/list/task.info)"
> >
> а можно для тупых объяснить что это делает и как ?

unchecked_initroot_cache - это конфигурационная настройка, похожая на
конфигурационную настройку no_cache, только к no_cache есть cli в виде
--no-cache, а к unchecked_initroot_cache нет.

В пояснении к unchecked_initroot_cache написано следующее:

# Whether the initroot cache is unchecked.
# Unchecked initroot cache allows more efficient initroot caching,
# but its validity is the responsibility of the user.

По умолчанию значением unchecked_initroot_cache является пустая строка.
Если unchecked_initroot_cache имеет значение, отличное от пустой строки,
то hasher сравнивает это значение со значением unchecked_initroot_cache,
которое было на момент создания cache, и если эти значения совпадают, то
обычная проверка актуальности cache не производится.

Настройку вида
unchecked_initroot_cache="$(sed '/^task[[:space:]]\+/!d;s///;q' /path/to/Sisyphus/files/list/task.info)"
не рекомендуется использовать без --without-stuff по очевидной причине.

> Опцией было бы понятнее, конечно.

Есть мнение, что контролировать эту настройку с помощью cli не очень
удобно, но если будет предложен удачный вариант cli, то я не против.


-- 
ldv


Подробная информация о списке рассылки Devel