
# storh

storh ir patstāvīga PHP datu krātuve, kuras pamatā ir faili: JSONC dokumenti, tikai papildināms segmentēts žurnāls un tikai papildināma rinda. Tā glabā ierakstus ar UUIDv7 ID, atbalsta straumētu nolasīšanu un kursora vai laika diapazona vaicājumus, kā arī izmanto atomiskas failu sistēmas darbības datubāzes servera vietā.

Izsaucēji norāda direktoriju. storh neatklāj lietotnes ceļus, nelasa globālas konstantes un neprasa ietvara adapteri.

## Dzinēji

- `DocStore` katram ierakstam glabā atsevišķu JSONC failu, un ceļi tiek sadalīti mapēs pēc UUID astes. Vispiemērotākais atsevišķu ierakstu nolasīšanai pēc ID un indeksētiem lauku vaicājumiem.
- `SegmentedLog` pievieno ierakstus segmentu failiem JSON rindu veidā, ko aizsargā baitu garuma un kontrolsummas prefikss. Vispiemērotākais papildināšanai intensīvām plūsmām ar kursora un laika diapazona nolasīšanu.
- `Queue` pievieno noturīgus uzdevumu notikumus un uztur rindas stāvokli atmiņā. Vispiemērotākais noturīgai darbu nodošanai starp procesiem.

Neesat pārliecināts, kurš variants atbilst jūsu darba slodzei? Skatiet [Dzinēja izvēle](https://storh.inline0.dev/lv/docs/engines#choosing-an-engine), lai salīdzinātu tos blakus.

`DocStore`, `SegmentedLog` un `Queue` ir ieviešanas klašu `DocPerFileStore`, `SegmentedLogStore` un `LogQueue` klašu aizstājvārdi, tāpēc abi nosaukumi apzīmē vienu un to pašu klasi.

## Prasības

- PHP 8.2 vai jaunāka versija
- `ext-json`
- lokāla vai piemontēta failu sistēma ar atomiskas pārdēvēšanas semantiku direktorijā

## Kurp doties tālāk

- [Instalēšana](https://storh.inline0.dev/lv/docs/install)
- [Ātrais sākums](https://storh.inline0.dev/lv/docs/quick-start)
- [Dzinēji](https://storh.inline0.dev/lv/docs/engines)
- [Mērogošana un ierobežojumi](https://storh.inline0.dev/lv/docs/scaling-limits)
