heterodb/pg-strom

XpuPreAgg + CpuFallback

Closed this issue · 2 comments

#697 の残存課題。
shared buffer上に残っているブロックに対してはDPUへのPushDownは行わない(これは正当)だが、
GpuPreAggのCPU-Fallbackを行えないので、エラーを返すしかなくなる。

途中まで処理が進んで、部分的に kds_final を汚染した状態のGpuPreAggに対してCPU-Fallbackを実装する
方法はあり得るか?

CPU Fallbackが発生した時に、Suspendを発生させて、CPU Fallbackな時点のタプルとdepthを記録しておけば、GpuPreAggの途中でもFallbackする事ができる。
加えて、GpuPreAggではなくGpuAggにできるかも。(#745関連課題)

7709fd304f28e4e2bd715491c862351c79f9a21e で実装。

CPU Fallbackがtuple単位になったことで、kds_finalへの書込みとCPU-Fallback行の扱いに整合性を取れるようになった。