Search Results for

    Show / Hide Table of Contents

    Enum PortBufferingMode

    The row buffering strategy an input port uses, i.e. whether the input port only buffers a smaller amount of rows to minimize the time the worker is stalled for input, or allows full buffering of as much as all rows. The latter is most commonly used by input ports on workers that could otherwise dead-lock (typically having multiple inter-dependent inputs, e.g. a worker like MergeSortedTransform<TInputOutput>).

    Note that error output ports will always have Full buffering, since this simplifies outputting error rows. To avoid running out of memory in cases where a very large number of error rows might be produced, limit the number of allowed error rows (which is also the default) using MaxRowsSent and/or MaxRowsBeforeError.

    Namespace: actionETL
    Assembly: actionETL.dll
    Syntax
    public enum PortBufferingMode

    Fields

    Name Description
    Default

    The actual mode is picked when the worker starts - this is the default. The selected mode depends on the number of inputs the worker has, and whether the upstream port is an error output port or not, see Limited and Full.

    Full

    The input port potentially buffers many or even all upstream rows, if the input port is reading rows slowly or initially not at all. This is the default mode for multi input workers, as well as for input ports where the upstream port is an error output port. Full buffering can consume a large amount of memory, and should only be used on ports that actually need it. Used by e.g. MergeSortedTransform<TInputOutput> input ports.

    Note that:

    • Some workers, e.g. SortTransform<TInputOutput>, are fully blocking, but performs their buffering internally, and therefore uses the Limited mode
    • Some workers have multiple independent inputs, e.g. UnionAllTransform<TInputOutput>, and would also use Limited buffering
    • After a buffering mode of Full has been set, any further attempts to change it will be silently ignored

    Limited

    The input port buffers a smaller amount of rows (currently up to four times the BufferCapacity) to minimize the time the worker is stalled for input. This is the default mode for single input workers where the upstream port is not an error output port. Used by e.g. Input.

    See Also
    BufferingMode
    In This Article
    Back to top Copyright © 2021 Envobi Ltd