<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:53:58 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-40078] Add wall clock time corresponding to lastCommitted optime to optimes subdocument</title>
                <link>https://jira.mongodb.org/browse/SERVER-40078</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This ticket is split out from &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;. &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40080&quot; title=&quot;Add lastApplied and lastDurable wall clock times to replSetGetStatus optimes subdocument&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40080&quot;&gt;&lt;del&gt;SERVER-40080&lt;/del&gt;&lt;/a&gt; will now be used to track the patch to include wall clock times corresponding to the lastApplied and lastDurable optimes only. The tasks required for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40080&quot; title=&quot;Add lastApplied and lastDurable wall clock times to replSetGetStatus optimes subdocument&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40080&quot;&gt;&lt;del&gt;SERVER-40080&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40078&quot; title=&quot;Add wall clock time corresponding to lastCommitted optime to optimes subdocument&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40078&quot;&gt;&lt;del&gt;SERVER-40078&lt;/del&gt;&lt;/a&gt; are different, and the lastApplied/lastDurable changes are sufficiently complex on their own.&lt;/p&gt;

&lt;p&gt;The current plan for implementing this follows. Since &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40080&quot; title=&quot;Add lastApplied and lastDurable wall clock times to replSetGetStatus optimes subdocument&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40080&quot;&gt;&lt;del&gt;SERVER-40080&lt;/del&gt;&lt;/a&gt; allows each member of a replica set to track its own last applied and last durable wall clock times, they can communicate this information to the primary similarly to how they communicate their OpTime information (i.e., through &lt;tt&gt;replSetUpdatePosition&lt;/tt&gt;, heartbeats, etc.) so the majority committed wall clock time can be calculated similarly to the way the majority committed OpTime is calculated.&lt;/p&gt;</description>
                <environment></environment>
        <key id="714882">SERVER-40078</key>
            <summary>Add wall clock time corresponding to lastCommitted optime to optimes subdocument</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="13201">Fixed</resolution>
                                        <assignee username="maria.vankeulen@mongodb.com">Maria van Keulen</assignee>
                                    <reporter username="maria.vankeulen@mongodb.com">Maria van Keulen</reporter>
                        <labels>
                            <label>todo_in_code</label>
                    </labels>
                <created>Mon, 11 Mar 2019 19:19:39 +0000</created>
                <updated>Sun, 29 Oct 2023 22:23:03 +0000</updated>
                            <resolved>Tue, 16 Apr 2019 21:22:28 +0000</resolved>
                                                    <fixVersion>4.1.11</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="2216888" author="maria.vankeulen" created="Wed, 17 Apr 2019 18:43:54 +0000"  >&lt;p&gt;commit url: &lt;a href=&quot;https://github.com/mongodb/mongo/commit/a738647a7281a892f1b35fba8b4e1cdf47bccf56&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/a738647a7281a892f1b35fba8b4e1cdf47bccf56&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2192688" author="maria.vankeulen" created="Wed, 27 Mar 2019 00:01:52 +0000"  >&lt;p&gt;I am splitting out the work for adding the &lt;tt&gt;readConcernMajority&lt;/tt&gt; wall clock time into &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40353&quot; title=&quot;Add wall clock time corresponding to readConcernMajority OpTime to optimes subdocument&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40353&quot;&gt;&lt;del&gt;SERVER-40353&lt;/del&gt;&lt;/a&gt;, since the patch to add the &lt;tt&gt;lastCommitted&lt;/tt&gt; wall clock time is sufficiently complex on its own.&lt;/p&gt;</comment>
                            <comment id="2185744" author="maria.vankeulen" created="Tue, 19 Mar 2019 23:39:00 +0000"  >&lt;p&gt;I&apos;ve updated the ticket description with our current proposed solution.&lt;/p&gt;</comment>
                            <comment id="2181738" author="maria.vankeulen" created="Fri, 15 Mar 2019 14:50:12 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=schwerin&quot; class=&quot;user-hover&quot; rel=&quot;schwerin&quot;&gt;schwerin&lt;/a&gt; I have a concern that threading wall time information through heartbeats as well as everywhere else the commit point can get updated, let alone introducing the upgrade/downgrade dependency, will make this ticket quite complex to both implement and test. I will spend some time scoping out what&apos;s necessary for this work so we can reach a decision on how to proceed.&lt;/p&gt;</comment>
                            <comment id="2181293" author="schwerin" created="Thu, 14 Mar 2019 22:00:13 +0000"  >&lt;p&gt;Other than risk in the work, is there harm in using a solution that has upgrade/downgrade dependencies? I am not thrilled about having a data structure in memory whose size grows with the replication lag. Less so when that data structure also gets lost on process restart.&lt;/p&gt;</comment>
                            <comment id="2180893" author="matthew.russotto" created="Thu, 14 Mar 2019 15:58:40 +0000"  >&lt;p&gt;Unfortunately, &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34728&quot; title=&quot;Heartbeats are used to advance replication commit point&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34728&quot;&gt;&lt;del&gt;SERVER-34728&lt;/del&gt;&lt;/a&gt; notes that we do fill out this information from heartbeats.&lt;/p&gt;</comment>
                            <comment id="2180809" author="maria.vankeulen" created="Thu, 14 Mar 2019 14:49:17 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=schwerin&quot; class=&quot;user-hover&quot; rel=&quot;schwerin&quot;&gt;schwerin&lt;/a&gt; IIUC, the primary&apos;s information on other nodes&apos; last applied and last durable optimes can be updated via heartbeat responses from those nodes in addition to via &lt;tt&gt;replSetUpdatePosition&lt;/tt&gt;. We would like to avoid having to make modifications to heartbeat responses for the purposes of this patch, since this would introduce an upgrade/downgrade dependency on this work. For &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40080&quot; title=&quot;Add lastApplied and lastDurable wall clock times to replSetGetStatus optimes subdocument&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40080&quot;&gt;&lt;del&gt;SERVER-40080&lt;/del&gt;&lt;/a&gt;, we only update a member&apos;s own last applied and last durable wall clock times and do not transmit this information between nodes.&lt;/p&gt;

&lt;p&gt;Is it possible to determine the last committed wall clock time from &lt;tt&gt;replSetUpdatePosition&lt;/tt&gt; without information obtained from heartbeats?&lt;/p&gt;

&lt;p&gt;CC &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=matthew.russotto&quot; class=&quot;user-hover&quot; rel=&quot;matthew.russotto&quot;&gt;matthew.russotto&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2180509" author="schwerin" created="Thu, 14 Mar 2019 05:19:17 +0000"  >&lt;p&gt;I had imagined that we would just decorate the MemberData in the TopologyCoordinator for each node with the wall clock time corresponding to that node&#8217;s &#8220;last applied&#8221; and &#8220;last durable&#8221; timestamps. That data is easily transmitted as part of &lt;tt&gt;replSetUpdatePosition&lt;/tt&gt;. Then, you can compute the wall time corresponding to the majority commit optime trivially as part of computing the majority commit optime.&lt;/p&gt;

&lt;p&gt;Could a technique like this work?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="714944">SERVER-40080</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="531844">SERVER-34598</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="723672">SERVER-40353</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="739051">SERVER-40659</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="739994">SERVER-40683</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="741887">SERVER-40737</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="878858">SERVER-42485</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="935572">SERVER-43465</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.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="15640"><![CDATA[v4.0]]></customfieldvalue>
    <customfieldvalue key="15141"><![CDATA[v3.6]]></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, 14 Mar 2019 05:19:17 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 43 weeks ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-40080'>SERVER-40080</a></s>]]></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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-763</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            4 years, 43 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>schwerin@mongodb.com</customfieldvalue>
            <customfieldvalue>maria.vankeulen@mongodb.com</customfieldvalue>
            <customfieldvalue>matthew.russotto@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|huqhbz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr79xr:</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="2828">Storage NYC 2019-03-25</customfieldvalue>
    <customfieldvalue id="2829">Storage NYC 2019-04-08</customfieldvalue>
    <customfieldvalue id="2830">Storage NYC 2019-04-22</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|huq3lb:</customfieldvalue>

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