You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
While we added the ability to use multiple segments in SRF, there is currently no way to use this from the Morpheus API. This feature will add the ability to add segment breaks between stages in the LinearPipeline API to be ready for larger, multi-segment changes coming in the future.
Describe the solution you'd like
Until issue #229 is implemented, and SRF correctly handles multi input/output nodes, we should only focus on updating the LinearPipeline class. With LinearPipeline adding segments is relatively simple and will only require a single method, add_segment_break() and an additional map that tracks which stages belong to which segment. The pipeline construction for LinearPipeline will work as follows:
Create a default "segment" that all stages will go into by default
2. This is not a full segment since they cant be created until build() is called. Just track which segment stages belong in.
When add_stage is called, that stage is added to the current active segment
4. The current active segment is just a key in an ordered dictionary
When add_segment_break() is called, a new key in the segment dictionary is created
6. All new calls to add_stage will put these stages into the new key
Finally, when build() is called in the pipeline, we will iterate over all segment keys in the ordered dict. For each key:
8. Create a new segment
9. If its not the first segment, add a port for the incoming data
10. Add all stages for this segment
11. If its not the last segment, add a port for the outgoing data
Describe alternatives you've considered
Other alternatives would require issue #229 to be completed and features from SRF 22.11.
Additional context
Add any other context, code examples, or references to existing implementations about the feature request here.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
While we added the ability to use multiple segments in SRF, there is currently no way to use this from the Morpheus API. This feature will add the ability to add segment breaks between stages in the
LinearPipeline
API to be ready for larger, multi-segment changes coming in the future.Describe the solution you'd like
Until issue #229 is implemented, and SRF correctly handles multi input/output nodes, we should only focus on updating the
LinearPipeline
class. WithLinearPipeline
adding segments is relatively simple and will only require a single method,add_segment_break()
and an additional map that tracks which stages belong to which segment. The pipeline construction forLinearPipeline
will work as follows:2. This is not a full segment since they cant be created until
build()
is called. Just track which segment stages belong in.add_stage
is called, that stage is added to the current active segment4. The current active segment is just a key in an ordered dictionary
add_segment_break()
is called, a new key in the segment dictionary is created6. All new calls to
add_stage
will put these stages into the new keybuild()
is called in the pipeline, we will iterate over all segment keys in the ordered dict. For each key:8. Create a new segment
9. If its not the first segment, add a port for the incoming data
10. Add all stages for this segment
11. If its not the last segment, add a port for the outgoing data
Describe alternatives you've considered
Other alternatives would require issue #229 to be completed and features from SRF 22.11.
Additional context
Add any other context, code examples, or references to existing implementations about the feature request here.
The text was updated successfully, but these errors were encountered: