<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:05:21 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-44214] Give replica set secondaries votes in concurrency suites</title>
                <link>https://jira.mongodb.org/browse/SERVER-44214</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Presently, by default we give &lt;a href=&quot;https://github.com/mongodb/mongo/blob/4003ef1b40e4404fc42d8a13db7e3a12946e0832/buildscripts/resmokelib/testing/fixtures/replicaset.py#L71-L74&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;zero votes&lt;/a&gt; to secondary members in concurrency suites&apos; &lt;tt&gt;ReplicaSetFixture&lt;/tt&gt; . As a result, &lt;tt&gt;lastCommitted&lt;/tt&gt; lag is not reliable because non-voting members are not considered in its calculation. This means that consumers of &lt;tt&gt;lastCommitted&lt;/tt&gt; lag, such as Flow Control, will not have much testing coverage in most concurrency suites.&lt;/p&gt;

&lt;p&gt;In order to prevent a new primary from being elected, it is sufficient to give secondary members zero priority. IIUC, giving secondaries zero votes just prevents stepdowns of the current primary.&lt;/p&gt;

&lt;p&gt;We should consider removing the restriction on secondary votes. If it is absolutely necessary to avoid stepdowns in certain cases, we should make sure that these cases are handled individually.&lt;/p&gt;</description>
                <environment></environment>
        <key id="978510">SERVER-44214</key>
            <summary>Give replica set secondaries votes in concurrency suites</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="judah.schvimer@mongodb.com">Judah Schvimer</assignee>
                                    <reporter username="maria.vankeulen@mongodb.com">Maria van Keulen</reporter>
                        <labels>
                    </labels>
                <created>Thu, 24 Oct 2019 16:55:28 +0000</created>
                <updated>Sun, 29 Oct 2023 22:15:46 +0000</updated>
                            <resolved>Tue, 12 Nov 2019 14:39:22 +0000</resolved>
                                                    <fixVersion>4.3.1</fixVersion>
                                    <component>Concurrency</component>
                    <component>Testing Infrastructure</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="2536240" author="xgen-internal-githook" created="Tue, 12 Nov 2019 14:26:48 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Judah Schvimer&apos;, &apos;username&apos;: &apos;judahschvimer&apos;, &apos;email&apos;: &apos;judah.schvimer@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44214&quot; title=&quot;Give replica set secondaries votes in concurrency suites&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44214&quot;&gt;&lt;del&gt;SERVER-44214&lt;/del&gt;&lt;/a&gt; give all nodes votes with high election timeouts in tests&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c57a899b676a8b9fe35fdc2147c12602deda4274&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c57a899b676a8b9fe35fdc2147c12602deda4274&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2500754" author="judah.schvimer" created="Fri, 25 Oct 2019 12:14:11 +0000"  >&lt;p&gt;I actually think the primary will not step down until it hasn&apos;t heard from a majority of the set &lt;a href=&quot;https://github.com/mongodb/mongo/blob/1485d0a0aa01fc779d3d7c544c091c207c7d438a/src/mongo/db/repl/topology_coordinator.cpp#L913&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;in the election timeout period&lt;/a&gt;. Thus if we set the election timeout super high, the primary would never step down due to not hearing from secondaries.&lt;/p&gt;</comment>
                            <comment id="2499753" author="max.hirschhorn@10gen.com" created="Thu, 24 Oct 2019 19:16:22 +0000"  >&lt;blockquote&gt;
&lt;p&gt;Using a high election timeout could also prevent elections. I forget why we chose zero votes in the first place. Max Hirschhorn, do you recall? I do not think it is a good idea to allow the secondaries to step up or the primaries to step down in suites that don&apos;t expect it. We spent far too much time debugging BFs there.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;The purpose of giving secondaries votes=0 was to prevent the primary from stepping down if it stops exchanging heartbeat messages with the secondaries (because it&apos;ll have lost contact with a majority of the replica set). Increasing the election timeout is useful for preventing a secondary from attempting to run for election but doesn&apos;t cover all the &quot;slow resmoke.py logging leads to a test failure&quot; cases we&apos;ve seen.&lt;/p&gt;

&lt;p&gt;Would we want to try and switch to a mode where we allow a node to remain primary despite not having received a response to a heartbeat message in a timely fashion?&lt;/p&gt;</comment>
                            <comment id="2499576" author="maria.vankeulen" created="Thu, 24 Oct 2019 17:30:00 +0000"  >&lt;p&gt;Flow Control has various fuzzer suites that artificially induce aggressive throttling (see &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41241&quot; title=&quot;Add correctness testing variant where Flow Control throttles aggressively&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41241&quot;&gt;&lt;del&gt;SERVER-41241&lt;/del&gt;&lt;/a&gt;). It is enabled by default in both correctness and performance testing, but in practice it does not engage often in correctness testing other than in those aforementioned suites. &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-43870&quot; title=&quot;High insert/delete workload with vectored insert results in unexpected flow control behavior/replication lag measurement&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-43870&quot;&gt;&lt;del&gt;SERVER-43870&lt;/del&gt;&lt;/a&gt; is an example of a situation that theoretically would have engaged Flow Control, but did not because of our &lt;tt&gt;ReplicaSetFixture&lt;/tt&gt; configuration.&lt;/p&gt;</comment>
                            <comment id="2499566" author="judah.schvimer" created="Thu, 24 Oct 2019 17:22:39 +0000"  >&lt;p&gt;We currently raise the election timeout in python fixtures when secondaries vote. I&apos;m not sure why we didn&apos;t just use the election timeout always in all fixtures.&lt;/p&gt;</comment>
                            <comment id="2499554" author="judah.schvimer" created="Thu, 24 Oct 2019 17:16:52 +0000"  >&lt;p&gt;Using a high election timeout could also prevent elections. I forget why we chose zero votes in the first place. &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=max.hirschhorn&quot; class=&quot;user-hover&quot; rel=&quot;max.hirschhorn&quot;&gt;max.hirschhorn&lt;/a&gt;, do you recall? I do not think it is a good idea to allow the secondaries to step up or the primaries to step down in suites that don&apos;t expect it. We spent far too much time debugging BFs there. &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=maria.vankeulen&quot; class=&quot;user-hover&quot; rel=&quot;maria.vankeulen&quot;&gt;maria.vankeulen&lt;/a&gt;, can you please comment on the amount of test coverage that flow control has and how much this will add to gauge its priority (if we can come to consensus on an acceptable alternative to 0 votes)?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="416233">SERVER-30642</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="448855">SERVER-31670</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="482465">SERVER-32688</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>6.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 24 Oct 2019 17:16:52 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 13 weeks, 1 day 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></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>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            4 years, 13 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>maria.vankeulen@mongodb.com</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hvyttj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hvn8un:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="3304">Repl 2019-11-18</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|hvyg2v:</customfieldvalue>

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