blob: e0261063dc483589cff99529dba0f05568a76aae [file]
---
redirect_to:
- https://docs.datastax.com/en/developer/nodejs-driver/latest/features/connection-pooling/
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="DataStax Nodejs Driver for Apache Cassandra">
<meta name="author" content="DataStax">
<title>DataStax Nodejs Driver - Connection pooling</title>
<link rel="icon" href="../../favicon.ico">
<link rel="apple-touch-icon" href="../../favicon.png">
<link href="../../css/style.css" rel="stylesheet">
<link href="../../css/pygments.css" rel="stylesheet">
<link href="../../css/hotkeys.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body ng-app="docs" data-spy="scroll" data-target="#table-of-contents" data-offset="69">
<header class="container-fluid navbar">
<div class="row">
<div class="col-sm-4">
<a class="navbar-brand" href="../../"><img alt="Brand" src="../../img/logo.png">DataStax Nodejs Driver</a>
</div>
<div class="col-md-4 col-md-offset-4">
<div class="row">
<div class="col-md-12">
<ul class="list-inline" role="nav">
<li><a href="https://academy.datastax.com/" class="navbar-link">DataStax Academy</a></li>
<li><a href="http://www.datastax.com/dev/blog" class="navbar-link">Tech Blog</a></li>
<li><a href="http://www.datastax.com/what-we-offer/products-services/support" class="navbar-link">Support</a></li>
</ul>
</div>
</div>
<div class="row">
<div class="col-md-8">
<form id="search" class="form-search dropdown visible-lg-block" ng-controller="search" ng-class="{open: hasResults}" role="search" ng-submit="submit()" data-spy="affix" data-offset-top="130">
<div class="form-group has-feedback">
<input type="search" class="form-control input-sm mousetrap" placeholder="Search..." ng-model="q" ng-change="search('v3.1')" ng-disabled="!searchReady" disabled data-hotkey="{down: moveDown, up: moveUp, esc: reset}" data-search>
</div>
<ul class="dropdown-menu search-results" role="menu">
<li ng-repeat="result in results" ng-class="{'bg-warning': $index == current}"><a ng-href="{{basePath}}{{result.path}}"><span ng-bind-html="summary(result)"></span></a></li>
</ul>
</form>
</div>
<div class="col-md-4">
<a href="http://www.datastax.com/download" class="btn btn-primary btn-sm">Download</a>
</div>
</div>
</div>
</div>
<div class="row crumbs-wrapper">
<div class="col-md-12">
<nav id="crumbs" data-spy="affix" data-offset-top="130">
<ol class="breadcrumb">
<li>
<div class="btn-group">
<button id="current-version" class="btn btn-default btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
v3.1
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="current-version">
<li class="disabled"><a href="./">v3.1</a></li>
<li><a href="../../v3.0/features/connection-pooling/">v3.0</a></li>
</ul>
</div>
</li>
<li><a href="../../">Home</a></li>
<li><a href="../">Features</a></li>
<li class="active">Connection pooling</li>
<li class="dropdown" id="table-of-contents">
<div class="btn-group">
<button id="current-section" type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
Jump to&#8230; <span class="caret"></span><span class="sr-only">Table of Contents</span>
</button>
<ul class="dropdown-menu nav nav-pills nav-stacked">
<li><a href="#connection-pooling">Page Top <span class="glyphicon glyphicon-chevron-up" aria-hidden="true"></span></a></li>
<li><a href="#default-pooling-configuration">Default pooling configuration
</a></li>
<li><a href="#setting-the-number-of-connections-per-host">Setting the number of connections per host
</a></li>
</ul>
</div>
</li>
</ol>
</nav>
</div>
</div>
</header>
<div class="container-fluid" id="content">
<div class="row">
<div class="col-md-3">
<div id="navigation" class="side-nav" role="tablist" aria-multiselectable="true">
<h3>Contents</h3>
<ul class="nav nav-pills nav-stacked">
<li class="active">
<a href="../">Features <small>page</small></a>
<ul class="nav nav-pills nav-stacked">
<li>
<a href="../address-resolution/">Address resolution <small>page</small></a>
</li>
<li>
<a href="../batch/">Batch statements <small>page</small></a>
</li>
<li>
<a href="../datatypes/">CQL data types to JavaScript types <small>page</small></a>
</li>
<li>
<a href="../metadata/">Cluster and schema metadata <small>page</small></a>
</li>
<li class="active">
<a href="./" class="current">Connection pooling <small>page</small></a>
</li>
<li>
<a href="../execution-profiles/">Execution Profiles (experimental) <small>page</small></a>
</li>
<li>
<a href="../paging/">Fetching large result sets <small>page</small></a>
</li>
<li>
<a href="../native-protocol/">Native protocol <small>page</small></a>
</li>
<li>
<a href="../parameterized-queries/">Parameterized queries <small>page</small></a>
</li>
<li>
<a href="../query-warnings/">Query warnings <small>page</small></a>
</li>
<li>
<a href="../tuning-policies/">Tuning policies <small>page</small></a>
</li>
<li>
<a href="../udfs/">User-defined functions and aggregates <small>page</small></a>
</li>
</ul>
</li>
<li>
<a href="../../faq/">Frequently Asked Questions <small>page</small></a>
</li>
<li>
<a href="../../getting-started/">Getting started <small>page</small></a>
</li>
<li>
<a href="../../coding-rules/">Three simple rules for coding with the driver <small>page</small></a>
</li>
</ul>
</div>
</div>
<div class="col-md-9 content">
<h1 id="connection-pooling" class="target">Connection pooling<a class="anchor" href="#connection-pooling" aria-hidden="true"><span class="glyphicon glyphicon-link"></span></a>
</h1>
<p>The driver maintains one or more connections opened to each Cassandra node selected by the load-balancing policy.
The amount of connections per host is defined in the pooling configuration.</p>
<h2 id="default-pooling-configuration" class="target">Default pooling configuration<a class="anchor" href="#default-pooling-configuration" aria-hidden="true"><span class="glyphicon glyphicon-link"></span></a>
</h2>
<p>The default number of connections per host depends on the version of the Cassandra cluster.</p>
<p>Cassandra versions 1.2 and 2.0 allow the clients to send up to <code>128</code> requests without waiting for a response per
connection. Higher versions of Cassandra ( that is 2.1 or greater) allow clients to send up to <code>32768</code> requests
without waiting for a response.</p>
<p>By default, the driver maintains two open connections to each host in the local datacenter and one to each host in a
remote datacenter for Cassandra 1.2 or 2.0 and one connection to each host (local or remote) for Cassandra 2.1 or
greater.</p>
<h2 id="setting-the-number-of-connections-per-host" class="target">Setting the number of connections per host<a class="anchor" href="#setting-the-number-of-connections-per-host" aria-hidden="true"><span class="glyphicon glyphicon-link"></span></a>
</h2>
<p>You can set the number of connections per host in the pooling configuration:</p>
<pre class="highlight"><code><span class="kr">const</span> <span class="nx">cassandra</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'cassandra-driver'</span><span class="p">);</span>
<span class="kr">const</span> <span class="nx">distance</span> <span class="o">=</span> <span class="nx">cassandra</span><span class="p">.</span><span class="nx">types</span><span class="p">.</span><span class="nx">distance</span><span class="p">;</span>
<span class="kr">const</span> <span class="nx">options</span> <span class="o">=</span> <span class="p">{</span>
<span class="na">contactPoints</span><span class="p">:</span> <span class="p">[</span><span class="s1">'1.2.3.4'</span><span class="p">],</span>
<span class="na">pooling</span><span class="p">:</span> <span class="p">{</span>
<span class="na">coreConnectionsPerHost</span><span class="p">:</span> <span class="p">{</span>
<span class="p">[</span><span class="nx">distance</span><span class="p">.</span><span class="nx">local</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span>
<span class="p">[</span><span class="nx">distance</span><span class="p">.</span><span class="nx">remote</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">};</span>
<span class="kr">const</span> <span class="nx">client</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Client</span><span class="p">(</span><span class="nx">options</span><span class="p">);</span>
</code></pre>
</div>
</div>
</div>
<footer class="container text-muted">
<ul class="list-inline">
<li>
<a href="https://github.com/datastax/nodejs-driver/">Code</a>
</li>
<li>·</li>
<li>
<a href="http://datastax.github.io/nodejs-driver/">Docs</a>
</li>
<li>·</li>
<li>
<a href="https://datastax-oss.atlassian.net/projects/NODEJS/issues">Issues</a>
</li>
<li>·</li>
<li>
<a href="https://groups.google.com/a/lists.datastax.com/forum/#!forum/nodejs-driver-user">Mailing List</a>
</li>
<li>·</li>
<li>
<a href="irc://irc.freenode.net/datastax-drivers">IRC Channel</a>
</li>
<li>·</li>
<li>
<a href="https://www.npmjs.org/package/cassandra-driver">Npm</a>
</li>
</ul>
</footer>
<script src="../../js/jquery.js"></script>
<script src="../../js/bootstrap.js"></script>
<script src="../../js/angular.js"></script>
<script src="../../js/mousetrap.js"></script>
<script src="../../js/hotkeys.js"></script>
<script src="../../js/ZeroClipboard.js"></script>
<script src="../../js/lunr.js"></script>
<script src="../../js/app.js"></script>
</body>
</html>