Aller au contenu principal

Haute disponibilité et limites

La haute disponibilité est déclarée par service d'après le code réel de la version installée (ADR-0166). Pour la mémoire IA, la réponse est simple : aucun des deux moteurs n'a de mode répliqué.

Mem0 : instance unique​

Le descripteur déclare cluster, ha, failover, replication et quorum à none, un seul mode single et un seul domaine de panne. Raisons lues dans le code de la v2.2.1 :

  • l'historique des mémoires et les messages récents servant de contexte d'extraction sont dans un fichier SQLite local (HISTORY_DB_PATH) ;
  • les limites de débit des routes d'authentification sont comptées en mémoire, par processus ;
  • les migrations s'appliquent à chaque démarrage.

Deux serveurs derrière un répartiteur garderaient chacun un historique partiel. La perte du serveur arrête l'API de mémoire jusqu'à son redémarrage ou sa restauration ; les mémoires, vecteurs, utilisateurs et clés restent dans PostgreSQL. Avec le service PostgreSQL hautement disponible, un hôte perdu se remplace par une réinstallation et la restauration du fichier d'historique.

Cognee : profil standard en instance unique​

Le profil standard associe PostgreSQL (métadonnées relationnelles et pgvector) et LadybugDB 0.19.0 embarqué sur un volume persistant. LadybugDB est un moteur embarqué dont les fichiers sont verrouillés par un seul processus ; le point d'entrée officiel lance un seul processus gunicorn. Deux API garderaient chacune un graphe différent. Aucun mode distribué ni répliqué n'est proposé. Un hôte perdu se remplace par une réinstallation et la restauration de la dernière sauvegarde (base, fichiers LadybugDB et racine des données pris ensemble).

Backends de graphe non proposés​

  • Le backend de graphe PostgreSQL de Cognee 1.6.6 (postgres_demo) est une démonstration que le code source déclare non prête pour la production : il n'est jamais présenté comme prêt pour la production bancaire.
  • Neo4j, Neo4j Aura et Neptune sont exclus (licence ou service cloud). Turso n'est pas un moteur validé de la plateforme.
  • Le profil avancé de l'ADR-0174 (graphe externe sous licence autorisée, isolation des tenants validée par un test) n'a aujourd'hui aucun backend qui remplisse ces conditions.

Aucune capacité annoncée​

Aucun débit, aucune latence, aucun volume de mémoires ni aucune taille de graphe n'est garanti : aucun test de charge n'a été fait. Les seuils des contrôles préalables (mémoire, CPU, disque) sont des minimums d'installation, pas une capacité. Les réglages qui bornent la charge sont limit_concurrency (Mem0, 64 requêtes simultanées par défaut, au-delà 503), max_concurrent_pipelines (Cognee, 2 traitements simultanés par défaut) et request_timeout_s (Cognee, 3600 secondes).

Ce qui a été vérifié réellement​

Les tests navin-manager/server/tests/test_mem0_real.py et test_cognee_real.py rendent la méthode python du descripteur avec le contexte du Manager et la font tourner pour de vrai contre un PostgreSQL 16.14 réel avec pgvector 0.8.5, provisionné par la commande du descripteur postgresql.

PointMem0Cognee
Sources ou paquetles 24 fichiers du serveur identiques à l'archive v2.2.1cognee 1.6.6, LadybugDB 0.19.0 réel
Base et rôlerôle mem0 sans privilège, migrations à la révision 006rôle cognee propriétaire de la seule base
Authentification401 sans clé, inscription fermée, clés utilisateur créées puis révoquées401 sans clé, compte amont absent, clé stockée en empreinte
Cycleajout avec extraction, recherche, mise à jour, historique, redémarrage, suppressionajout, cognify, relations extraites, recherches CHUNKS, GRAPH_COMPLETION, RAG_COMPLETION, SUMMARIES, redémarrage, suppression d'un élément
Isolation-deux utilisateurs séparés, ouverture par permission de lecture
Sauvegardesauvegarde, vérification, restauration, migration de mise à joursauvegarde, vérification, perte, restauration
Test fonctionnel du descripteurtoutes les étapes réussies, clé masquéetoutes les étapes réussies, clé masquée
Sorties réseauaucuneaucune

Limite importante : aucun vrai serveur de modèles n'a servi. La passerelle est un serveur déterministe compatible OpenAI du test, joint comme LiteLLM à <url>/v1. Mem0 a été testé avec les noms par défaut local-llama et bge-m3-vllm (vecteurs de 1024) ; Cognee avec les noms de test navin-chat et navin-embed. La qualité d'extraction et de réponse avec un vrai modèle n'est donc pas mesurée. Seule la méthode python est exécutée par ces tests ; la méthode podman de Cognee, son interface et son serveur MCP ne le sont pas.