Project title: Implementing push-based query executor Project Description Currently, PostgreSQL uses traditional Volcano-style [1] query execution model. While it is a simple and flexible model, it behaves poorly on modern superscalar CPUs [2][3] due to lack of locality and frequent instruction mispredictions. It becomes a major issue for complex OLAP queries with CPU-heavy workloads. We propose to implement so-called push-based query executor model as described in [4][5], which improves code and data locality and cache usage itself; also push-based executor can serve as a platform for efficient JIT query compilation. See [6] for more details. Skills needed The ability to understand and modify PostgresSQL executor code; The ability to run careful in-memory benchmarks to demonstrate the result; The ability to profile Postgres in order to find slow code; Understanding modern processors features (pipelining, superscalar CPUs, branch prediction, etc) would be very helpful. Difficulty Level Moderate-level; however, microoptimizations might be hard. Probably it will also be hard to keep the whole architecture as clean as it is now. Expected Outcomes Patch with implemented push-based query executor; small patches, which will optimize the current query executor; benchmarks showing the performance of queries on plain Postgres and with this patch applied. References [1]  Graefe G.. Volcano — an extensible and parallel query evaluation system. IEEE Trans. Knowl. Data Eng.,6(1): 120–135, 1994. [2] MonetDB/X100: Hyper-Pipelining Query Execution http://cidrdb.org/cidr2005/papers/P19.pdf [3] Vectorization vs. Compilation in Query Execution, https://pdfs.semanticscholar.org/dcee/b1e11d3b078b0157325872a581b51402ff66.pdf [4] Efficiently Compiling Efficient Query Plans for Modern Hardware, http://www.vldb.org/pvldb/vol4/p539-neumann.pdf [5] Compiling Database Queries into Machine Code, http://sites.computer.org/debull/A14mar/p3.pdf [6] [message link, not the whole thread] https://www.postgresql.org/message-id/flat/CAJEAwVFnYMenEe2A9srVuNVemAoW%2BtT_uEs%3D2p427KfsegsJPw%40mail.gmail.com#CAJEAwVFnYMenEe2A9srVuNVemAoW+tT_uEs=2p427KfsegsJPw@mail.gmail.com