Qu’est-ce que le pool de bases de données?

Je voulais juste connaître le concept de mise en commun des connexions de firebase database et comment il est réalisé.

Le regroupement des connexions à la firebase database est une méthode utilisée pour garder les connexions à la firebase database ouvertes afin qu’elles puissent être réutilisées par d’autres.

Généralement, l’ouverture d’une connexion à une firebase database est une opération coûteuse, surtout si la firebase database est distante. Vous devez ouvrir les sessions réseau, vous authentifier, faire vérifier les permissions, etc. Le regroupement maintient les connexions actives de sorte que, lorsqu’une connexion est demandée ultérieurement, l’une des connexions actives est utilisée de préférence à la création d’une autre.

Reportez-vous au diagramme suivant pour les paragraphes suivants:

+---------+ | | | Clients | +---------+ | | |-+ (1) +------+ (3) +----------+ | Clients | ===#===> | Open | =======> | RealOpen | | | | +------+ +----------+ +---------+ | ^ | | (2) | /------\ | | Pool | | \------/ (4) | ^ | | (5) | +-------+ (6) +-----------+ #===> | Close | ======> | RealClose | +-------+ +-----------+ 

Dans sa forme la plus simple, il ne s’agit que d’un appel API similaire (1) à un appel d’API de connexion ouverte, similaire à l’appel “réel”. Cela vérifie d’abord le pool pour une connexion appropriée (2) et, s’il y en a une, cela est donné au client. Sinon, un nouveau est créé (3).

De même, il y a un appel API étroit (4) qui n’appelle pas réellement la connexion étroite réelle , mais place la connexion dans le pool (5) pour une utilisation ultérieure. À un moment donné, les connexions dans la piscine peuvent être effectivement fermées (6).

C’est une explication assez simpliste. Les implémentations réelles peuvent gérer les connexions à plusieurs serveurs et à plusieurs comptes d’utilisateurs, elles peuvent pré-allouer certaines connexions de base, de sorte que certaines sont immédiatement prêtes, et elles peuvent même fermer les anciennes connexions lorsque le modèle d’utilisation s’estompe.

Les images parlent mille mots (paxdiablo a donné une description géniale):

texte alt

La source

Vous pouvez utiliser la bibliothèque apache commons pour l’implémentation du pool de connexions de manière transparente: http://commons.apache.org/dbcp/

DBCP est également un pool Hibernate pris en charge: http://www.informit.com/articles/article.aspx?p=353736&seqNum=4

Concept de mise en commun des connexions non seulement en Java, mais dans de nombreux langages de programmation. La création d’un nouvel object de connexion est coûteuse, de sorte qu’un nombre fixe de connexions est créé et maintenu dans le cycle de vie en créant un pool virtuel Java Just ( http://javajust.com/javaques.html ) voir la question 14 sur cette page

Comme le nom le suggère. Si quelques personnes veulent nager, elles peuvent nager dans la même piscine, est-il vraiment judicieux de construire une nouvelle piscine chaque fois que quelqu’un y ajoute? Le temps et le coût sont une priorité.