<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 22:05:33 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[CXX-2318] Provide options to limit number of mongos servers used in connecting to sharded clusters</title>
                <link>https://jira.mongodb.org/browse/CXX-2318</link>
                <project id="11980" key="CXX">C++ Driver</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #c2d2c2;border-color: #cccccc;border-style: dashed;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelHeader&quot; style=&quot;border-bottom-width: 1px;border-bottom-style: dashed;border-bottom-color: #cccccc;background-color: #239eb0;&quot;&gt;&lt;b&gt;Epic Summary&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #c2d2c2;&quot;&gt;
&lt;h3&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Supply a mechanism to limit the number of &lt;tt&gt;mongos&lt;/tt&gt; servers&#160;used in connecting&#160;to sharded clusters.&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;Motivation&quot;&gt;&lt;/a&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt; Connections using cluster SRV records having many &lt;tt&gt;mongos&lt;/tt&gt; addresses can result in very large numbers of connections to &lt;tt&gt;mongos&lt;/tt&gt; servers. This can lead to a variety of severe performance issues resulting from rapid buildup of connections, both to &lt;tt&gt;mongos&lt;/tt&gt; servers, as well as from &lt;tt&gt;mongos&lt;/tt&gt; servers to shard &lt;tt&gt;mongod&lt;/tt&gt;&#160;servers.  Limiting the &lt;tt&gt;mongos&lt;/tt&gt; servers used in connecting to clusters has been found to help in reducing&#160; high connection counts and associated negative performance impacts.&#160;&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Whoistheaffectedenduser%3F&quot;&gt;&lt;/a&gt;Who is the affected end user?&lt;/h4&gt;
&lt;p&gt;Customers on Atlas using sharded clusters. Per each cluster, Atlas creates 3 mongos. For example, a 25 shard cluster will have 75 mongos instances. Since we default to using an SRV connection string, the MongoDB drivers will effectively have to manage connections to all 75 &lt;tt&gt;mongos&lt;/tt&gt; instances. In one customer&apos;s case, with a large number of application servers, this results in between 10,000 and 13,000 connections to each mongos. &lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Howdoesthisaffecttheenduser%3F&quot;&gt;&lt;/a&gt;How does this affect the end user?&lt;/h4&gt;
&lt;p&gt;A large number of connections to each mongos leads to excessive memory usage by each mongos and on application servers. &lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Isthisissueurgent%3F&quot;&gt;&lt;/a&gt;Is this issue urgent?&lt;/h4&gt;
&lt;p&gt;No, customer has PS designing a workaround&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Isthisticketonlyfortests%3F&quot;&gt;&lt;/a&gt;Is this ticket only for tests?&lt;/h4&gt;
&lt;p&gt;No&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Isthisticketrequiredbyadownstreamteam%3F&quot;&gt;&lt;/a&gt;Is this ticket required by a downstream team?&lt;/h4&gt;
&lt;p&gt;No&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;CastofCharacters&quot;&gt;&lt;/a&gt;Cast of Characters&lt;/h4&gt;
&lt;p&gt;Engineering Lead: &lt;br/&gt;
 Document Author:&lt;br/&gt;
 POCers:&lt;br/&gt;
 Product Owner: Rachelle Palmer&lt;br/&gt;
 Program Manager:&lt;br/&gt;
 Stakeholders:&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
</description>
                <environment></environment>
        <key id="1827516">CXX-2318</key>
            <summary>Provide options to limit number of mongos servers used in connecting to sharded clusters</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="kyle.kloberdanz@mongodb.com">Kyle Kloberdanz</assignee>
                                    <reporter username="backlog-server-pm">Backlog - Core Eng Program Management Team</reporter>
                        <labels>
                            <label>size-xsmall</label>
                    </labels>
                <created>Wed, 21 Jul 2021 17:50:00 +0000</created>
                <updated>Wed, 21 Jun 2023 13:50:35 +0000</updated>
                            <resolved>Wed, 22 Feb 2023 15:50:19 +0000</resolved>
                                                    <fixVersion>3.8.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="5218168" author="xgen-internal-githook" created="Tue, 21 Feb 2023 20:07:01 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kyle Kloberdanz&apos;, &apos;email&apos;: &apos;kyle.kloberdanz@mongodb.com&apos;, &apos;username&apos;: &apos;kkloberdanz&apos;}
&lt;p&gt;Message: Options to limit number of mongos servers used (#926)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/CXX-2318&quot; title=&quot;Provide options to limit number of mongos servers used in connecting to sharded clusters&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CXX-2318&quot;&gt;&lt;del&gt;CXX-2318&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Provide options to limit number of mongos servers used in connecting to sharded clusters.&lt;/p&gt;

&lt;p&gt;Introduces an srvMaxHosts MongoClient option, which is used to limit the number of seeds derived from SRV records (and only supported with the mongodb+srv:// scheme). Also limits the number of mongos seeds that may be picked up during SRV polling.&lt;/p&gt;

&lt;p&gt;Introduces the following test changes:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;New spec tests for Initial DNS Seedlist Discovery and URI options specs.&lt;/li&gt;
	&lt;li&gt;New numSeeds and numHosts fields to the Initial DNS Seedlist Discovery spec test format.&lt;/li&gt;
	&lt;li&gt;New SRV Polling prose tests&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Drivers should sync with &lt;span class=&quot;error&quot;&gt;&amp;#91;mongodb/specifications@b508f6d&amp;#93;&lt;/span&gt;(&lt;a href=&quot;https://github.com/mongodb/specifications/commit/b508f6d2a1819882d40c4e7e73b95fc8ae3bdfe5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/commit/b508f6d2a1819882d40c4e7e73b95fc8ae3bdfe5&lt;/a&gt;).&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-cxx-driver/commit/e6a7098694a2785bc258c8c959a0ba2e4b36b7c6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-cxx-driver/commit/e6a7098694a2785bc258c8c959a0ba2e4b36b7c6&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                                                <inwardlinks description="split from">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_21553" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Quarter</customfieldname>
                        <customfieldvalues>
                                        <label>FY23Q4</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr6ic6:c</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_21457" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Upstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;DRIVERS-1519:&lt;br/&gt;
Introduces an &lt;tt&gt;srvMaxHosts&lt;/tt&gt; MongoClient option, which is used to limit the number of seeds derived from SRV records (and only supported with the &lt;tt&gt;mongodb+srv://&lt;/tt&gt; scheme). Also limits the number of mongos seeds that may be picked up during SRV polling.&lt;/p&gt;

&lt;p&gt;Introduces the following test chnages:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;New spec tests for Initial DNS Seedlist Discovery and URI options specs.&lt;/li&gt;
	&lt;li&gt;New &lt;tt&gt;numSeeds&lt;/tt&gt; and &lt;tt&gt;numHosts&lt;/tt&gt; fields to the Initial DNS Seedlist Discovery spec test format.&lt;/li&gt;
	&lt;li&gt;New SRV Polling prose tests&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Drivers should sync with &lt;a href=&quot;https://github.com/mongodb/specifications/commit/b508f6d2a1819882d40c4e7e73b95fc8ae3bdfe5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;mongodb/specifications@b508f6d&lt;/a&gt;. If possible, drivers may consider implementing &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-1959&quot; title=&quot;Do not expect both valid:false and warning:true in SRV option URI spec tests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-1959&quot;&gt;DRIVERS-1959&lt;/a&gt; alongside this ticket and sync to &lt;a href=&quot;https://github.com/mongodb/specifications/commit/84bdb3f59892944efff7ad2b13d6fb1278dd81ba&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;mongodb/specifications@84bdb3f&lt;/a&gt;, which fixes an issue with the original URI options tests for DRIVERS-1519.&lt;/p&gt;</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>