Vai al contenuto

storh

storh è un archivio dati autonomo PHP basato su file: documenti JSONC, un log segmentato append-only e una coda append-only. Memorizza record con ID UUIDv7, supporta letture in streaming e query tramite cursore o per intervallo temporale e usa operazioni atomiche sul filesystem invece di un server di database.

I chiamanti forniscono una directory. storh non rileva i percorsi dell'applicazione, non legge costanti globali e non richiede un adapter per framework.

Motori

  • DocStore memorizza un file JSONC per record, con percorsi suddivisi in partizioni in base ai primi due caratteri dell’ultimo gruppo dell’UUID. Ideale per letture puntuali per ID e query su campi indicizzati.
  • SegmentedLog aggiunge record ai file di segmento come righe JSON protette da un prefisso con lunghezza in byte e checksum. Ideale per flussi con molte aggiunte e letture tramite cursore o per intervallo temporale.
  • Queue aggiunge eventi di lavoro persistenti e mantiene lo stato della coda in memoria. Ideale per distribuire lavoro persistente tra processi.

Non sapete quale sia adatto al vostro carico di lavoro? Consultate Come scegliere un motore per un confronto fianco a fianco.

DocStore, SegmentedLog e Queue sono alias di classe delle classi di implementazione DocPerFileStore, SegmentedLogStore e LogQueue, quindi entrambi i nomi fanno riferimento alla stessa classe.

Requisiti

  • PHP 8.2 o successiva
  • ext-json
  • un filesystem locale o montato con semantica di rinomina atomica all'interno di una directory

Prossime tappe