
PgDog est un pool de connexions, un répartiteur de charge et un proxy de sharding open source pour PostgreSQL. Il est conforme à Postgres, rapide, sécurisé et développé en toute transparence par une communauté d'ingénieurs en bases de données.
PgDog est un proxy open source de mise en pool de connexions, d'équilibrage de charge et de partitionnement pour PostgreSQL. Il s'agit d'un exécutable unique qui remplace plusieurs outils d'infrastructure de base de données, vous permettant de faire évoluer Postgres horizontalement sans modifier le code de votre application. Développé ouvertement par une communauté d'ingénieurs en bases de données, PgDog gère tout, de la mise en pool de milliers de connexions à la distribution de requêtes sur des bases de données partitionnées.
PgDog partage un petit pool de connexions Postgres entre plus de 100 000 clients sans interrompre l'état de session, les verrous consultatifs ou LISTEN/NOTIFY. Il est multi-thread et asynchrone, gérant plus de 50 000 transactions par seconde par thread sans limite de longueur de requête ou de connexion.
L'équilibreur de charge distribue les lectures entre les réplicas, détecte le retard de réplication et les pannes matérielles, et déplace automatiquement le trafic d'écriture vers un nouveau primaire lors d'un basculement. Un analyseur SQL Postgres intégré permet la séparation lecture/écriture sans modifications côté client.
PgDog extrait la clé de partitionnement directement des requêtes et les achemine vers la partition correcte. Les requêtes sans clé de partitionnement s'exécutent en parallèle sur toutes les bases de données, prenant en charge GROUP BY, COUNT, AVG, ORDER BY, MIN, MAX et les opérations COPY dès le départ.
Les transactions inter-partitions utilisent les transactions préparées natives de Postgres et le commit en deux phases pour des écritures atomiques entre les partitions. Les tables répliquées permettent des jointures rapides et locales à la partition, et les clés primaires entières sont générées automatiquement dans le proxy. Le DDL est automatiquement appliqué sur toutes les partitions, de sorte que les outils de migration comme Alembic et ActiveRecord fonctionnent sans modification.
"PgDog ne sacrifie pas la vitesse pour la cohérence. Il maintient la conformité ACID, à grande échelle."
La plupart des solutions de partitionnement vous obligent à choisir entre performance et intégrité des données. PgDog préserve toutes les garanties ACID même lorsque les transactions s'étendent sur plusieurs partitions, en utilisant le propre commit en deux phases de Postgres. Cela signifie que vous pouvez évoluer horizontalement tout en conservant la même sémantique transactionnelle que celle attendue d'une instance Postgres unique.
Vous utilisez Postgres en production et avez besoin de gérer plus de connexions, de distribuer le trafic de lecture ou de partitionner votre base de données sans réécrire votre application. PgDog est particulièrement utile si vous souhaitez un proxy open source unique qui remplace les outils séparés de mise en pool de connexions, d'équilibrage de charge et de middleware de partitionnement — tout en restant compatible avec vos outils Postgres et pilotes clients existants.
D'autres outils que vous pourriez envisager
Loading comments…
Créateur
kettle_dev
Visiter le site web
pgdog.dev
Infos du projet
Mots-clés du produit