﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<!-- Yandex.Metrika counter -->
    <script type="text/javascript" >
      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
    
      ym(72949126, "init", {
           clickmap:true,
           trackLinks:true,
           accurateTrackBounce:true,
           webvisor:true
      });
    </script>
    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
    <!-- /Yandex.Metrika counter -->
<script type='text/javascript'>
    window.__lo_site_id = 284467;
    
      (function() {
        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
        })();
      </script>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/dotnetdoc/api/Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html" />
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class DataStreamerClientOptions
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class DataStreamerClientOptions
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.24.0.0">
    
    <link rel="shortcut icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
    
      gtag('config', 'UA-61232409-1');
    </script></head>
  <body data-spy="scroll" data-target="#affix">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions">
  
  
  <h1 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions" class="text-break">Class DataStreamerClientOptions
  </h1>
  <div class="markdown level0 summary"><p>Thin client data streamer options.
<p>
To set a receiver, use generic class <a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions-2.html">DataStreamerClientOptions&lt;TK, TV&gt;</a>.
<p>
See also <a class="xref" href="Apache.Ignite.Core.Client.Datastream.IDataStreamerClient-2.html">IDataStreamerClient&lt;TK, TV&gt;</a>, <a class="xref" href="Apache.Ignite.Core.Client.IIgniteClient.html#Apache_Ignite_Core_Client_IIgniteClient_GetDataStreamer__2_System_String_">GetDataStreamer&lt;TK, TV&gt;(String)</a>.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">DataStreamerClientOptions</span></div>
      <div class="level2"><a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions-2.html">DataStreamerClientOptions</a>&lt;TK, TV&gt;</div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Client.Datastream.html">Apache.Ignite.Core.Client.Datastream</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class DataStreamerClientOptions</code></pre>
  </div>
  <h3 id="constructors">Constructors
  </h3>
  <a id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions__ctor_" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.#ctor*"></a>
  <h4 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions__ctor" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.#ctor">DataStreamerClientOptions()</h4>
  <div class="markdown level1 summary"><p>Initializes a new instance of <a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html">DataStreamerClientOptions</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public DataStreamerClientOptions()</code></pre>
  </div>
  <a id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions__ctor_" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.#ctor*"></a>
  <h4 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions__ctor_Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.#ctor(Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions)">DataStreamerClientOptions(DataStreamerClientOptions)</h4>
  <div class="markdown level1 summary"><p>Initializes a new instance of <a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html">DataStreamerClientOptions</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public DataStreamerClientOptions(DataStreamerClientOptions options)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html">DataStreamerClientOptions</a></td>
        <td><span class="parametername">options</span></td>
        <td><p>Options to copy from.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="fields">Fields
  </h3>
  <h4 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_DefaultPerNodeBufferSize" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.DefaultPerNodeBufferSize">DefaultPerNodeBufferSize</h4>
  <div class="markdown level1 summary"><p>The default client-side per-node buffer size (cache entries count),
see <a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html#Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_PerNodeBufferSize">PerNodeBufferSize</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public const int DefaultPerNodeBufferSize = 512</code></pre>
  </div>
  <h5 class="fieldValue">Field Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h4 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_DefaultPerNodeParallelOperations" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.DefaultPerNodeParallelOperations">DefaultPerNodeParallelOperations</h4>
  <div class="markdown level1 summary"><p>The default limit for parallel operations per server node connection,
see <a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html#Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_PerNodeParallelOperations">PerNodeParallelOperations</a>.
<p>
Calculated as <span class="xref">System.Environment.ProcessorCount</span> times 4.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static readonly int DefaultPerNodeParallelOperations</code></pre>
  </div>
  <h5 class="fieldValue">Field Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_AllowOverwrite_" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.AllowOverwrite*"></a>
  <h4 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_AllowOverwrite" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.AllowOverwrite">AllowOverwrite</h4>
  <div class="markdown level1 summary"><p>Gets or sets a value indicating whether existing values can be overwritten by the data streamer.
Performance is better when this flag is false.
<p>
NOTE: When false, cache updates won&apos;t be propagated to cache store
(even if <a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html#Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_SkipStore">SkipStore</a> is false).
<p>
Default is <code>false</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public bool AllowOverwrite { get; set; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_AutoFlushInterval_" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.AutoFlushInterval*"></a>
  <h4 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_AutoFlushInterval" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.AutoFlushInterval">AutoFlushInterval</h4>
  <div class="markdown level1 summary"><p>Gets or sets the automatic flush interval. Data streamer buffers the data for performance reasons.
The buffer is flushed in the following cases:
<ul>
<li>Buffer is full.</li>
<li><a class="xref" href="Apache.Ignite.Core.Client.Datastream.IDataStreamerClient-2.html#Apache_Ignite_Core_Client_Datastream_IDataStreamerClient_2_Flush">Flush()</a> is called.</li>
<li>Periodically when <a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html#Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_AutoFlushInterval">AutoFlushInterval</a> is set.</li>
</ul>
<p>
When set to <span class="xref">System.TimeSpan.Zero</span>, automatic flush is disabled.
<p>
Default is <span class="xref">System.TimeSpan.Zero</span> (disabled).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public TimeSpan AutoFlushInterval { get; set; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.TimeSpan</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_PerNodeBufferSize_" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.PerNodeBufferSize*"></a>
  <h4 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_PerNodeBufferSize" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.PerNodeBufferSize">PerNodeBufferSize</h4>
  <div class="markdown level1 summary"><p>Gets or sets the size (entry count) of per node buffer.
<p>
Default is <a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html#Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_DefaultPerNodeBufferSize">DefaultPerNodeBufferSize</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public int PerNodeBufferSize { get; set; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_PerNodeParallelOperations_" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.PerNodeParallelOperations*"></a>
  <h4 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_PerNodeParallelOperations" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.PerNodeParallelOperations">PerNodeParallelOperations</h4>
  <div class="markdown level1 summary"><p>Gets or sets the limit for parallel operations per server node.
<p>
Default is <a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html#Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_DefaultPerNodeParallelOperations">DefaultPerNodeParallelOperations</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public int PerNodeParallelOperations { get; set; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_ReceiverKeepBinary_" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.ReceiverKeepBinary*"></a>
  <h4 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_ReceiverKeepBinary" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.ReceiverKeepBinary">ReceiverKeepBinary</h4>
  <div class="markdown level1 summary"><p>Gets or sets a value indicating whether <a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions-2.html#Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_2_Receiver">Receiver</a>
should operate in binary mode.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public bool ReceiverKeepBinary { get; set; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_SkipStore_" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.SkipStore*"></a>
  <h4 id="Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_SkipStore" data-uid="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.SkipStore">SkipStore</h4>
  <div class="markdown level1 summary"><p>Gets or sets a flag indicating that write-through behavior should be disabled for data loading.
<p>
<a class="xref" href="Apache.Ignite.Core.Client.Datastream.DataStreamerClientOptions.html#Apache_Ignite_Core_Client_Datastream_DataStreamerClientOptions_AllowOverwrite">AllowOverwrite</a> must be true for write-through to work.
<p>
Default is <code>false</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public bool SkipStore { get; set; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            © 2015 - 2019 The Apache Software Foundation
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
