Skip to content

Integrate JCallGraphRecorder with JEventUnfolder #478

@nathanwbrei

Description

@nathanwbrei

JCallGraphRecorder doesn't appear to produce a call graph entry for data produced by an Unfolder.

This makes sense, because the unfolder doesn't have a "caller" at the time Unfold() gets called; it is another Eulerian component just like JEventSource and JEventProcessor. A good solution would handle Eulerian components more generally.

The call graph recording machinery predates the big JFactory/JMultifactory/JOmniFactory refactor, and is probably making assumptions (about JFactories producing exactly one databundle) which no longer apply. So now is a good time to revisit this.

An ambitious solution would recognize that there are separate, unrelated mechanisms for timing JComponents vs JArrows, and both pieces of information are necessary to understand what is going on in a nontrivial topology. Even if the mechanisms don't get unified, the output definitely should. We may want the component-level JCallGraphRecorder to check which arrow is running, rather than making an assumption, because if the wrong arrow somehow ended up calling a factory, it could have significant performance implications.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions