<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:59:26 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-64068] Relax requirement on catchup takeover dry-run</title>
                <link>https://jira.mongodb.org/browse/SERVER-64068</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-51100&quot; title=&quot;Make dry-run elections write to lastVote like real elections do&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-51100&quot;&gt;SERVER-51100&lt;/a&gt; goal is to make dry-run elections write to lastVote like real elections do.&lt;br/&gt;
 Code was changed to do so but we discovered an issue around catchup takeover dry-runs:&lt;br/&gt;
 Those require the primary to vote `yes` as per &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29502&quot; title=&quot;Require the vote from the current primary in the election dry-run of catchup takeover&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29502&quot;&gt;&lt;del&gt;SERVER-29502&lt;/del&gt;&lt;/a&gt; (See Epic and attached designed document too, `Rules of Catchup Takeover` in particular). See &lt;a href=&quot;https://github.com/10gen/mongo/blob/59df956365a44cc63e2d3c55d1734ee960891a8b/src/mongo/db/repl/vote_requester.cpp#L171-L186&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;VoteRequester::Algorithm&lt;/a&gt; for current code.&lt;br/&gt;
 If the primary has disk issues, currently it will not impact its ability to vote in that case (because dry run does not write lastVote) so the takeover will succeed.&lt;br/&gt;
 With &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-51100&quot; title=&quot;Make dry-run elections write to lastVote like real elections do&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-51100&quot;&gt;SERVER-51100&lt;/a&gt;, the primary will be incapable of voting so no takeover can occur.&lt;/p&gt;

&lt;p&gt;Matthew suggests to do the following:&lt;br/&gt;
 For catchup takeover &lt;b&gt;dry run&lt;/b&gt;:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Require a vote from the primary (or timeout)&lt;/li&gt;
	&lt;li&gt;If the primary votes `no`: fail&lt;/li&gt;
	&lt;li&gt;If the primary votes `yes`: count that vote as +1 and follow the normal majority of votes rule&lt;/li&gt;
	&lt;li&gt;If the primary times out: count that as +0 and follow the normal majority of votes rule&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;e.g. If there are three voters, and the third is the &lt;b&gt;primary&lt;/b&gt;:&lt;/p&gt;

&lt;p&gt;X, X, &lt;b&gt;No&lt;/b&gt; : fail&lt;/p&gt;

&lt;p&gt;No, No, &lt;b&gt;Yes&lt;/b&gt;: fail&lt;/p&gt;

&lt;p&gt;Yes, No, &lt;b&gt;Yes&lt;/b&gt;: succeed&lt;/p&gt;

&lt;p&gt;Yes, No, Timeout: fail&lt;/p&gt;

&lt;p&gt;Yes, Yes, Timeout: succeed&lt;/p&gt;

&lt;p&gt;This would allow the catchup takeover dry-run to succeed even if the primary has disk issues, unblocking &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-51100&quot; title=&quot;Make dry-run elections write to lastVote like real elections do&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-51100&quot;&gt;SERVER-51100&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="1991867">SERVER-64068</key>
            <summary>Relax requirement on catchup takeover dry-run</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="1" iconUrl="https://jira.mongodb.org/images/icons/statuses/open.png" description="">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="backlog-server-repl">Backlog - Replication Team</assignee>
                                    <reporter username="frederic.vitzikam@mongodb.com">Frederic Vitzikam</reporter>
                        <labels>
                    </labels>
                <created>Tue, 1 Mar 2022 01:11:49 +0000</created>
                <updated>Tue, 6 Dec 2022 00:28:09 +0000</updated>
                                                                                                <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                    <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1483893">SERVER-51100</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 4 Mar 2022 18:50:57 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 49 weeks, 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_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>
                            1 year, 49 weeks, 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>frederic.vitzikam@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i0lm9j:</customfieldvalue>

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

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