<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:05:10 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>[SERVER-44152] Pre-warm connection pools in mongos</title>
                <link>https://jira.mongodb.org/browse/SERVER-44152</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;h3&gt;&lt;a name=&quot;Problemstatement&quot;&gt;&lt;/a&gt;Problem statement&lt;/h3&gt;
&lt;p&gt;When a mongos is initially brought up, it lacks connections to any of the cluster&#8217;s shard servers.  This can add latency to user operations, as we require a request to a host before we start spooling a connections (even in the presence of minPoolSize).&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;Proposal&quot;&gt;&lt;/a&gt;Proposal&lt;/h3&gt;
&lt;p&gt;Provide a new startup parameter, which would cause mongos wait a configurable amount of time to establish at least minPoolSize connections to each shard server before accepting user connections.  This would allow us to reboot mongos&#8217;, or add new ones, without making any initial user requests pay the overhead of waiting on connection establishment.&lt;/p&gt;

&lt;p&gt;This should should be relatively simple.  Cribbing from the test only mongos command: &lt;a href=&quot;https://github.com/mongodb/mongo/blob/906ac3ca78d352df2d0dd45350195251efe0dea1/src/mongo/s/commands/cluster_multicast.cpp&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;multicast&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Temporarily turn the host timeout to infinity&lt;/li&gt;
	&lt;li&gt;Fetch all shard ids&lt;/li&gt;
	&lt;li&gt;Foreach shard id
	&lt;ol&gt;
		&lt;li&gt;Get the connection string&lt;/li&gt;
		&lt;li&gt;Foreach host in the connection string
		&lt;ol&gt;
			&lt;li&gt;Push the host onto a list&lt;/li&gt;
		&lt;/ol&gt;
		&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
	&lt;li&gt;Use the AsyncMulticaster, with the arbitrary executor, to multicast a ping to all hosts&lt;/li&gt;
	&lt;li&gt;Wait for a configurable delay, periodically checking connpoolstats to see if hosts all have minPoolSize connections
	&lt;ol&gt;
		&lt;li&gt;If all pools reach the desired size before the timeout, stop waiting&lt;/li&gt;
		&lt;li&gt;If all pools don&#8217;t, continue at the end of the timeout&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
	&lt;li&gt;Return the host timeout to its former value&lt;/li&gt;
	&lt;li&gt;Start accepting client connections&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Steps 1 and 7 may also be optional (if we&#8217;re waiting 10 seconds, the 5 minute host timeout may not matter).&lt;/p&gt;

&lt;p&gt;In either case, the work should be relatively approachable, as it only involves being a regular client of the networking layer in mongos, rather than doing any development against the interior components.&lt;/p&gt;</description>
                <environment></environment>
        <key id="976630">SERVER-44152</key>
            <summary>Pre-warm connection pools in mongos</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="anton.oyung@mongodb.com">Anton Oyung</assignee>
                                    <reporter username="randolph@mongodb.com">Randolph Tan</reporter>
                        <labels>
                    </labels>
                <created>Tue, 22 Oct 2019 20:28:01 +0000</created>
                <updated>Thu, 30 Sep 2021 17:33:36 +0000</updated>
                            <resolved>Wed, 13 Nov 2019 18:51:28 +0000</resolved>
                                                    <fixVersion>4.3.2</fixVersion>
                    <fixVersion>4.2.17</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="4094795" author="JIRAUSER1256988" created="Thu, 30 Sep 2021 17:33:36 +0000"  >&lt;p&gt;The pre-warm feature is causing&#160;BF-22699, if you are interested to help with insight please comment in&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-60344&quot; title=&quot;Action plan on lagging setFCV replicas breaking tests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-60344&quot;&gt;&lt;del&gt;SERVER-60344&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="4067392" author="xgen-internal-githook" created="Fri, 17 Sep 2021 00:38:11 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Anton Oyung&apos;, &apos;email&apos;: &apos;anton.oyung@mongodb.com&apos;, &apos;username&apos;: &apos;AntonOyung&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44152&quot; title=&quot;Pre-warm connection pools in mongos&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44152&quot;&gt;&lt;del&gt;SERVER-44152&lt;/del&gt;&lt;/a&gt;: Pre-warm connection pools in mongos&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/be089838c55d33b6f6039c4219896ee4a3cd704f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/be089838c55d33b6f6039c4219896ee4a3cd704f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2539435" author="xgen-internal-githook" created="Wed, 13 Nov 2019 19:16:58 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Anton Oyung&apos;, &apos;username&apos;: &apos;AntonOyung&apos;, &apos;email&apos;: &apos;anton.oyung@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44152&quot; title=&quot;Pre-warm connection pools in mongos&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44152&quot;&gt;&lt;del&gt;SERVER-44152&lt;/del&gt;&lt;/a&gt;: Pre-warm connection pools in mongos&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/b375698b7fe1f4e69761559f1cad50c5e1f18014&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/b375698b7fe1f4e69761559f1cad50c5e1f18014&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                        <issuelink>
            <issuekey id="1887026">SERVER-60344</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1295438">SERVER-47169</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1873972">SERVER-59941</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16775"><![CDATA[v4.2]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 7 Nov 2019 14:53:07 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 18 weeks, 6 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1626</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>andrew.shuvalov@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years, 18 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>145.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>andrew.shuvalov@mongodb.com</customfieldvalue>
            <customfieldvalue>anton.oyung@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>randolph@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hvyigf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr85b3:</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_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="3306">Sharding 2019-10-21</customfieldvalue>
    <customfieldvalue id="3307">Sharding 2019-11-04</customfieldvalue>
    <customfieldvalue id="3308">Sharding 2019-11-18</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hvy4pr:</customfieldvalue>

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