Aller au contenu

Montée en charge et limites

storh privilégie le stockage sur fichiers ; ce n’est pas un moteur de requêtes relationnel. Voici les limites pratiques, avec des chiffres de référence tirés des tests de performances (50k enregistrements, Apple M1 Pro) :

  • L’accès ponctuel est pratiquement sans limite tant que le système de fichiers peut gérer le nombre de fichiers et que la collection utilise le partitionnement par les deux derniers caractères UUID. Une lecture ponctuelle prend quelques microsecondes ; les écritures durables d’un seul enregistrement sont limitées par fsync à quelques milliers par seconde.
  • Les parcours du journal segmenté, les lectures par curseur et les lectures par plage temporelle restent confortables jusqu’à environ 1 M d’enregistrements, si la taille des segments est adaptée à la charge de travail. Les ajouts en masse atteignent des dizaines de milliers d’enregistrements par seconde ; la récupération des fins de journal incomplètes rejoue des centaines de milliers d’enregistrements par seconde à la réouverture.
  • Les opérations de file ajoutent des événements compacts à un journal durable unique ; l’ajout, la prise en charge, la validation, la remise en file et la purge évitent ainsi la multiplication des fichiers et des opérations sur le répertoire. La prise en charge et la validation par lots répartissent les verrous et fsync sur des lots entiers.
  • Les parcours des champs fichier par fichier dans DocStore ralentissent au-delà d’environ 10k enregistrements, car chaque parcours correspondant doit examiner les fichiers un par un. Déclarez des index pour les champs filtrés ; les requêtes d’égalité indexées répondent en environ une milliseconde, quelle que soit la taille de la collection.
  • storh n’est pas destiné aux requêtes relationnelles ponctuelles, aux jointures, aux filtres faisant un usage intensif des index secondaires ni aux analyses portant sur de nombreux champs. Transférez les collections vers un miroir SQL pour ces types de lectures ; conservez les données de référence dans une véritable base de données lorsque vous avez besoin de transactions sur plusieurs enregistrements.

Utilisez DocStore si les lectures ponctuelles dominent, SegmentedLog si les ajouts et les lectures ordonnées dominent, et Queue pour distribuer simplement des travaux durables. Consultez Choisir un moteur pour une comparaison côte à côte.