Exigences matérielles

Besoins

Une petite instance d’eCorpus peut fonctionner sur à peu près n’importe quel appareil.

Toutes les opérations de stockage et de base de données se déroulent sur disque (voir sqlite) ; un support de stockage local rapide, fiable et durable est donc nécessaire.

Exigences matérielles

Dépend fortement du trafic attendu et de la taille du corpus.

Au minimum, il faut s’attendre à :

Il a été vérifié qu’il fonctionnait sur des systèmes aussi petits que 1 Go de RAM et 1 vCPU avec un petit ensemble de données et un faible volume de connexions.

Exigences logicielles

une chaîne d’outils pour compiler les addons nodejs natifs peut être nécessaire si node-sqlite3 ne fournit pas de module préconstruit fonctionnel pour votre plateforme.

Vous pouvez également utiliser Docker.

Optimisation de la production

Mettre la base de données en mode WAL avec PRAGMA journal_mode = WAL peut grandement accélérer les opérations. L’optimisation de la mémoire en utilisant PRAGMA soft_heap_limit peut aider.

S’assurer que le système de fichiers est capable de gérer un grand nombre de fichiers dans un seul répertoire peut être important. Utilisez tune2fs pour activer dir_index pour les systèmes de fichiers ext[234].

L’en-tête Cache-Control est très restrictif par défaut pour permettre un contrôle d’accès fin. Si tous les objets sont publics, il peut être remplacé par Cache-Control : public dans la plupart des cas.

Limites

eCorpus sur sqlite est tout à fait capable de gérer quelques milliers d’objets avec un certain niveau de concurrence, pour un site web public de taille moyenne.

Pour tout ce qui est beaucoup plus important, il est recommandé de passer à un autre moteur de base de données ou d’utiliser un système conçu pour l’échelle comme dpo-pakrat.