Describe the enhancement requested
We've slowly been migrating to a model where all work done by the exec plan happens via the scheduler. We are at a point now where it is mostly true that "a plan is done when all of its tasks are done". We can get rid of ExecNode::finished() which has led to a few deadlocks in the exec plan because nodes would fail to mark this future finished in an error case. Any work that is not being tracked by scheduler tasks (e.g. some stuff in the source node and asof join node) should be handled by an "external task".
Component(s)
C++
Describe the enhancement requested
We've slowly been migrating to a model where all work done by the exec plan happens via the scheduler. We are at a point now where it is mostly true that "a plan is done when all of its tasks are done". We can get rid of
ExecNode::finished()which has led to a few deadlocks in the exec plan because nodes would fail to mark this future finished in an error case. Any work that is not being tracked by scheduler tasks (e.g. some stuff in the source node and asof join node) should be handled by an "external task".Component(s)
C++