Sobre el proyecto
PgDog es un proxy de PostgreSQL de código abierto escrito en Rust, diseñado para escalar implementaciones de PostgreSQL mediante agrupación de conexiones, balanceo de carga entre réplicas y fragmentación horizontal de bases de datos. Opera como un proxy de capa de aplicación (OSI Nivel 7) que entiende el protocolo de PostgreSQL, lo que permite el enrutamiento inteligente de consultas según la intención de lectura/escritura, las claves de fragmentación o el contexto del esquema.
Las características clave incluyen:
- Agrupación de transacciones y sesiones con mecanismos avanzados de recuperación, incluyendo la reversión automática de transacciones abandonadas.
- Balanceo de carga entre nodos primarios y réplicas utilizando estrategias round-robin, aleatorias o de menor actividad, con verificaciones de estado en tiempo real y soporte de conmutación por error.
- Fragmentación mediante funciones de partición (HASH, LIST, RANGE) o enrutamiento basado en esquemas, admitiendo consultas entre fragmentos con ensamblaje de resultados en memoria.
- Soporte para generación de identificadores únicos sin secuencias, actualizaciones de claves de fragmento, inserciones de múltiples tuplas y confirmación en dos fases para escrituras atómicas entre fragmentos.
- Capacidades de re-fragmentación mediante replicación lógica, lo que permite la redistribución de datos sin tiempo de inactividad.
- Flexibilidad de autenticación: basada en contraseña, AWS RDS IAM, Azure Workload Identity y HashiCorp Vault (roles dinámicos/estáticos).
- Monitoreo mediante OpenMetrics, OTEL o una base de datos administrativa estilo PgBouncer.
Las opciones de implementación incluyen Docker Compose, Helm charts para Kubernetes (incluido EKS) y módulos de Terraform para AWS ECS. La configuración utiliza archivos TOML (`pgdog.toml` para bases de datos y ajustes, `users.toml` para credenciales). La herramienta está optimizada para rendimiento en hardware estándar e incluye herramientas integradas para sincronización de esquemas y datos durante la re-fragmentación.
La documentación y el soporte de la comunidad están disponibles a través del sitio oficial y Discord. Las características de la edición empresarial se documentan por separado.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.