<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:52:09 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>[JAVA-381] Support redundant mongos connections</title>
                <link>https://jira.mongodb.org/browse/JAVA-381</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;Add support for a redundant connection mode to mongos instances much like connecting to replicasets work.&lt;/p&gt;

&lt;p&gt;Mongo constructor that takes a seed list should detect whether it is a list of mongos instances or a list of replica set members.  If the latter, it should work the same as now.  If the former, the driver should select the mongos with the lowest ping time and send all traffic to it, failing over if that one becomes unavailable.&lt;/p&gt;

</description>
                <environment></environment>
        <key id="18251">JAVA-381</key>
            <summary>Support redundant mongos connections</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="jeff.yemin@mongodb.com">Jeffrey Yemin</assignee>
                                    <reporter username="scotthernandez">Scott Hernandez</reporter>
                        <labels>
                            <label>server-2.2.0</label>
                    </labels>
                <created>Tue, 14 Jun 2011 02:29:55 +0000</created>
                <updated>Fri, 7 Mar 2014 03:26:55 +0000</updated>
                            <resolved>Fri, 20 Jul 2012 18:47:03 +0000</resolved>
                                                    <fixVersion>2.9.0</fixVersion>
                                    <component>Connection Management</component>
                                        <votes>1</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="158218" author="jeff.yemin" created="Wed, 29 Aug 2012 20:08:05 +0000"  >&lt;p&gt;Closing as part of 2.9.0 release process.&lt;/p&gt;</comment>
                            <comment id="155157" author="auto" created="Tue, 21 Aug 2012 00:59:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-08-20T17:59:39-07:00&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-381&quot; title=&quot;Support redundant mongos connections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-381&quot;&gt;&lt;del&gt;JAVA-381&lt;/del&gt;&lt;/a&gt;: Partially reverted last change. The synchronization does have to be outside the null check, otherwise it&apos;s a race condition and the notification may never be received&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/5dbfb40bb4d5afd2fc7b66e2726da4ea6a09103f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/5dbfb40bb4d5afd2fc7b66e2726da4ea6a09103f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="153953" author="auto" created="Thu, 16 Aug 2012 14:10:40 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-08-16T07:09:10-07:00&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-381&quot; title=&quot;Support redundant mongos connections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-381&quot;&gt;&lt;del&gt;JAVA-381&lt;/del&gt;&lt;/a&gt;: Improved the Javadoc&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/53edd86f65a6e413a3e4fb7b8498738551ef13db&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/53edd86f65a6e413a3e4fb7b8498738551ef13db&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="153040" author="auto" created="Tue, 14 Aug 2012 00:45:45 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-08-13T17:45:29-07:00&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-381&quot; title=&quot;Support redundant mongos connections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-381&quot;&gt;&lt;del&gt;JAVA-381&lt;/del&gt;&lt;/a&gt;: Removed over-synchronized methods.  Thanks to Franklin Nwankwo for pointing it out.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/3fb3f07b5587c74193407b2633296979f40727c9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/3fb3f07b5587c74193407b2633296979f40727c9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="145344" author="auto" created="Fri, 20 Jul 2012 15:35:18 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-07-20T07:18:59-07:00&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-381&quot; title=&quot;Support redundant mongos connections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-381&quot;&gt;&lt;del&gt;JAVA-381&lt;/del&gt;&lt;/a&gt;: Some cleanup from code review&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/fac59153f5ced9ed7eda92366c6b9f5a43b4022b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/fac59153f5ced9ed7eda92366c6b9f5a43b4022b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="145343" author="auto" created="Fri, 20 Jul 2012 15:35:17 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-07-18T09:11:07-07:00&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-381&quot; title=&quot;Support redundant mongos connections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-381&quot;&gt;&lt;del&gt;JAVA-381&lt;/del&gt;&lt;/a&gt;: Added support for detecting a mongos connection&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/9a32cd62be7b22a361e44c62b123b2f0cd541fb0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/9a32cd62be7b22a361e44c62b123b2f0cd541fb0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="145342" author="auto" created="Fri, 20 Jul 2012 15:35:15 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-07-16T14:48:58-07:00&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-381&quot; title=&quot;Support redundant mongos connections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-381&quot;&gt;&lt;del&gt;JAVA-381&lt;/del&gt;&lt;/a&gt;: fixed race condition&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/861bea82b90c70ae3f0054ad1e6dcb6a1e57ad46&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/861bea82b90c70ae3f0054ad1e6dcb6a1e57ad46&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="145341" author="auto" created="Fri, 20 Jul 2012 15:35:14 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-07-05T11:09:56-07:00&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-381&quot; title=&quot;Support redundant mongos connections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-381&quot;&gt;&lt;del&gt;JAVA-381&lt;/del&gt;&lt;/a&gt;: Added MongosStatus class as a sibling to ReplicaSetStatus to handle mongos failover.&lt;br/&gt;
Refactored ReplicaSetStatus and MongosStatus to share a common base class ConnectionStatus.&lt;br/&gt;
Added DynamicConnectionStatus class to handle dynamic discovery of whether a list of seed nodes represents a bunch of mongos servers or a replicaset.&lt;br/&gt;
Is uses ExecutorService to handle multiple threads that communicate with each member of the seed list.&lt;br/&gt;
Changed DBTCPConnection to depend on DynamicConnectionStatus insteand of ReplicaSetStatus.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/d51b3648a8e1bf1a7b7886b7ceb343064c9e2225&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/d51b3648a8e1bf1a7b7886b7ceb343064c9e2225&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="118549">JAVA-1139</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="14605">SERVER-2499</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="16439">JAVA-338</issuekey>
        </issuelink>
                            </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_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrghif:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9775</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>