<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:07:56 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-45116]  replSetStepDown attempts to hand off election to highest priority node</title>
                <link>https://jira.mongodb.org/browse/SERVER-45116</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;There are certain scenarios where priority takeover never succeeds. For example, if a user has 3 nodes in the main datacenter and 2 nodes in the backup datacenter. They want to move the primary from the main datacenter to the backup datacenter, so they raise the priority of a node in the backup datacenter. However, the nodes in the backup datacenter are always behind the main datacenter, so they can never win an election.&lt;/p&gt;

&lt;p&gt;A proposed fix to this is to let replSetStepDown accept a suggested next primary. When the command waits for a majority of nodes to catch up, it also waits for the suggested next primary to catch up. It then sends the replSetStepUp command to the suggested next primary.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1050777">SERVER-45116</key>
            <summary> replSetStepDown attempts to hand off election to highest priority node</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="backlog-server-repl">Backlog - Replication Team</assignee>
                                    <reporter username="tess.avitabile@mongodb.com">Tess Avitabile</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Dec 2019 21:57:19 +0000</created>
                <updated>Tue, 6 Dec 2022 02:40:16 +0000</updated>
                            <resolved>Mon, 10 Feb 2020 15:33:11 +0000</resolved>
                                                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>13</watches>
                                                                                                                <comments>
                            <comment id="2856478" author="evin.roesle" created="Mon, 10 Feb 2020 15:33:11 +0000"  >&lt;p&gt;Closing this project as Won&apos;t Do. If you would like to elect a specific node, please utilize the replSetFreeze command to freeze the nodes that you do not want to elect and then run the replSetStepDown command. If this is not a suitable solution, please reopen this ticket.&#160;&lt;/p&gt;</comment>
                            <comment id="2774175" author="siyuan.zhou@10gen.com" created="Thu, 30 Jan 2020 23:42:49 +0000"  >&lt;p&gt;To follow up on the first issue&#160;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt; pointed out.&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-43904&quot; title=&quot;When stepping down, step up doesn&amp;#39;t filter out frozen nodes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-43904&quot;&gt;&lt;del&gt;SERVER-43904&lt;/del&gt;&lt;/a&gt; is tracking the&#160;&lt;tt&gt;replSetFreeze&lt;/tt&gt; bug.&lt;/p&gt;</comment>
                            <comment id="2774004" author="tess.avitabile" created="Thu, 30 Jan 2020 22:17:22 +0000"  >&lt;p&gt;Summary of discussion with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=evin.roesle&quot; class=&quot;user-hover&quot; rel=&quot;evin.roesle&quot;&gt;evin.roesle&lt;/a&gt;, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=siyuan.zhou&quot; class=&quot;user-hover&quot; rel=&quot;siyuan.zhou&quot;&gt;siyuan.zhou&lt;/a&gt;, and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;There is a workaround for this problem today, which is to run the &lt;tt&gt;replSetFreeze&lt;/tt&gt; command as described in the&#160;&lt;a href=&quot;https://docs.mongodb.com/manual/tutorial/force-member-to-be-primary/#force-a-member-to-be-primary-using-database-commands&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;documentation&lt;/a&gt;. A downside to using the &lt;tt&gt;replSetFreeze&lt;/tt&gt; command is that election handoff does not take into account whether a node is frozen, which leads to unnecessary downtime, since the &lt;tt&gt;replSetStepUp&lt;/tt&gt; command for election handoff will fail if run against a frozen node. This is something we could just fix.&lt;/li&gt;
	&lt;li&gt;In cases where a priority takeover would happen, doing this ticket will not result in additional downtime. For priority takeover, there is downtime during primary catchup. This ticket would move the waiting to the &lt;tt&gt;replSetStepDown&lt;/tt&gt; command, but the amount of waiting would be the same.&lt;/li&gt;
	&lt;li&gt;In cases where a priority takeover cannot happen because the highest-priority node is behind a majority, doing this ticket would result in additional downtime. This is a tradeoff between availability and converging on a user&apos;s priorities. However, the user still has the ability to control the amount of downtime by configuring the number of seconds specified in the &lt;tt&gt;replSetStepDown&lt;/tt&gt; command.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="2699411" author="tess.avitabile" created="Thu, 2 Jan 2020 21:26:10 +0000"  >&lt;p&gt;A Replication team member suggested that instead of letting the user suggest the next primary, the stepping down node should use the highest-priority node as the suggested next primary.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="965249">SERVER-43904</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>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25128"><![CDATA[Replication]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5002K00000iQT7SQAW, 5002K00000nn20jQAA]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 30 Jan 2020 23:42:49 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 2 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-1693</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>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            4 years, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-repl</customfieldvalue>
            <customfieldvalue>evin.roesle@mongodb.com</customfieldvalue>
            <customfieldvalue>siyuan.zhou@mongodb.com</customfieldvalue>
            <customfieldvalue>tess.avitabile@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hwajd3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hvyqn3:</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_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|hwa5mf:</customfieldvalue>

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