Hacking Postgres Executor For Performance
Presented by:
Amit Langote
I am a major contributor to Postgres and a committer on the project. I have worked on features such as table partitioning, improving its performance and scalability over the years. As part of the Azure Data Postgres contributors team at Microsoft, I work with the open source community to add features, enhance performance of the community release of Postgres.
No video of the event yet, sorry!
PostgreSQL’s executor currently relies on the Volcano (iterator-based) execution model, processing one tuple at a time in a pull-based approach. While this design offers flexibility and ease of integration, it can introduce significant overhead for large-scale analytical queries, where the cost of per-tuple function calls becomes a bottleneck. Other execution models, such as vectorized execution, process data in batches to reduce overhead, and push-based flows offer further improvements by pushing data through operators more efficiently.
In this talk, we’ll explore practical ways to optimize PostgreSQL's executor while working within its existing model. By applying techniques such as reducing function call overhead and introducing batching, we can significantly improve performance for analytics workloads. I'll be sharing some patches and already committed improvements that demonstrate these optimizations in action. Additionally, we’ll discuss future directions, including the potential for PostgreSQL to adopt a push-based execution flow, paving the way for even greater performance gains.
- Date:
- Duration:
- 45 min
- Room:
- Conference:
- PGConf India, 2025
- Language:
- Track:
- Database Engine Developers
- Difficulty:
- Medium