Volcano - An Extensible and Parallel Query Evaluation System @ 1994

文章时间有点长了,可能在那个年代大家都不知道怎么做一个可扩展的并行查询系统,都处于摸索阶段。可能大家都各自实现了自己的并行查询系统,但是缺点就是自立门户,许多问题也没有完全搞清楚,很难形成合力或者是共识。这篇文章告诉大家,只要加上一个exchange operator就可以很容易地解决并行问题,然后这些operator接口也可以规范起来(iterator, open/next/close). 有了清晰的抽象才能有良好的实现。

除了exchange operator之外,这篇文章还引入了一个叫做choose-plan operator,可以动态地进行执行计划选择。但是好像现在这种做法也比较少了,都是在外层根据逻辑计划生成物理计划,动态的有动态的优势,但是似乎会让问题更加复杂。

exchange operator可以实现水平和垂直两个维度的上的并行: