В чем отличие на практике “storage2.piece-scan-on-startup: false” от применения “enable-lazy-filewalker”?

@Alexey объясните пожалуйста - в чем отличие на практике “storage2.piece-scan-on-startup: false” от применения “enable-lazy-filewalker”? Как работает “lazy-filewalker”? Есть ли смысл переводить все узлы на “lazy-filewalker”? Спасибо

3 Likes

Для начала поясню, что такое filewalker.
Это процесс обхода и вычисления размеров всех кусочков, принадлежащих вашему узлу, для предоставления точной информации о занятом и свободном месте как сателлитам, так и на dashboard.
Например, если у вас повредилась БД и/или вы пересоздали её, узел не сможет распознать свои кусочки, потому что эта информация была потеряна, filewalker восстановит эту информацию в БД (если она исправна) и узел “признает” свои кусочки и будет считать занятое и свободное место корректно.
Он так же помогает в случае, если диск используется совместно с чем-то другим (многие запускают майнер Chia на том же диске).

Это две совершенно разные опции.

Отключает запуск filewalker при старте узла. Это бывает полезно для медленных дисков и/или слабых систем типа Raspberry Pi, но применимо только если ничего больше не использует диск и БД исправна, иначе узел будет предоставлять неверную информацию о занятом и свободном месте как сателлитам, так и на dashboard.

Аргумент командной строки:

или параметр в config.yaml

pieces.enable-lazy-filewalker: true

включает возможность запуска filewalker с пониженным приоритетом, чтобы узел мог нормально обрабатывать клиентские запросы, а не зависать на секунды, если диск и/или ваша система неспособны их обрабатывать параллельно. Опять же полезно для медленных дисковых подсистем и/или слабых устройств типа Raspberry Pi. Но в результате filewalker будет работать значительно дольше.
Разумеется, работает только совместно с включенным filewalker (значение по умолчанию)

storage2.piece-scan-on-startup: true
3 Likes

Для включения “ленивого” нужно указать все 3 параметра?
storage.enable-lazy-filewalker: true
storage2.enable-lazy-filewalker: true
piece.enable-lazy-filewalker: true

Достаточно только правильного, если вы не выключали filewalker:

Не забудьте сохранить конфиг и перезапустить узел.

The question is, then what does “storage2.piece-scan-on-startup: false” scan?

because its scans too, but very shortly, just 2 minutes for every 1 TB here,
i will probaly leave it like that for ever! Love it!
(i will monitor free space for my self, don’t need such HDD wearing mechanism to do so)
(Bcause filewalker in normal way, is just unacceptable for me for 7TB and more discs.
it takes 3-4 days to finish, with good hdd access times, like 8-10ms, constant, but still takes days for full 7TB hdd.)

This is more like a trash cleaner. It removes expired pieces from the trash.

1 Like

По-дефолту этот параметр активации filewalker включен.
Причем, выключая его, не тольно “…-on-startup”, но в принципе использование filewalker запрещается? Если так, то название параметра настройки, получается, не очень корректно отражает его суть.

Он включен по умолчанию, если вы его не выключили. Когда вы его выключаете, он не запускается на старте, но периодическое обновление баз данных информацией об использованном месте всё равно происходит.

1 Like

Ну чтобы добить вопрос: правильно ли я понимаю, что активация режима lazy у filewalker происходит только в случае если не запрещено сканирование при старте (scan-on-startup)?

На used-space-filewalker - да, остальные не имеют параметра для отключения, кроме lazy true/false.
Но вы можете поэкспериментировать, я могу ошибаться, не все изменения смотрел.