<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:19:44 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-29030] Announce new primary via heartbeat requests</title>
                <link>https://jira.mongodb.org/browse/SERVER-29030</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;We probably should include replset metadata in heartbeat requests so that the new primary sending a round of heartbeats will let others know it&apos;s the primary as soon as it wins an election instead of through heartbeat responses or the data replication spanning tree.&lt;/p&gt;</description>
                <environment></environment>
        <key id="379335">SERVER-29030</key>
            <summary>Announce new primary via heartbeat requests</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="william.schultz@mongodb.com">William Schultz</assignee>
                                    <reporter username="siyuan.zhou@mongodb.com">Siyuan Zhou</reporter>
                        <labels>
                            <label>former-quick-wins</label>
                    </labels>
                <created>Mon, 1 May 2017 20:03:38 +0000</created>
                <updated>Mon, 30 Oct 2023 23:17:06 +0000</updated>
                            <resolved>Mon, 18 May 2020 13:57:20 +0000</resolved>
                                                    <fixVersion>4.7.0</fixVersion>
                    <fixVersion>4.4.4</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="3565898" author="xgen-internal-githook" created="Thu, 14 Jan 2021 20:37:11 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;William Schultz&apos;, &apos;email&apos;: &apos;william.schultz@mongodb.com&apos;, &apos;username&apos;: &apos;will62794&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29030&quot; title=&quot;Announce new primary via heartbeat requests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29030&quot;&gt;&lt;del&gt;SERVER-29030&lt;/del&gt;&lt;/a&gt; Announce new primary via heartbeat requests&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 912735588386424712a1525da1574a4554bf1787)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/07b796b71e35154e0ab4fc5e6f7a3a3ff9cbc896&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/07b796b71e35154e0ab4fc5e6f7a3a3ff9cbc896&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3092182" author="xgen-internal-githook" created="Mon, 18 May 2020 13:57:44 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;William Schultz&apos;, &apos;email&apos;: &apos;william.schultz@mongodb.com&apos;, &apos;username&apos;: &apos;will62794&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29030&quot; title=&quot;Announce new primary via heartbeat requests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29030&quot;&gt;&lt;del&gt;SERVER-29030&lt;/del&gt;&lt;/a&gt; Announce new primary via heartbeat requests&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/912735588386424712a1525da1574a4554bf1787&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/912735588386424712a1525da1574a4554bf1787&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3060807" author="lingzhi.deng" created="Wed, 29 Apr 2020 16:42:39 +0000"  >&lt;p&gt;After exhaust oplog fetching project in &amp;gt;= 4.4, the syncing nodes no longer send &lt;tt&gt;getMore&lt;/tt&gt; commands to the sync source and thus the replication term will no longer be propagated up the spanning tree as &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.2.6/src/mongo/db/repl/oplog_fetcher.cpp#L96&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;it used to&lt;/a&gt;. So it might be also interesting to test how fast an old primary would step down after stepping up the new primary in the case where there is a network partition between the old and the new primary and the third node is initially syncing from the old primary.&lt;/p&gt;</comment>
                            <comment id="3060746" author="william.schultz" created="Wed, 29 Apr 2020 16:18:32 +0000"  >&lt;p&gt;Interestingly, it looks like secondaries on versions &amp;gt;= 4.4 already end up learning of a new primary very quickly as a byproduct of the new behavior where we do a reconfig on step up introduced in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45081&quot; title=&quot;Increment the config term via reconfig on step-up&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45081&quot;&gt;&lt;del&gt;SERVER-45081&lt;/del&gt;&lt;/a&gt;. I wrote a simple test to measure how quickly a secondary learns of a new primary after it gets elected ( &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/attachment/258011/258011_learn_new_primary.js&quot; title=&quot;learn_new_primary.js attached to SERVER-29030&quot;&gt;learn_new_primary.js&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.mongodb.org/images/icons/link_attachment_7.gif&quot; height=&quot;7&quot; width=&quot;7&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; ). We start with a 3 node replica set, then step down the original primary and step up a new primary (node 1). Then, after we know the election has succeeded, we measure how long it takes for the other secondary (node 2) to update its view of the primary. In 5 successive runs on my local workstation, it takes around 10ms to learn of the new primary. It may even be faster than that since the assert.soonNoExcept retry interval is 10 milliseconds.&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:03:52.717-0400 [jsTest] Node 2 took 13ms to learn of new primary.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:03:56.034-0400 [jsTest] Node 2 took 12ms to learn of new primary.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:03:59.572-0400 [jsTest] Node 2 took 12ms to learn of new primary.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:04:02.962-0400 [jsTest] Node 2 took 12ms to learn of new primary.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:04:06.160-0400 [jsTest] Node 2 took 12ms to learn of new primary.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;The secondary is effectively learning of the new primary instantaneously. If we look at filtered logs from one of these runs, we can understand why:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.926-0400 [jsTest] Stepping down old primary&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.927-0400 d35020| 2020-04-29T12:08:31.926-04:00 I  REPL     [conn1] Replica set state transition{&quot;newState&quot;:&quot;SECONDARY&quot;,&quot;oldState&quot;:&quot;PRIMARY&quot;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.927-0400 [jsTest] Stepping up new primary&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.930-0400 d35021| 2020-04-29T12:08:31.930-04:00 I  REPL     [ReplCoord-4] Replica set state transition{&quot;newState&quot;:&quot;PRIMARY&quot;,&quot;oldState&quot;:&quot;SECONDARY&quot;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.932-0400 d35021| 2020-04-29T12:08:31.931-04:00 I  REPL     [OplogApplier-0] Increment the config term via reconfig&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.932-0400 d35021| 2020-04-29T12:08:31.932-04:00 I  REPL     [OplogApplier-0] New replica set config in use{&quot;config&quot;:{&quot;_id&quot;:&quot;learn_new_primary&quot;,&quot;version&quot;:3,&quot;term&quot;:2,&quot;protocolVersion&quot;:1,&quot;writeConcernMajorityJournalDefault&quot;:true,&quot;members&quot;:[{&quot;_id&quot;:0,&quot;host&quot;:&quot;williams-ubuntu:35020&quot;,&quot;arbiterOnly&quot;:false,&quot;buildIndexes&quot;:true,&quot;hidden&quot;:false,&quot;priority&quot;:1.0,&quot;tags&quot;:{},&quot;slaveDelay&quot;:0,&quot;votes&quot;:1},{&quot;_id&quot;:1,&quot;host&quot;:&quot;williams-ubuntu:35021&quot;,&quot;arbiterOnly&quot;:false,&quot;buildIndexes&quot;:true,&quot;hidden&quot;:false,&quot;priority&quot;:1.0,&quot;tags&quot;:{},&quot;slaveDelay&quot;:0,&quot;votes&quot;:1},{&quot;_id&quot;:2,&quot;host&quot;:&quot;williams-ubuntu:35022&quot;,&quot;arbiterOnly&quot;:false,&quot;buildIndexes&quot;:true,&quot;hidden&quot;:false,&quot;priority&quot;:1.0,&quot;tags&quot;:{},&quot;slaveDelay&quot;:0,&quot;votes&quot;:1}],&quot;settings&quot;:{&quot;chainingAllowed&quot;:true,&quot;heartbeatIntervalMillis&quot;:2000,&quot;heartbeatTimeoutSecs&quot;:10,&quot;electionTimeoutMillis&quot;:10000,&quot;catchUpTimeoutMillis&quot;:-1,&quot;catchUpTakeoverDelayMillis&quot;:30000,&quot;getLastErrorModes&quot;:{},&quot;getLastErrorDefaults&quot;:{&quot;w&quot;:1,&quot;wtimeout&quot;:0},&quot;replicaSetId&quot;:{&quot;$oid&quot;:&quot;5ea9a67f6e42ae882fb59e46&quot;}}}}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.932-0400 d35022| 2020-04-29T12:08:31.932-04:00 I  REPL     [conn15] Scheduling heartbeat to fetch a newer config{&quot;configTerm&quot;:2,&quot;configVersion&quot;:3,&quot;senderHost&quot;:&quot;williams-ubuntu:35021&quot;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.935-0400 d35020| 2020-04-29T12:08:31.935-04:00 I  REPL     [ReplCoord-1] New replica set config in use{&quot;config&quot;:{&quot;_id&quot;:&quot;learn_new_primary&quot;,&quot;version&quot;:3,&quot;term&quot;:2,&quot;protocolVersion&quot;:1,&quot;writeConcernMajorityJournalDefault&quot;:true,&quot;members&quot;:[{&quot;_id&quot;:0,&quot;host&quot;:&quot;williams-ubuntu:35020&quot;,&quot;arbiterOnly&quot;:false,&quot;buildIndexes&quot;:true,&quot;hidden&quot;:false,&quot;priority&quot;:1.0,&quot;tags&quot;:{},&quot;slaveDelay&quot;:0,&quot;votes&quot;:1},{&quot;_id&quot;:1,&quot;host&quot;:&quot;williams-ubuntu:35021&quot;,&quot;arbiterOnly&quot;:false,&quot;buildIndexes&quot;:true,&quot;hidden&quot;:false,&quot;priority&quot;:1.0,&quot;tags&quot;:{},&quot;slaveDelay&quot;:0,&quot;votes&quot;:1},{&quot;_id&quot;:2,&quot;host&quot;:&quot;williams-ubuntu:35022&quot;,&quot;arbiterOnly&quot;:false,&quot;buildIndexes&quot;:true,&quot;hidden&quot;:false,&quot;priority&quot;:1.0,&quot;tags&quot;:{},&quot;slaveDelay&quot;:0,&quot;votes&quot;:1}],&quot;settings&quot;:{&quot;chainingAllowed&quot;:true,&quot;heartbeatIntervalMillis&quot;:2000,&quot;heartbeatTimeoutSecs&quot;:10,&quot;electionTimeoutMillis&quot;:10000,&quot;catchUpTimeoutMillis&quot;:-1,&quot;catchUpTakeoverDelayMillis&quot;:30000,&quot;getLastErrorModes&quot;:{},&quot;getLastErrorDefaults&quot;:{&quot;w&quot;:1,&quot;wtimeout&quot;:0},&quot;replicaSetId&quot;:{&quot;$oid&quot;:&quot;5ea9a67f6e42ae882fb59e46&quot;}}}}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.935-0400 d35022| 2020-04-29T12:08:31.935-04:00 I  REPL     [ReplCoord-4] New replica set config in use{&quot;config&quot;:{&quot;_id&quot;:&quot;learn_new_primary&quot;,&quot;version&quot;:3,&quot;term&quot;:2,&quot;protocolVersion&quot;:1,&quot;writeConcernMajorityJournalDefault&quot;:true,&quot;members&quot;:[{&quot;_id&quot;:0,&quot;host&quot;:&quot;williams-ubuntu:35020&quot;,&quot;arbiterOnly&quot;:false,&quot;buildIndexes&quot;:true,&quot;hidden&quot;:false,&quot;priority&quot;:1.0,&quot;tags&quot;:{},&quot;slaveDelay&quot;:0,&quot;votes&quot;:1},{&quot;_id&quot;:1,&quot;host&quot;:&quot;williams-ubuntu:35021&quot;,&quot;arbiterOnly&quot;:false,&quot;buildIndexes&quot;:true,&quot;hidden&quot;:false,&quot;priority&quot;:1.0,&quot;tags&quot;:{},&quot;slaveDelay&quot;:0,&quot;votes&quot;:1},{&quot;_id&quot;:2,&quot;host&quot;:&quot;williams-ubuntu:35022&quot;,&quot;arbiterOnly&quot;:false,&quot;buildIndexes&quot;:true,&quot;hidden&quot;:false,&quot;priority&quot;:1.0,&quot;tags&quot;:{},&quot;slaveDelay&quot;:0,&quot;votes&quot;:1}],&quot;settings&quot;:{&quot;chainingAllowed&quot;:true,&quot;heartbeatIntervalMillis&quot;:2000,&quot;heartbeatTimeoutSecs&quot;:10,&quot;electionTimeoutMillis&quot;:10000,&quot;catchUpTimeoutMillis&quot;:-1,&quot;catchUpTakeoverDelayMillis&quot;:30000,&quot;getLastErrorModes&quot;:{},&quot;getLastErrorDefaults&quot;:{&quot;w&quot;:1,&quot;wtimeout&quot;:0},&quot;replicaSetId&quot;:{&quot;$oid&quot;:&quot;5ea9a67f6e42ae882fb59e46&quot;}}}}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.935-0400 d35022| 2020-04-29T12:08:31.935-04:00 I  REPL     [ReplCoord-3] Member is in new state{&quot;hostAndPort&quot;:&quot;williams-ubuntu:35020&quot;,&quot;newState&quot;:&quot;SECONDARY&quot;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:08:31.936-0400 d35022| 2020-04-29T12:08:31.935-04:00 I  REPL     [ReplCoord-0] Member is in new state{&quot;hostAndPort&quot;:&quot;williams-ubuntu:35021&quot;,&quot;newState&quot;:&quot;PRIMARY&quot;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;After 35021 gets elected primary, it increments its config term via reconfig, and will also &lt;a href=&quot;https://github.com/mongodb/mongo/blob/18edfccc4083d80b8a289f2fec161c18b94be350/src/mongo/db/repl/replication_coordinator_impl.cpp#L4454&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;re-schedule heartbeats&lt;/a&gt;, which we do on every reconfig. When the secondary 35022 receives one of these new heartbeats with a newer config than its own, it will also &lt;a href=&quot;https://github.com/mongodb/mongo/blob/18edfccc4083d80b8a289f2fec161c18b94be350/src/mongo/db/repl/replication_coordinator_impl.cpp#L5136-L5149&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;immediately schedule a heartbeat&lt;/a&gt; to the new primary. In response to this immediate heartbeat it will learn of the new primary&apos;s state, which we see in the logs with the &quot;Member is in new state&quot; messages. &lt;/p&gt;

&lt;p&gt;We can further verify this by removing the reconfig on step up and measuring the time to learn of the new primary. If we comment out &lt;a href=&quot;https://github.com/mongodb/mongo/blob/18edfccc4083d80b8a289f2fec161c18b94be350/src/mongo/db/repl/replication_coordinator_impl.cpp#L1181-L1201&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this code block&lt;/a&gt; and run the same test for 5 runs, we see the following stats:&lt;/p&gt;


&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:15:51.923-0400 [jsTest] Node 2 took 1986ms to learn of new primary.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:15:57.181-0400 [jsTest] Node 2 took 1985ms to learn of new primary.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:16:00.306-0400 [jsTest] Node 2 took 12ms to learn of new primary.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:16:05.623-0400 [jsTest] Node 2 took 1993ms to learn of new primary.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[js_test:learn_new_primary] 2020-04-29T12:16:08.624-0400 [jsTest] Node 2 took 152ms to learn of new primary.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;which seems to make it clear that learning of a new primary can be bottlenecked on the heartbeat interval (2000ms). &lt;/p&gt;

&lt;p&gt;Even though it appears that in practice (based on these simple tests, at least), secondaries may not be slow to learn of a new primary in versions &amp;gt;= 4.4, I think it&apos;s probably still valuable to implement this change, since we don&apos;t want to rely on the unrelated reconfig on step up behavior to ensure that secondaries learn of new primaries quickly. Also, it can be a valuable improvement for older branches where we don&apos;t do this reconfig i.e. v4.2, v4.0, etc.&lt;/p&gt;

</comment>
                            <comment id="3059284" author="siyuan.zhou@10gen.com" created="Tue, 28 Apr 2020 19:11:31 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=william.schultz&quot; class=&quot;user-hover&quot; rel=&quot;william.schultz&quot;&gt;william.schultz&lt;/a&gt; the alternative sounds good to me.&lt;/p&gt;</comment>
                            <comment id="3057195" author="william.schultz" created="Mon, 27 Apr 2020 18:35:18 +0000"  >&lt;p&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; The original (reverted) implementation of this ticket added a &apos;primaryId&apos; field to heartbeat requests and changed the behavior so that we would restart heartbeats &lt;a href=&quot;https://github.com/mongodb/mongo/commit/994fdd99bb6adb2cf9c7dd4061c2035188c2c8da#diff-0309ac14fcb79e4e7df819103ab23254R4172-R4183&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;upon receiving a heartbeat request&lt;/a&gt; from a node N whose &apos;primaryId&apos; is N and is different from the receiving node&apos;s current view of the primary i.e. its &apos;currentPrimaryIndex&apos;. &lt;/p&gt;

&lt;p&gt;An alternative that seems a potentially more focused solution would be to directly update our view of the current primary when receiving such a heartbeat request instead of re-scheduling all heartbeats. I think that we should only update our view of the primary if the sender node is primary and the term of the heartbeat request is &amp;gt;= our own, to prevent updating our &apos;currentPrimaryIndex&apos; to a stale primary. Did you have any other thoughts on an alternative solution here?&lt;/p&gt;</comment>
                            <comment id="2876305" author="xgen-internal-githook" created="Thu, 13 Feb 2020 13:12:55 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;rtimmons&apos;, &apos;name&apos;: &apos;Ryan Timmons&apos;, &apos;email&apos;: &apos;ryan.timmons@mongodb.com&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29030&quot; title=&quot;Announce new primary via heartbeat requests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29030&quot;&gt;&lt;del&gt;SERVER-29030&lt;/del&gt;&lt;/a&gt; Announce new primary via heartbeat requests&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 994fdd99bb6adb2cf9c7dd4061c2035188c2c8da.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/bc9eb303c38102f8e50f18e9506ef9f8d3ff19b1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/bc9eb303c38102f8e50f18e9506ef9f8d3ff19b1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2875306" author="xgen-internal-githook" created="Wed, 12 Feb 2020 23:07:06 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Ryan Timmons&apos;, &apos;username&apos;: &apos;rtimmons&apos;, &apos;email&apos;: &apos;ryan.timmons@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29030&quot; title=&quot;Announce new primary via heartbeat requests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29030&quot;&gt;&lt;del&gt;SERVER-29030&lt;/del&gt;&lt;/a&gt; Announce new primary via heartbeat requests&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/994fdd99bb6adb2cf9c7dd4061c2035188c2c8da&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/994fdd99bb6adb2cf9c7dd4061c2035188c2c8da&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2483731" author="siyuan.zhou@10gen.com" created="Tue, 15 Oct 2019 20:37:21 +0000"  >&lt;p&gt;We could also have secondaries restart heartbeat&#160;immediately on receiving heartbeats from the new primary as&#160;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/6a2c556dfaed34e641b64469d1de34dc88d36ec9/src/mongo/db/repl/replication_coordinator_impl.cpp#L3811-L3827&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;we do for other cases&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1062020">SERVER-45264</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="326364">SERVER-26746</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1348746">SERVER-48157</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1442355">SERVER-50318</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1351575">SERVER-48219</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="258011" name="learn_new_primary.js" size="1171" author="william.schultz@mongodb.com" created="Wed, 29 Apr 2020 16:06:11 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="18953"><![CDATA[v4.4]]></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, 16 Jan 2020 19:30:16 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 3 weeks, 6 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_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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1719</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>
                            3 years, 3 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>25.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>lingzhi.deng@mongodb.com</customfieldvalue>
            <customfieldvalue>siyuan.zhou@mongodb.com</customfieldvalue>
            <customfieldvalue>william.schultz@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht6pk7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr5o7b:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="3575">Repl 2020-02-10</customfieldvalue>
    <customfieldvalue id="3881">Repl 2020-05-04</customfieldvalue>
    <customfieldvalue id="3882">Repl 2020-05-18</customfieldvalue>
    <customfieldvalue id="3934">Repl 2020-06-01</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|hriw8v:</customfieldvalue>

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