FANIN stage v1.0 |
Pipelines v1.9 |
Purpose, Operands, Streams used, Usage notes, Examples, See also |
Syntax |
>>__FANIN__ ________________ __ _____ _________________________________________________><
| <____________ | |_ALL_|
|___streamnum__|_| |_*___|
Purpose |
Use the FANIN stage to combine multiple input streams into a single output stream. FANIN reads records from all specified input streams and copies the records from each input stream to its primary output stream.
FANIN, without operands, copies all of the records from its primary input stream to its primary output stream, then all of the records from its secondary input stream to its primary output stream, and so on, until all of its input streams have been processed. Operands can be specified with FANIN to indicate which input streams are read and the order in which they are read.
Operands |
Streams used |
The following streams are used by the FANIN
stage:
Stream
|
Action |
|
|
Primary input
stream |
FANIN, without operands, reads all records
from all of its connected input streams starting with the primary input
stream and continuing with the rest of the streams in order of increasing
stream number. If a streamnum or
multiple streamnum operands are
specified, FANIN reads the records from only those input streams, in the
order that they are specified. If the ALL or * operand is specified,
FANIN reads input records from all connected input streams. FANIN reads all the
records from one stream before it begins reading records from the next
stream. |
Primary output
stream |
FANIN copies its input records to its
primary output stream in the same order it reads its input records. |
Usage notes |
1) |
FANIN
does not delay the records. |
2) |
If
the FANIN stage discovers that its primary output stream is not connected,
the FANIN stage ends. |
3) |
FANIN can cause a
set of pipelines to stall if: Two or more input
streams originate in the same device driver or stream n does not reach the end-of-file because a previous stage is
trying to write to stream n+1. The
following diagram shows how a BUFFER
stage can prevent a pipeline that uses a FANIN stage from stalling. Stream
numbers are shown to identify the streams used. |
4) |
You can also use
the FANINANY
stage to prevent a stall. |
5) |
You do not have to specify all connected input
streams with FANIN. For example, if streams 0, 1, 2, 3 and 4 are connected,
you can specify only streams 0, 4 and 2 as in the following FANIN stage: ... | f: fanin 0 4
2 | ... FANIN does not read any records from
streams 1 and 3. However, if you specify the ALL or * operand: ... | f: fanin 0 4
2 all | ... all the streams
will be read, in the order: 0, 4, 2, 1, 3. |
6) |
FANIN verifies
that its primary output stream is the only connected output stream and then
begins execution. |
Examples |
See also |
Reference the following links for additional information:
BUFFER, ELASTIC, FANINANY, FANOUT
|