<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:15:27 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-27543] Create new metadata for oplog queries</title>
                <link>https://jira.mongodb.org/browse/SERVER-27543</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Oplog queries require different metadata from heartbeats. There are fields that each need that the other doesn&apos;t, and there are fields that one should consider that the other should not. As we are defining the role that each of these commands play in the replication process, the metadata that each replication command carries must be clarified as well. We will now have ReplSetMetadata with &lt;tt&gt;$replData&lt;/tt&gt; like we have now, but we will add in a new OplogQueryMetadata with &lt;tt&gt;$oplogQueryData&lt;/tt&gt;. The OplogQueryMetadata can have the primaryIndex, the lastOpCommitted, the syncSourceIndex, the lastOpApplied, and the rbid from after the query. The OplogFetcher will then request both types of metadata. For backwards compatibility we need to keep ReplSetMetadata the same as it is now, but in the future (3.8) we can strip it down to term, configVersion, replsetID, and lastOpCommitted (as long as sharding needs it outside of oplog querying), to deduplicate the fields in OplogQueryMetadata only needed for oplog querying. We will keep having the OplogFetcher request both types of metadata since it needs fields from both. We are only removing fields that other commands like heartbeating do not need.&lt;/p&gt;</description>
                <environment></environment>
        <key id="341625">SERVER-27543</key>
            <summary>Create new metadata for oplog queries</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="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="judah.schvimer@mongodb.com">Judah Schvimer</assignee>
                                    <reporter username="spencer@mongodb.com">Spencer Brody</reporter>
                        <labels>
                    </labels>
                <created>Thu, 29 Dec 2016 20:52:07 +0000</created>
                <updated>Fri, 7 Apr 2017 02:03:30 +0000</updated>
                            <resolved>Wed, 15 Feb 2017 16:52:10 +0000</resolved>
                                                    <fixVersion>3.4.4</fixVersion>
                    <fixVersion>3.5.4</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="1542619" author="xgen-internal-githook" created="Thu, 6 Apr 2017 15:26:10 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;judahschvimer&apos;, u&apos;name&apos;: u&apos;Judah Schvimer&apos;, u&apos;email&apos;: u&apos;judah@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27543&quot; title=&quot;Create new metadata for oplog queries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27543&quot;&gt;&lt;del&gt;SERVER-27543&lt;/del&gt;&lt;/a&gt; Process OplogQueryMetadata with backwards and forwards compatibility&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 7284884f3d8f3cf1d1489579180c2637efcc42b2)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d453e01da24dc03cb67f17e46b5ced9dbe947fbb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d453e01da24dc03cb67f17e46b5ced9dbe947fbb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1542618" author="xgen-internal-githook" created="Thu, 6 Apr 2017 15:26:09 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;judahschvimer&apos;, u&apos;name&apos;: u&apos;Judah Schvimer&apos;, u&apos;email&apos;: u&apos;judah@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27543&quot; title=&quot;Create new metadata for oplog queries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27543&quot;&gt;&lt;del&gt;SERVER-27543&lt;/del&gt;&lt;/a&gt; send OplogQueryMetadata with OplogFetcher queries&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 859dfb093328ae9129f18952df4f25b123977a38)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/cbe53c003584cae8efad1715aeac181c8f8d2eb7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/cbe53c003584cae8efad1715aeac181c8f8d2eb7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1542617" author="xgen-internal-githook" created="Thu, 6 Apr 2017 15:26:08 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;judahschvimer&apos;, u&apos;name&apos;: u&apos;Judah Schvimer&apos;, u&apos;email&apos;: u&apos;judah@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27543&quot; title=&quot;Create new metadata for oplog queries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27543&quot;&gt;&lt;del&gt;SERVER-27543&lt;/del&gt;&lt;/a&gt; Create new metadata for oplog queries&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 8daf13374403272ace73340f25fce573fa36a55b)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/b4e4f6c70b4324b8e5ffd8f292922c201ed7c92d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/b4e4f6c70b4324b8e5ffd8f292922c201ed7c92d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1499442" author="xgen-internal-githook" created="Wed, 15 Feb 2017 16:50:57 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;judahschvimer&apos;, u&apos;name&apos;: u&apos;Judah Schvimer&apos;, u&apos;email&apos;: u&apos;judah@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27543&quot; title=&quot;Create new metadata for oplog queries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27543&quot;&gt;&lt;del&gt;SERVER-27543&lt;/del&gt;&lt;/a&gt; Process OplogQueryMetadata with backwards and forwards compatibility&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/7284884f3d8f3cf1d1489579180c2637efcc42b2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/7284884f3d8f3cf1d1489579180c2637efcc42b2&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1481260" author="xgen-internal-githook" created="Fri, 20 Jan 2017 15:12:33 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;judahschvimer&apos;, u&apos;name&apos;: u&apos;Judah Schvimer&apos;, u&apos;email&apos;: u&apos;judah@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27543&quot; title=&quot;Create new metadata for oplog queries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27543&quot;&gt;&lt;del&gt;SERVER-27543&lt;/del&gt;&lt;/a&gt; send OplogQueryMetadata with OplogFetcher queries&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/859dfb093328ae9129f18952df4f25b123977a38&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/859dfb093328ae9129f18952df4f25b123977a38&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1475755" author="xgen-internal-githook" created="Thu, 12 Jan 2017 18:19:11 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;judahschvimer&apos;, u&apos;name&apos;: u&apos;Judah Schvimer&apos;, u&apos;email&apos;: u&apos;judah@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27543&quot; title=&quot;Create new metadata for oplog queries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27543&quot;&gt;&lt;del&gt;SERVER-27543&lt;/del&gt;&lt;/a&gt; Create new metadata for oplog queries&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8daf13374403272ace73340f25fce573fa36a55b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8daf13374403272ace73340f25fce573fa36a55b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1473044" author="misha.tyulenev" created="Mon, 9 Jan 2017 21:43:25 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=spencer&quot; class=&quot;user-hover&quot; rel=&quot;spencer&quot;&gt;spencer&lt;/a&gt; Im leaning towards adding a separate metadata for this value in 3.6. $replData has several fields related to repl only and its turned on by request. The new metadata will be always present in the OP_COMMANDREPLY for read or write commands and will has only one field.&lt;br/&gt;
If this will be accepted in the design then it can be deprecated from the $replData.&lt;/p&gt;</comment>
                            <comment id="1472798" author="spencer" created="Mon, 9 Jan 2017 17:51:07 +0000"  >&lt;p&gt;Looks like we use lastOpVisible in exactly once place (outside of logging) and that&apos;s for deciding whether to re-evaluate our sync source: &lt;a href=&quot;https://github.com/mongodb/mongo/blob/cdc7af4c6d453b8c1ce2319d0cd3b50074609d87/src/mongo/db/repl/topology_coordinator_impl.cpp#L2447&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/cdc7af4c6d453b8c1ce2319d0cd3b50074609d87/src/mongo/db/repl/topology_coordinator_impl.cpp#L2447&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using the last applied optime there rather than the current definition of lastOpVisible would probably be totally fine (and arguably more correct), but I don&apos;t think we would want to remove that part of the check entirely.  So I see the options as 1) do nothing 2) Change the meaning of the lastOpVisible field (yet again) to mean last applied op (removing the max-ing with last client optime) 3) add a new field to the ReplSetMetadata lastOpApplied, stop using lastOpVisible in 3.6, remove it in 3.8.&lt;/p&gt;

&lt;p&gt;I&apos;m currently leaning towards option 3, though I&apos;d like to confirm with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=misha.tyulenev&quot; class=&quot;user-hover&quot; rel=&quot;misha.tyulenev&quot;&gt;misha.tyulenev&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kaloian.manassiev&quot; class=&quot;user-hover&quot; rel=&quot;kaloian.manassiev&quot;&gt;kaloian.manassiev&lt;/a&gt; whether lastOpVisible with its current semantics is needed for the Causal Consistency work.&lt;/p&gt;</comment>
                            <comment id="1467278" author="siyuan.zhou@10gen.com" created="Fri, 30 Dec 2016 22:37:39 +0000"  >&lt;p&gt;I changed the uses of lastVisibleOpTime in sharding to lastCommittedOpTime in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-24630&quot; title=&quot;Mongos erroneously advances config optime for writes that fail write concern&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-24630&quot;&gt;&lt;del&gt;SERVER-24630&lt;/del&gt;&lt;/a&gt;, so I think we are fine.&lt;/p&gt;</comment>
                            <comment id="1467274" author="judah.schvimer" created="Fri, 30 Dec 2016 22:28:41 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-21059&quot; title=&quot;Need to ensure that we never update the ShardRegistry&amp;#39;s config OpTime to a visible but uncommitted OpTime&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-21059&quot;&gt;&lt;del&gt;SERVER-21059&lt;/del&gt;&lt;/a&gt; changed lastVisibleOpTime from the above description to its current form. We need to make sure we do not create a regression there.&lt;/p&gt;</comment>
                            <comment id="1467272" author="siyuan.zhou@10gen.com" created="Fri, 30 Dec 2016 22:21:00 +0000"  >&lt;p&gt;Following up Misha&apos;s suggestion, here is the spec of lastOpVisible:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As part of the response to a read or write command, metadata can be returned that provides an optime that can be useful in subsequent readAfterOpTime reads.  This optime, &#8220;lastVisibleOpTime&#8221;, will indicate an optime of certain provenance, depending on the properties of the read or write command that produced it:&lt;/p&gt;

&lt;p&gt;read with readConcern level majority:&lt;br/&gt;
lastVisibleOpTime is the optime of the last op in the oplog, in the snapshot blessed as &#8216;committed&#8217;.&lt;/p&gt;

&lt;p&gt;read with readConcern level local:&lt;br/&gt;
lastVisibleOpTime is the optime of the last op in the oplog.&lt;/p&gt;

&lt;p&gt;write with writeConcern majority:&lt;br/&gt;
lastVisibleOpTime is the optime of the write (if successful) or the previous successful write at the time the write was determined to have failed or a no-op.  This operation waits for the op with the lastVisibleOpTime to replicate and sync to disk to a majority of nodes and for the primary to bless a snapshot with that op as &#8216;committed&#8217;; this allows a subsequent readConcern level majority read on the same primary node to read the data without any need to supply a readAfterOpTime.&lt;/p&gt;

&lt;p&gt;write with any writeConcern other than majority:&lt;br/&gt;
lastVisibleOpTime is the same as described for writeConcern majority, except that the operation does not wait for disk syncing or the blessing of a snapshot.&lt;/p&gt;&lt;/blockquote&gt;</comment>
                            <comment id="1467270" author="siyuan.zhou@10gen.com" created="Fri, 30 Dec 2016 22:16:01 +0000"  >&lt;p&gt;We used lastOpVisible in several places and always assume it&apos;s the last applied optime. Probably, we can just change it from max(the last client optime, the last committed snapshot) to max(the last client optime, the last applied) to match its name.&lt;/p&gt;

&lt;p&gt;Here&apos;re all the places where we use lastOpVisible, excluding tests and mocks.&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;mongo/mongo/src/mongo/db/repl&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;data_replicator_external_state_impl.cpp&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;- DataReplicatorExternalStateImpl::shouldStopFetching, line 75:  &amp;lt;&amp;lt; source &amp;lt;&amp;lt; &quot;, OpTime &quot; &amp;lt;&amp;lt; metadata.getLastOpVisible()&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;WithSyncSourceHavingNoSyncSourceStopsTheOplogFetcher::_doTest, line 724:  ASSERT_EQUALS(metadata.getLastOpVisible(), dataReplicatorExternalState-&amp;gt;syncSourceLastOpTime);&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;&amp;nbsp;&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;oplog_fetcher.cpp&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;- OplogFetcher::_callback, line 514:  &amp;lt;&amp;lt; metadata.getLastOpVisible().toString()&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;&amp;nbsp;&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;topology_coordinator_impl.cpp&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;- TopologyCoordinatorImpl::shouldChangeSyncSource, line 2439:  std::max(metadata.getLastOpVisible(), _hbdata.at(currentSourceIndex).getAppliedOpTime());&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;With this change, &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27403&quot; title=&quot;Consider term and rbid when validating the proposed sync source&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27403&quot;&gt;&lt;del&gt;SERVER-27403&lt;/del&gt;&lt;/a&gt; could be fixed in an easier way, but we need to extra work to support multiversion, either by requiring minimal old version to upgrade or by falling back to other ways to detect rollback.&lt;/p&gt;</comment>
                            <comment id="1467265" author="misha.tyulenev" created="Fri, 30 Dec 2016 22:13:10 +0000"  >&lt;p&gt;Note: Causal Consistency (&lt;a href=&quot;https://goo.gl/wsJP91&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://goo.gl/wsJP91&lt;/a&gt;) design spec expect it to satisfy the &lt;a href=&quot;https://goo.gl/9cnVxh&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://goo.gl/9cnVxh&lt;/a&gt; spec&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="338476">SERVER-27403</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="345101">SERVER-27668</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="341660">SERVER-27545</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>13.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="14340"><![CDATA[v3.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>Fri, 30 Dec 2016 22:13:10 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 44 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_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>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 44 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>0.0</customfieldvalue>

                        </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>misha.tyulenev@mongodb.com</customfieldvalue>
            <customfieldvalue>siyuan.zhou@mongodb.com</customfieldvalue>
            <customfieldvalue>spencer@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht0agn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrb4jr:</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="1313">Repl 2017-01-23</customfieldvalue>
    <customfieldvalue id="1450">Repl 2017-02-13</customfieldvalue>
    <customfieldvalue id="1453">Repl 2017-03-06</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|hrzw6f:</customfieldvalue>

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