Skip to content

[C++] Simplify tracing in exec plan #33737

@westonpace

Description

@westonpace

Describe the enhancement requested

The old tracing model starts a span when a node starts and ends the span when the node marks itself finished. Some nodes start an additional InputReceived span with the above mentioned span as parent. This makes it rather difficult to tell where time is actually being spent because large blocks of the span represent idle time. It does not accurately reflect time spent.

I've would like to change the model to use async scheduler tasks as spans. In practice, this would mean that there is now a span per fragment. It may have child spans for each of the nodes that runs on the fragment (simple nodes may just mark their execution as an event). This also will allow us to get rid of the ExecNode::finsihed_ future as they are no longer really necessary (they can show up as "waiting for finish" spans that don't really provide any useful information).

Component(s)

C++

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions