pub struct OutputBufferConfig {
pub enable_output_buffer: bool,
pub max_output_buffer_time_millis: usize,
pub max_output_buffer_size_records: usize,
}Fields§
§enable_output_buffer: boolEnable output buffering.
The output buffering mechanism allows decoupling the rate at which the pipeline pushes changes to the output transport from the rate of input changes.
By default, output updates produced by the pipeline are pushed directly to the output transport. Some destinations may prefer to receive updates in fewer bigger batches. For instance, when writing Parquet files, producing one bigger file every few minutes is usually better than creating small files every few milliseconds.
To achieve such input/output decoupling, users can enable output buffering by
setting the enable_output_buffer flag to true. When buffering is enabled, output
updates produced by the pipeline are consolidated in an internal buffer and are
pushed to the output transport when one of several conditions is satisfied:
- data has been accumulated in the buffer for more than
max_output_buffer_time_millismilliseconds. - buffer size exceeds
max_output_buffer_size_recordsrecords.
This flag is false by default.
max_output_buffer_time_millis: usizeMaximum time in milliseconds data is kept in the output buffer.
By default, data is kept in the buffer indefinitely until one of
the other output conditions is satisfied. When this option is
set the buffer will be flushed at most every
max_output_buffer_time_millis milliseconds.
NOTE: this configuration option requires the enable_output_buffer flag
to be set.
max_output_buffer_size_records: usizeMaximum number of updates to be kept in the output buffer.
This parameter bounds the maximal size of the buffer. Note that the size of the buffer is not always equal to the total number of updates output by the pipeline. Updates to the same record can overwrite or cancel previous updates.
By default, the buffer can grow indefinitely until one of the other output conditions is satisfied.
NOTE: this configuration option requires the enable_output_buffer flag
to be set.
Implementations§
Trait Implementations§
Source§impl Clone for OutputBufferConfig
impl Clone for OutputBufferConfig
Source§fn clone(&self) -> OutputBufferConfig
fn clone(&self) -> OutputBufferConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OutputBufferConfig
impl Debug for OutputBufferConfig
Source§impl Default for OutputBufferConfig
impl Default for OutputBufferConfig
Source§impl<'de> Deserialize<'de> for OutputBufferConfigwhere
OutputBufferConfig: Default,
impl<'de> Deserialize<'de> for OutputBufferConfigwhere
OutputBufferConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for OutputBufferConfig
impl PartialEq for OutputBufferConfig
Source§impl Serialize for OutputBufferConfig
impl Serialize for OutputBufferConfig
Source§impl<'__s> ToSchema<'__s> for OutputBufferConfig
impl<'__s> ToSchema<'__s> for OutputBufferConfig
impl Eq for OutputBufferConfig
impl StructuralPartialEq for OutputBufferConfig
Auto Trait Implementations§
impl Freeze for OutputBufferConfig
impl RefUnwindSafe for OutputBufferConfig
impl Send for OutputBufferConfig
impl Sync for OutputBufferConfig
impl Unpin for OutputBufferConfig
impl UnwindSafe for OutputBufferConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.