Why is Union All transformation in SSIS a partially/semi blocking transformation?
By : pdxjohnny
Date : March 29 2020, 07:55 AM
To fix this issue The SSIS Buffer is what the tool uses to move rows through transformations. A synchronous transformation operates on one buffer, passing it along as it completes it's work so that the next transformation can immediately pick up on its task. When they're operating on the buffer synchronously, the downstream transformations can read the buffer's rows as it is passed from upstream transformations. A buffer is a single object - you can't pass along 3 buffers to downstream transforms as a "single" buffer. When you reach a UNION ALL transformation, each pipeline above it has its own buffer, so SSIS needs to move the rows from each of those buffers into one new buffer for the downstream synchronous transformations. This copy operation is "asynchronous", since the buffer must be created and the data copied into it from the source buffers, and the downstream transforms must wait for the new buffer. How this copy is done doesn't seem to be documented, but I would expect it's probably just moving the pointers to the rows in each buffer into a array or linked list in the new buffer.
Verification of transformation matrix usage in vertex shader. Correctness or normals transformation