Back to Devoured - September 11, 2026
DEVOURED
The lifecycle of a sharded Postgres query

The lifecycle of a sharded Postgres query

Tech PlanetScale
Scaling PostgreSQL to thousands of servers requires a sophisticated query router to handle distributed planning, connection pooling, and cross-shard joins.
What: This deep-dive explains how a distributed Postgres system uses routers to handle authentication, parse queries into abstract syntax trees, and construct execution plans that join data across multiple shards.
Why it matters: As applications exceed the limits of a single database instance, understanding query planning at the router level is essential for debugging performance bottlenecks in massive, distributed systems.
Takeaway: If you are sharding your database, prioritize co-locating related data (e.g., orders sharded by customer_id) to avoid the high latency and compute overhead of performing joins within the router layer.
Deep dive
  • Authentication: The router intercepts Postgres protocols (including SCRAM-SHA-256) to validate identity without moving credentials to shards.
  • Protocol Handling: Routers must support both Postgres Simple and Extended protocols to ensure compatibility with standard application drivers.
  • Query Planning: The router must maintain a schema cache and a topology map (stored in etcd) to resolve which shards hold necessary data.
  • Hash Joins: When joins cannot be localized to a shard, routers build hash tables in memory to match rows returned from different physical servers.
  • Sidecars: Dedicated processes alongside Postgres instances manage connection pools to overcome the memory constraints of Postgres's process-per-connection architecture.
  • Evaluation Engine: Routers perform heavy lifting for aggregations (like SUM/COUNT) that cannot be computed by individual shards in isolation.
Decoder
  • Sharding: A database partitioning technique that separates large data sets into smaller, faster, more easily managed pieces called shards.
  • Abstract Syntax Tree (AST): A tree representation of the abstract syntactic structure of source code, used here to parse SQL into a structure the router can manipulate.
  • gRPC: A high-performance, open-source universal RPC framework used here for communication between the router and database sidecars.
Original article

Full article content is not available for inline reading.

Read the original article →

Explore all 56 articles in today's digest

Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi