05-16-2017 09:42 AM
Understand the proper use case for disabling reuse in a pipeExec snap within an ultra pipeline.
Context:
Questions:
05-16-2017 10:03 AM
If the child pipeline is reusable, yes, turning it off would slow things down since a new pipeline execution would need to be created for every input document of the PipeExec. If it’s not reusable, then you don’t have much choice.
The child is reusable if it contains ultra-compatible snaps.
Pool size is orthogonal to reuse. The pool size determines the maximum number of instances that can be run in parallel. If the child pipeline cannot be run in parallel, then you would need to set it to one. If multiple child pipelines can be run in parallel, then you can increase the pool size.
When reuse is enabled and the pool size is more than one, then child executions will be spun up as-needed to satisfy the incoming documents. For example, if you set the pool size to 10, but documents are slow in coming in and there is never more than one flowing through the ultra, only one child execution will be started. When the document load does increase and the child is busy, more children will be started until the pool size is reached. When choosing the child execution to pass an incoming document, PipeExec will try to choose the least-loaded one. If the document rate drops after the pool size has been reached, PipeExec may close out unused child executions after some time to reduce the number of executions.
When reuse is disabled and the pool size is more than one, then a child execution will be started for every document, but the number of child executions running at any given time will be limited to the pool size.