<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:20:39 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-49732] Change _currentCommittedSnapshot to be an OpTime instead of OpTimeAndWallTime</title>
                <link>https://jira.mongodb.org/browse/SERVER-49732</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Right now, the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9238911d0a46f26419ecdbec4293457b9e1a891d/src/mongo/db/repl/replication_coordinator_impl.h#L1598-L1601&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;_currentCommittedSnapshot&lt;/a&gt;, which is used as the optime for majority readers, is stored as an OpTimeAndWallTime type. After the removal of the stable optime candidates list in PM-1713, however, this value may no longer be sourced from a real oplog optime, so it may not have a &quot;real&quot; wall clock time. To work around this, we give it a dummy wall clock time &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9238911d0a46f26419ecdbec4293457b9e1a891d/src/mongo/db/repl/replication_coordinator_impl.cpp#L4945&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;when we construct it&lt;/a&gt;. The wall clock time of the committed snapshot shouldn&apos;t serve any functional purpose in the server, since &lt;a href=&quot;https://github.com/mongodb/mongo/blob/01f7c7a2e39c1c555347e23a28a7a6e8357ab5f2/src/mongo/db/storage/flow_control.cpp#L340-L341&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;flow control calculations&lt;/a&gt; use the lastCommittedOpTime. It is, however, &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9238911d0a46f26419ecdbec4293457b9e1a891d/src/mongo/db/repl/replication_coordinator_impl.cpp#L3000&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;still reported&lt;/a&gt; as the &lt;tt&gt;readConcernMajorityOpTime&lt;/tt&gt; in replSetGetStatus. If we determine that there is no significant value in reporting an accurate wall clock time for the readConcernMajorityOpTime, then we should be able to convert the currentCommittedSnapshot to an OpTime type, to prevent confusion in the code. &lt;/p&gt;

&lt;p&gt;Note that the committed snapshot was originally converted to include a wall clock time in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34598&quot; title=&quot;Add millisecond-granularity wallclock times for the various metrics in replSetGetStatus&amp;#39;s optimes subdocument&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34598&quot;&gt;&lt;del&gt;SERVER-34598&lt;/del&gt;&lt;/a&gt;. Presumably having lastApplied/lastDurable and the lastCommittedOpTime with wall clock information in replSetGetStatus should still be sufficient to satisfy that ticket&apos;s goals.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1414730">SERVER-49732</key>
            <summary>Change _currentCommittedSnapshot to be an OpTime instead of OpTimeAndWallTime</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="tess.avitabile@mongodb.com">Tess Avitabile</assignee>
                                    <reporter username="william.schultz@mongodb.com">William Schultz</reporter>
                        <labels>
                    </labels>
                <created>Mon, 20 Jul 2020 14:39:56 +0000</created>
                <updated>Sun, 29 Oct 2023 22:05:34 +0000</updated>
                            <resolved>Fri, 31 Jul 2020 14:22:37 +0000</resolved>
                                                    <fixVersion>4.7.0</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3315564" author="xgen-internal-githook" created="Fri, 31 Jul 2020 14:17:14 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Tess Avitabile&apos;, &apos;email&apos;: &apos;tess.avitabile@mongodb.com&apos;, &apos;username&apos;: &apos;tessavitabile&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-49732&quot; title=&quot;Change _currentCommittedSnapshot to be an OpTime instead of OpTimeAndWallTime&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-49732&quot;&gt;&lt;del&gt;SERVER-49732&lt;/del&gt;&lt;/a&gt; Change _currentCommittedSnapshot to be an OpTime instead of an OpTimeAndWallTime&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d838d1245d913970685928ae94c906b2deb5db4e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d838d1245d913970685928ae94c906b2deb5db4e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3315505" author="tess.avitabile" created="Fri, 31 Jul 2020 13:48:56 +0000"  >&lt;p&gt;This patch removes the &lt;tt&gt;readConcernMajorityWallTime&lt;/tt&gt; field from the &lt;tt&gt;replSetGetStatus&lt;/tt&gt; output, since this value is no longer tracked by the server. The value was roughly the minimum of &lt;tt&gt;lastCommittedWallTime&lt;/tt&gt; and &lt;tt&gt;lastAppliedWallTime&lt;/tt&gt; (which is just &lt;tt&gt;lastCommittedWallTime&lt;/tt&gt; on a primary), so that value can be used as a substitute in calculations, such as for figuring out majority commit point lag.&lt;/p&gt;</comment>
                            <comment id="3293117" author="maria.vankeulen" created="Mon, 20 Jul 2020 18:50:55 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=bruce.lucas&quot; class=&quot;user-hover&quot; rel=&quot;bruce.lucas&quot;&gt;bruce.lucas&lt;/a&gt; Yup, Flow Control uses the lastCommitted wall clock time for its lag calculations.&lt;/p&gt;</comment>
                            <comment id="3293073" author="bruce.lucas@10gen.com" created="Mon, 20 Jul 2020 18:38:33 +0000"  >&lt;p&gt;I&apos;m a little surprised to learn that flow control uses lastCommittedOptime and not readConcernMajorityOptime, but probably that&apos;s just due to my vague understanding of the difference between the two. &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 confirm?&lt;/p&gt;

&lt;p&gt;Beyond that for diagnostic purposes we look at readConcernMajorityOptime lag to understand cache pressure, flow control, etc. and it&apos;s sometimes nice to have a wall-clock time for that for higher precision. However if the number that&apos;s currently reported there is not really the correct number and you want to remove it that doesn&apos;t seem unreasonable, and we can look at lastCommittedOptime wall clock time instead.&lt;/p&gt;</comment>
                            <comment id="3292875" author="william.schultz" created="Mon, 20 Jul 2020 17:17:39 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=bruce.lucas&quot; class=&quot;user-hover&quot; rel=&quot;bruce.lucas&quot;&gt;bruce.lucas&lt;/a&gt; Do you know of anyone (or any tool) that relies on the wall clock time of the &lt;tt&gt;readConcernMajorityOpTime&lt;/tt&gt; field from replSetGetStatus?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1333350">SERVER-47845</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="531844">SERVER-34598</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1416115">SERVER-49777</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>5.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="10011"><![CDATA[Minor Change]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 20 Jul 2020 18:38:33 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 27 weeks, 5 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_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, 27 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>bruce.lucas@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>maria.vankeulen@mongodb.com</customfieldvalue>
            <customfieldvalue>tess.avitabile@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|hxvq8n:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hximbb:</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="4139">Repl 2020-08-10</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|hxvchz:</customfieldvalue>

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