Crate mz_balancerd

source Β·
Expand description

The balancerd service is a horizontally scalable, stateless, multi-tenant ingress router for pgwire and HTTPS connections.

It listens on pgwire and HTTPS ports. When a new pgwire connection starts, the requested user is authenticated with frontegg from which a tenant id is returned. From that a target internal hostname is resolved to an IP address, and the connection is proxied to that address which has a running environmentd’s pgwire port. When a new HTTPS connection starts, its SNI hostname is used to generate an internal hostname that is resolved to an IP address, which is similarly proxied.

Modules§

  • codec πŸ”’
  • dyncfgs πŸ”’
    Dyncfgs used by the balancer.

Structs§

Enums§

Constants§

Traits§

Functions§

  • cancel_request πŸ”’
    Broadcasts cancellation to all matching environmentds. conn_id’s bits [31..20] are the lower 12 bits of a UUID for an environmentd/organization. Using that and the template in cancellation_resolver we generate a hostname. That hostname resolves to all IPs of envds that match the UUID (cloud k8s infrastructure maintains that mapping). This function creates a new task for each envd and relays the cancellation message to it, broadcasting it to any envd that might match the connection.
  • lookup πŸ”’
    Returns the first IP address resolved from the provided hostname.