loopbackio / loopbackio/loopback-next

Loopback not utilizing connection pool fully

Ouverte
#7,603 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
TypeScript
Étoiles
5.1k
Forks
1.1k
Merge moyen
2 j 21 h
PR mergées (30 j)
27

Description

Using loopback datasources for postgres, we provided max connection pool of 20. As soon as app starts it makes two connection. When doing load test using jmeter, it is seen that only those two are being used. But after some time new connection were formed, to match the max number. But in any given second active connection were never more than 3. Also it was like utilizing a stack of connections because it is noticed that the last released connection was used. So, system was never able to use near 10-15 connections although they were there in idle state. This resulted in a tps of 160, for a process which comprised :

http in -> two db insert -> http out
The model had 200 fields, there are minimum validations, with no hooks, beforeSave, afterSave etc.

Attaching connection logs:

Start: <timestamp> => represents http in
Stop: <timestamp> => represents http out

DB-Write Start: <unique identifie><timestamp> => represents beginning of write process, handing it off to loopback
DB-Write Stop: <unique identifier><timestamp> => represents end of write process,

### 2021-07-01T13:26:39.589Z Acquired <connectionId> => represents acquiring process by pg, got using pg.pool.on('aquire',...)
releasing connection### <connectionId> => releasing of said connection back to pool
### 2021-07-01T13:26:40.148Z Connect <connectionId> => Making new connections

Thanks.
connect_findings.txt

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Aucun fichier source ni test n’est nommé. Commencez par la configuration du pool de la datasource PostgreSQL et les journaux de connexion joints, puis reproduisez le schéma de charge JMeter signalé. La tâche est terminée lorsqu’il est établi pourquoi les connexions inactives du pool ne sont pas utilisées simultanément et que le comportement est documenté ou corrigé afin que l’utilisation corresponde au pool configuré.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
postgresql, typescript
Domaine
backend, databases
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
20/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.