Към съдържанието

CLI

Обвивка
vendor/bin/storh stats <root> [collection] [doc|log|queue]
vendor/bin/storh verify <root> [collection] [doc|log|queue]
vendor/bin/storh compact <root> [collection] [doc|log]
vendor/bin/storh reindex <root> [collection]

<root> е коренът за съхранение, с който са отворени машините; това е пътят, който връща StorageRoot::resolve(): основната директория плюс пространството от имена. Хранилище, отворено под StorageRoot::resolve(__DIR__ . '/var/storh', 'app'), се намира в var/storh/app:

Обвивка
vendor/bin/storh stats var/storh/app pages doc
vendor/bin/storh verify var/storh/app events log
vendor/bin/storh compact var/storh/app events log
vendor/bin/storh reindex var/storh/app pages

Подаването само на основната директория (var/storh) насочва командите към колекция, която още не съществува, затова те показват празна колекция, вместо да прекратят с грешка.

vendor/bin/storh изисква storh 0.5.2 или по-нова версия, когато storh е инсталиран като зависимост. По-ранните версии търсеха само автозареждащия файл на Composer в собствената директория vendor/ на пакета и завършваха с грешка require.

CLI извежда стабилен JSON, за да може да се използва в задачи на cron и проверки на изправността при внедряване. Колекцията по подразбиране е default; машината по подразбиране е doc за stats, verify и reindex, и log за compact.

Методи за поддръжка зад командите

Всички машини предоставят методите за поддръжка, управлявани от CLI:

PHP
$store->stats();
$store->health();
$store->verify();
$store->repair();

DocStore добавя:

PHP
$docs->reindex();
$docs->compact(); // no-op report for API symmetry

SegmentedLog добавя:

PHP
$log->compact();
$log->recover();
$log->state_index();

При DocStore verify() проверява дали записите се анализират коректно и дали индексите за равенство, диапазон и съставните индекси съответстват на пълното сканиране на записите. repair() поставя повредените файлове със записи под карантина в .storh/corrupt/ и изгражда отново индексите от валидните записи.

При SegmentedLog verify() декодира редовете на сегментите и сравнява текущия производен индекс на състоянието с ново възпроизвеждане на сегментите. repair() възстановява производното състояние и отрязва прекъснатите последни редове.

При Queue verify() декодира всяко трайно събитие и сравнява състоянието на чакащите, обработваните и завършените задачи, полезните данни и реда на резервиране с ново възпроизвеждане на queue.log. repair() възстановява състоянието на опашката от журнала и връща в опашката задачите, чието време за обработка е изтекло.