
# storh

storh yra atskira PHP duomenų saugykla, sukurta failų pagrindu: JSONC dokumentai, tik papildymui skirtas segmentuotas žurnalas ir tik papildymui skirta eilė. Joje saugomi įrašai su UUIDv7 ID, palaikomas srautinis skaitymas ir užklausos pagal žymeklį arba laiko intervalą, o vietoj duomenų bazės serverio naudojamos atominės failų sistemos operacijos.

Iškviečianti programa pateikia katalogą. storh automatiškai neieško programos kelių, neskaito globalių konstantų ir nereikalauja karkaso adapterio.

## Varikliai

- `DocStore` kiekvienam įrašui saugo po vieną JSONC failą; keliai suskaidomi pagal pirmus du paskutinės UUID grupės simbolius. Geriausiai tinka tiesioginei paieškai pagal ID ir indeksuotoms užklausoms pagal laukus.
- `SegmentedLog` prideda įrašus prie segmentų failų kaip JSON eilutes, apsaugotas baitų ilgio ir kontrolinės sumos priešdėliu. Geriausiai tinka intensyviai pildomiems srautams, kai įrašai skaitomi pagal žymeklį arba laiko intervalą.
- `Queue` prideda patvarius užduočių įvykius ir laiko eilės būseną atmintyje. Geriausiai tinka patvariam užduočių paskirstymui tarp procesų.

Nežinote, kuris variantas tinka jūsų darbo krūviui? Žr. [Variklio pasirinkimas](https://storh.inline0.dev/lt/docs/engines#choosing-an-engine), kur pateiktas palyginimas greta.

`DocStore`, `SegmentedLog` ir `Queue` yra įgyvendinimo klasių `DocPerFileStore`, `SegmentedLogStore` ir `LogQueue` slapyvardžiai, todėl abu pavadinimai nurodo tą pačią klasę.

## Reikalavimai

- PHP 8.2 arba naujesnė versija
- `ext-json`
- vietinė arba prijungta failų sistema, palaikanti atominį pervadinimą aplanke

## Kas toliau

- [Diegimas](https://storh.inline0.dev/lt/docs/install)
- [Greitoji pradžia](https://storh.inline0.dev/lt/docs/quick-start)
- [Varikliai](https://storh.inline0.dev/lt/docs/engines)
- [Mastelio didinimas ir ribos](https://storh.inline0.dev/lt/docs/scaling-limits)
