Warum man DB-Verbindungen während LLM-Aufrufen nicht offen halten sollte
KI-Latenz besteht nicht nur aus der Zeit, die das Modell zum „Nachdenken“ benötigt. Sie umfasst auch die Art und Weise, wie Sie Datenbankverbindungen verwalten.
Das Offenhalten einer DB-Verbindung während des Wartens auf ein LLM oder eine Embedding-API kann Ihren Connection Pool erschöpfen. Langsame externe Aufrufe halten Sitzungen viel länger offen, als es notwendig wäre.
Ich habe mir das Honcho-Repo angesehen, um deren Lösung zu verstehen. Sie haben eine einzige, langlebige Sitzung durch kurze, aufgabenbezogene Sitzungen ersetzt.
Altes Muster
- DB-Sitzung öffnen
- Benutzereinstellungen lesen
- LLM aufrufen (langsam)
- Embedding-API aufrufen (langsam)
- Ergebnisse speichern
- DB-Sitzung schließen
Neues Muster
- DB-Sitzung für Pre-Flight-Checks öffnen
- Benötigte Werte in Variablen lesen
- DB-Sitzung schließen
- LLM und Embedding-APIs aufrufen (keine DB-Verbindung offen gehalten)
- Eine neue, kurze DB-Sitzung zum Speichern der Ergebnisse öffnen
- DB-Sitzung schließen
Das Ziel ist nicht, die Datenbank aufzugeben; es geht darum, die Transaktionskonsistenz vom Warten auf das Netzwerk zu trennen.
Fünf Schritte zur Verwaltung Ihrer Verbindungen
- Definieren Sie Ihre Konsistenzgrenzen.
- Übertragen Sie alle erforderlichen Werte in Variablen, bevor Sie einen externen API-Aufruf tätigen.
- Schließen Sie den Datenbank-Scope.
- Führen Sie die langsamen externen Aufgaben aus.
- Öffnen Sie einen neuen, kurzen Schreib-Scope, um die endgültigen Ergebnisse zu persistieren.
Hinweis: Wenn Sie pgvector verwenden, läuft die Suche innerhalb der Datenbank, daher müssen Sie die Sitzung während dieses Vorgangs offen halten.
Die Verkürzung der Lebensdauer von Sitzungen verbessert die Skalierbarkeit, aber achten Sie auf Detached-Object-Fehler in Ihrem ORM und stellen Sie sicher, dass die Daten über Transaktions-Snapshots hinweg konsistent bleiben.
Source: https://dev.to/junhyun-dev/neurin-llm-hocul-jung-db-connectioneul-jabji-anhneun-iyu-3abg
Optional learning community: https://t.me/GyaanSetuAi
