Aller au contenu

storh

storh est un magasin de données autonome PHP reposant sur des fichiers : des documents JSONC, un journal segmenté en ajout seul et une file en ajout seul. Il stocke des enregistrements avec des identifiants UUIDv7, prend en charge les lectures en continu ainsi que les requêtes par curseur ou plage temporelle, et utilise des opérations atomiques du système de fichiers au lieu d’un serveur de base de données.

Les appelants fournissent un répertoire. storh ne découvre pas les chemins de l’application, ne lit pas les constantes globales et n’exige aucun adaptateur de framework.

Moteurs

  • DocStore stocke un fichier JSONC par enregistrement, avec des chemins répartis selon deux caractères du début du dernier groupe de l’UUID. Idéal pour les lectures ponctuelles par identifiant et les requêtes sur des champs indexés.
  • SegmentedLog ajoute les enregistrements aux fichiers de segment sous forme de lignes JSON protégées par un préfixe indiquant leur longueur en octets et leur somme de contrôle. Idéal pour les flux à nombreux ajouts avec lectures par curseur et par plage temporelle.
  • Queue ajoute des événements de travaux durables et conserve l’état de la file en mémoire. Idéal pour la distribution durable de travaux entre processus.

Vous ne savez pas lequel convient à votre charge de travail ? Consultez Choisir un moteur pour une comparaison côte à côte.

DocStore, SegmentedLog et Queue sont des alias de classe des classes d’implémentation DocPerFileStore, SegmentedLogStore et LogQueue ; les deux noms désignent donc la même classe.

Prérequis

  • PHP 8.2 ou version ultérieure
  • ext-json
  • un système de fichiers local ou monté prenant en charge le renommage atomique au sein d’un répertoire

Pour la suite