<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:19:55 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>[CDRIVER-4097] Provide options to limit number of mongos servers used in connecting to sharded clusters</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-4097</link>
                <project id="10030" key="CDRIVER">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="1827515">CDRIVER-4097</key>
            <summary>Provide options to limit number of mongos servers used in connecting to sharded clusters</summary>
                <type id="14901" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14700&amp;avatarType=issuetype">Spec Change</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="13201">Fixed</resolution>
                                        <assignee username="ezra.chung@mongodb.com">Ezra Chung</assignee>
                                    <reporter username="backlog-server-pm">Backlog - Core Eng Program Management Team</reporter>
                        <labels>
                            <label>size-small</label>
                    </labels>
                <created>Wed, 21 Jul 2021 17:49:56 +0000</created>
                <updated>Sat, 28 Oct 2023 11:28:22 +0000</updated>
                            <resolved>Tue, 30 Nov 2021 19:57:13 +0000</resolved>
                                                    <fixVersion>1.21.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="4222105" author="xgen-internal-githook" created="Tue, 30 Nov 2021 19:56:23 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Ezra Chung&apos;, &apos;email&apos;: &apos;88335979+eramongodb@users.noreply.github.com&apos;, &apos;username&apos;: &apos;eramongodb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4097&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;CDRIVER-4097&quot;&gt;&lt;del&gt;CDRIVER-4097&lt;/del&gt;&lt;/a&gt; Implement srvMaxHosts for initial DNS seedlist and SRV polling (#898)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Permit zero hosts when validating SRV loadBalanced URI before DNS query&lt;/li&gt;
	&lt;li&gt;Add URI parsing support for srvMaxHosts&lt;/li&gt;
	&lt;li&gt;Add documentation of MONGOC_URI_SRVMAXHOSTS to mongoc_uri_t.rst&lt;/li&gt;
	&lt;li&gt;Add URI Options spec tests for srvMaxHosts&lt;/li&gt;
	&lt;li&gt;Add const qualifier to _mongoc_host_list_length() parameters&lt;/li&gt;
	&lt;li&gt;Add bounded uniform distributed random integer generators&lt;/li&gt;
	&lt;li&gt;Fix infinite loop in dump_hosts()&lt;/li&gt;
	&lt;li&gt;Add support for limiting initial DNS seedlist per srvMaxHosts&lt;/li&gt;
	&lt;li&gt;Add srvMaxHosts spec tests for Initial DNS Seedlist Discovery&lt;/li&gt;
	&lt;li&gt;Add support for limiting SRV record polling hosts per srvMaxHosts&lt;/li&gt;
	&lt;li&gt;Add prose tests for SRV Polling&lt;/li&gt;
	&lt;li&gt;Refactor SRV Polling prose tests to handle single vs. pooled cases&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/d67527c6b733e11e88e69240c57cc39471942054&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/d67527c6b733e11e88e69240c57cc39471942054&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1827525">PHPC-1908</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                                                <inwardlinks description="split from">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1926929">CDRIVER-4230</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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>FY22Q3</label>
            <label>FY22Q4</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr6ihb:</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>