duckdb的物理计划的执行的架构设计很出色, 每个物理计划的算子可以多线程并行的处理.
处于核心地位的便是Pipeline和TaskSchedule, 可以将其理解为多线程模型中的生产者与消费者模式, 但是和物理计划执行组合起来, 就能体会到这样设计的简洁和优雅.
https://www.youtube.com/watch?v=MA0OsvYFGrc
https://dsdsd.da.cwi.nl/slides/dsdsd-duckdb-push-based-execution.pdf
[DuckDB] Push-Based Execution Model - 知乎
在DuckDB中,操作符(Operator)是用来执行实际的查询计划的组件。当一个查询被编译并生成一个查询计划时,该计划会被转换成一个由一系列操作符组成的有向无环图(DAG),每个操作符都表示一种特定的操作,例如扫描表、应用筛选条件、排序等