Skip to content

Commit

Permalink
DOC-2542: Include information on using Pooled MuxIO Connections (#2794)
Browse files Browse the repository at this point in the history
* DOC-2542: Include information on using Pooled MuxIO Connections

* typo fix
  • Loading branch information
jeffrymorris authored and RichardSmedley committed Aug 8, 2018
1 parent a9aa76f commit d6320ff
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions content/sdk/dotnet/client-settings.dita
Original file line number Diff line number Diff line change
Expand Up @@ -594,19 +594,29 @@ var bucket = cluster.OpenBucket("travel-sample");</codeblock></p>
configure the IOService either through the configuration file (app.config, web.config or
json settings file) or programmatically using the SDK's ClientConfiguration when
initializing the Cluster.</p>
<p><b>Multiplexing IO Service</b></p>
<p><b>Shared-Pooled IO Service w/MUX</b></p>
<p>As of v2.5.0, the client uses a Shared-Pooled IO Service for K/V along with Multiplexing
(MUX) by default. A shared pool allows multiple threads to use a connection at the same time
and each thread is assigned a connection from the pool in a round-robin fashion. This gives
the best performance and the benefits of both Multiplexing IO Service and Pooled IO Service.
This is the reccomended configuration and is the default from v2.5.0 on - there is no need
for additional configuration to use it.</p>
<p><b>Multiplexing IO Service (Obsolete)</b></p>
<p>Multiplexing is when a single TCP connection is used by multiple threads to send and
receive requests simultaneously. The benefit's are improved throughput with less strain on
the OS resources and importantly, a reduction on the number of TCP connections between the
client and the server. The Multiplexing IO Service is the default IO Service if no custom
configuration is provided.</p>
<p><b>Pooled IO Service</b></p>
<p><b>Pooled IO Service (SSL only)</b></p>
<p>Pooled is when the SDK maintains a pool of TCP sockets and each thread uses a single socket
at one time for Memcached K/V operations (Get, Insert, Remove, etc.). The connection pool
limit is capped by the MinSize and MaxSize configuration settings; if MaxSize has been
reached, the SDK would wait for a connection to become available or it would return an
OperationTimeout response.</p>
<p><b>Configuring the IO Service</b></p>
<p><b>Configuring the IO Service</b><note>The default IO Service as of v2.6.0 is Shared-Pooled
IO Service w/MUX and is the reccomended IO Service to use for non-SSL/TLS. We do not
recommend using any of the other IO services or changing the default settings for IO
Services as described below.</note></p>
<p>To configure the IO Service in your configuration file you would set the connectionPool
element and ioService elements. An example of setting the configuration file to use
PooledIOService would look like
Expand Down Expand Up @@ -655,6 +665,10 @@ ClusterHelper.Initialize(config);</codeblock></p>
<li>WaitTimeout</li>
</ul></li>
<li>MUX has no effect on Views, N1QL or Full Text Search queries</li>
<li>Shared-Pooled IO Service w/MUX currently ignores the MinSize and creates the MaxSize of
connections configured. This is a known issue/limitation and can be tracked by the
following Jira ticket: <xref href="https://issues.couchbase.com/browse/NCBC-1534"
format="html" scope="external"/></li>
</ul>
</section>
</body>
Expand Down

0 comments on commit d6320ff

Please sign in to comment.