<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:53:04 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-786] Make driver more proactive about setting the new primary</title>
                <link>https://jira.mongodb.org/browse/JAVA-786</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;When the driver is configured with either a list of servers in a replica set or a list of mongos servers, it should be more responsive to changes in the state of the servers its connected to.  Currently there is a single background thread which, every five seconds by default, loops through all the servers, calling isMaster on each to determine its state (whether it&apos;s up at all, whether it&apos;s a primary or a secondary, what tags it has, its set version).  Now let&apos;s say the primary server crashes.  The next time through the loop, there might already be a new primary elected, but because the thread also tries to connect to the crashed server, it doesn&apos;t update its state to the new primary until the connect timeout is reached on the crashed server.&lt;/p&gt;

&lt;p&gt;The proposed change here is to dedicate multiple threads to this monitoring task (using a fixed thread pool executor service).  With this change, the cluster state can be updated as soon as any server is able to report its status, without waiting for connections to unreachable servers to time out. &lt;/p&gt;

&lt;p&gt;Furthermore, application threads should ask the cluster monitor for the current primary on every single use, instead of waiting for the first failure, as is the case now.&lt;/p&gt;</description>
                <environment></environment>
        <key id="68124">JAVA-786</key>
            <summary>Make driver more proactive about setting the new primary</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="9">Done</resolution>
                                        <assignee username="jeff.yemin@mongodb.com">Jeffrey Yemin</assignee>
                                    <reporter username="jeff.yemin@mongodb.com">Jeffrey Yemin</reporter>
                        <labels>
                    </labels>
                <created>Tue, 12 Mar 2013 14:28:32 +0000</created>
                <updated>Thu, 3 Apr 2014 15:21:59 +0000</updated>
                            <resolved>Thu, 7 Nov 2013 02:20:21 +0000</resolved>
                                                    <fixVersion>2.12.0</fixVersion>
                    <fixVersion>3.0.0</fixVersion>
                                    <component>Cluster Management</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                                                                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="22820">JAVA-438</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                            <subtask id="93562">JAVA-996</subtask>
                            <subtask id="93563">JAVA-997</subtask>
                    </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|hrmnqf:</customfieldvalue>

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