<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:33:45 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>[GODRIVER-211] Revise connection pooling options on Client/connstring</title>
                <link>https://jira.mongodb.org/browse/GODRIVER-211</link>
                <project id="14289" key="GODRIVER">Go Driver</project>
                    <description>&lt;p&gt;Revised:&lt;br/&gt;
There are many connection options supported in the private level, but the connection string and Client object should support only two for consistency with other drivers:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;maxPoolSize - maximum number of (non-monitor) simultaneous connections per host&lt;/li&gt;
	&lt;li&gt;maxIdleTimeMS - time after which idle connections are closed; if set, then after an activity spike up to maxPoolSize, idle connections will drain away.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Original:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I don&apos;t see how connection pool options in the connection string (which appear to be non-standard anyway) are wired up to affect the actual connection pooling.&lt;/p&gt;

&lt;p&gt;We should investigate to confirm if this is working or broken and, if broken, develop a plan to fix it.&lt;/p&gt;

&lt;p&gt;We don&apos;t necessarily need to fix problems for the alpha release, but we do need to be able to describe known issues to address in the beta.&lt;/p&gt;&lt;/blockquote&gt;</description>
                <environment></environment>
        <key id="489321">GODRIVER-211</key>
            <summary>Revise connection pooling options on Client/connstring</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="isabella.siu@mongodb.com">Isabella Siu</assignee>
                                    <reporter username="david.golden@mongodb.com">David Golden</reporter>
                        <labels>
                            <label>Stitch</label>
                            <label>beta</label>
                    </labels>
                <created>Tue, 30 Jan 2018 04:19:14 +0000</created>
                <updated>Sat, 28 Oct 2023 11:39:49 +0000</updated>
                            <resolved>Tue, 27 Nov 2018 15:51:12 +0000</resolved>
                                                    <fixVersion>0.1.0</fixVersion>
                                    <component>Options &amp;amp; Configuration</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="2072769" author="xgen-internal-githook" created="Tue, 27 Nov 2018 15:28:20 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Isabella Siu&apos;, &apos;email&apos;: &apos;isabella.siu@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/GODRIVER-211&quot; title=&quot;Revise connection pooling options on Client/connstring&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-211&quot;&gt;&lt;del&gt;GODRIVER-211&lt;/del&gt;&lt;/a&gt; revise connection pooling options on client/connstring&lt;/p&gt;

&lt;p&gt;Change-Id: Ic9b1f10ef3646e535a19a20a53decc0444fe1fe1&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/commit/802b0ba4dad61e1d1b523ad309bc3738b197ee26&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/commit/802b0ba4dad61e1d1b523ad309bc3738b197ee26&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1795559" author="david.golden" created="Mon, 5 Feb 2018 18:58:44 +0000"  >&lt;p&gt;Jesse suggest skipping &quot;minPoolSize&quot; and seeing if anyone actually requests it.&lt;/p&gt;</comment>
                            <comment id="1791246" author="david.golden" created="Wed, 31 Jan 2018 22:26:44 +0000"  >&lt;p&gt;Thank you for explaining it further, Craig.  To confirm my understanding, this is what I think you&apos;re saying:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;MaxConnsPerHost is tracked via the CappedProvider &amp;#8211; via server &amp;#8211; rather than via the pool so that the max limit on connections can be enforced even when connections might live in different pools.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Some of my thoughts about where to go from here:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;I don&apos;t see a lot of value in having both &quot;maxIdleTimeMS&quot; and &quot;maxLifeTimeMS&quot; and I&apos;m curious the use case for the latter and why it&apos;s such a common option elsewhere.  As the manual only lists the former, I&apos;m inclined to only expose that until we hear otherwise.&lt;/li&gt;
	&lt;li&gt;At the client/connstring level, I think &quot;maxConnsPerHost&quot; shouldn&apos;t be exposed.  I&apos;d prefer to stick with standard URI options already documented.  The private server can still support maxConnsPerHost to support BICs requirement.&lt;/li&gt;
	&lt;li&gt;&quot;maxIdleConnsPerHost&quot; is another interesting knob but I think would be unique to the Go driver.  I&apos;m inclined to stick with maxIdleTimeMS until we get user feedback that that is insufficient.&lt;/li&gt;
	&lt;li&gt;I think we should consider implementing a &quot;minPoolSize&quot; parameter with &lt;a href=&quot;https://api.mongodb.com/python/current/api/pymongo/mongo_client.html#pymongo.mongo_client.MongoClient.min_pool_size&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;semantics like Pymongo&lt;/a&gt; where it&apos;s the minimum number of connections (idle or in use).&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In summary, I think this is what the client should offer as connection string options:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;maxPoolSize - maximum number of (non-monitor) simultaneous connections per host&lt;/li&gt;
	&lt;li&gt;minPoolSize - minimum number of (non-monitor) simultaneous connections per host  (i.e. open new connections in the background if ever below this number)&lt;/li&gt;
	&lt;li&gt;maxIdleTimeMS - time after which idle connections are closed; if set, then after an activity spike up to maxPoolSize, idle connections will drain away.  If they drop below minPoolSize, they will be refreshed and replaced.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I don&apos;t think we need the &quot;waitQueueMultiple&quot; and &quot;waitQueueTimeoutMS&quot; as client can control timeouts/cancellation via contexts objects to avoid blocking indefinitely.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>GODRIVER-619</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr8auf:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>