Gå til indhold

storh

storh er et selvstændigt PHP-datalager bygget op omkring filer: JSONC-dokumenter, en segmenteret log med tilføjelser og en kø med tilføjelser. Det gemmer poster med UUIDv7-id'er, understøtter streaminglæsninger og markør- eller tidsområdeforespørgsler og bruger atomiske filsystemhandlinger i stedet for en databaseserver.

Kaldere angiver en mappe. storh finder ikke selv applikationsstier, læser ikke globale konstanter og kræver ikke en frameworkadapter.

Motorer

  • DocStore gemmer én JSONC-fil pr. post med stier opdelt efter de sidste UUID tegn. Bedst til punktlæsninger efter id og indekserede feltforespørgsler.
  • SegmentedLog føjer poster til segmentfiler som JSON-linjer med præfikser for byte-længde og kontrolsum. Bedst til streams med mange tilføjelser og markør- eller tidsområdelæsninger.
  • Queue føjer varige jobhændelser til og holder køtilstanden i hukommelsen. Bedst til varig arbejdsfordeling mellem processer.

Er du i tvivl om, hvilken der passer til din arbejdsbelastning? Se Valg af motor for en sammenligning side om side.

DocStore, SegmentedLog og Queue er klassealiaser for implementeringsklasserne DocPerFileStore, SegmentedLogStore og LogQueue, så begge navne henviser til den samme klasse.

Krav

  • PHP 8.2 eller nyere
  • ext-json
  • et lokalt eller monteret filsystem med semantik for atomisk omdøbning i en mappe

Hvad nu?