PgDog
Herramienta de escalado horizontal de PostgreSQL que combina agrupación de conexiones, balanceo de carga y fragmentación distribuida en un único ejecutable.
Acerca de PgDog
PgDog es una herramienta de escalado horizontal para PostgreSQL que integra la agrupación de conexiones, el balanceo de carga y las capacidades de bases de datos distribuidas en un único ejecutable. Como agrupador de conexiones, permite que unas pocas conexiones de Postgres atiendan a más de 100.000 clientes sin romper la funcionalidad de Postgres; según el proveedor, un solo hilo puede procesar más de 50.000 transacciones por segundo. Como balanceador de carga, distribuye las consultas de lectura entre réplicas, detecta la latencia de replicación y el cambio del nodo primario, y la aplicación solo necesita un punto de entrada. En el modo distribuido, PgDog extrae la clave de fragmentación de las consultas y las enruta al fragmento correcto; las consultas sin clave de fragmentación se ejecutan en paralelo en todas las bases de datos. Las transacciones entre fragmentos realizan escrituras atómicas mediante confirmación en dos fases y se revierten automáticamente si se produce un error; según el proveedor, el cumplimiento de ACID se mantiene a gran escala.
Ideal para
Mejores casos de uso
Mantener de forma estable 100.000 conexiones de clientes con pocas conexiones de base de datos
Distribuir el tráfico de lectura entre varias réplicas de solo lectura y detectar la latencia de replicación y el cambio del nodo primario
Enrutar las consultas al fragmento correspondiente según la clave de fragmentación y ejecutar en paralelo las consultas que no la tengan
Ejecutar transacciones entre fragmentos y revertirlas automáticamente ante errores para garantizar la atomicidad
Funciones
Agrupación de conexiones
Comparte unas pocas conexiones de Postgres entre más de 100.000 clientes sin romper la funcionalidad de Postgres.
Balanceo de carga de lectura
Distribuye las consultas de lectura entre réplicas, detecta la latencia de replicación, los fallos de hardware y el cambio del nodo primario; todas las consultas usan un único punto de acceso.
Fragmentación inteligente
Obtiene la clave de fragmentación directamente de la consulta y la envía al fragmento correcto; las consultas sin clave de fragmentación se ejecutan en paralelo en todas las bases de datos.
Transacciones entre fragmentos
Usa transacciones preparadas nativas de Postgres y confirmación en dos fases para escribir atómicamente en todos los fragmentos, con reversión automática si se produce un error.
Ventajas
- Según el proveedor, un solo hilo puede procesar más de 50.000 transacciones por segundo y adopta una arquitectura asíncrona multihilo
- Unas pocas conexiones bastan para atender a más de 100.000 clientes sin romper la funcionalidad de Postgres
- Todas las consultas requieren un único punto de acceso; detecta automáticamente la latencia de replicación, los fallos de hardware y el cambio del nodo primario
- Las transacciones entre fragmentos usan confirmación en dos fases y cualquier error provoca una reversión automática