<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:22:05 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-29891] Roll Back to Checkpoint: Call setStableTimestamp() when commit point or last applied changes</title>
                <link>https://jira.mongodb.org/browse/SERVER-29891</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Every time a node advances its lastAppliedOpTime, the new optime will be added to a list of potential stable timestamps. The actual stable timestamp will be the greatest timestamp in this list that is less than or equal to the replication commit point. Timestamps can be removed from the list of &#8216;potential&#8217; stable timestamps after it is less than the current stable timestamp. i.e. when it is less than the replication commit point and there is at least one other timestamp in the list greater than it that is also less than or equal to the replication commit point.&lt;/p&gt;

&lt;p&gt;Setting the &apos;stable&apos; timestamp will tell WiredTiger what is a valid timestamp to take a checkpoint at.  &lt;/p&gt;</description>
                <environment></environment>
        <key id="398977">SERVER-29891</key>
            <summary>Roll Back to Checkpoint: Call setStableTimestamp() when commit point or last applied changes</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="william.schultz@mongodb.com">William Schultz</assignee>
                                    <reporter username="judah.schvimer@mongodb.com">Judah Schvimer</reporter>
                        <labels>
                    </labels>
                <created>Wed, 28 Jun 2017 17:08:27 +0000</created>
                <updated>Mon, 30 Oct 2023 23:15:38 +0000</updated>
                            <resolved>Wed, 9 Aug 2017 02:47:00 +0000</resolved>
                                                    <fixVersion>3.5.12</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="1657419" author="milkie" created="Fri, 25 Aug 2017 18:04:31 +0000"  >&lt;p&gt;After further discussion, Will is going to optimize the std\:\:set being used to track stable timestamp candidates, as we believe that is the cause of the current regression.  As it turns out, the code to actually tell WiredTiger about the stable timestamp is currently deactivated in the master branch.&lt;/p&gt;</comment>
                            <comment id="1657391" author="milkie" created="Fri, 25 Aug 2017 17:36:53 +0000"  >&lt;p&gt;After discussion, we (Dan and I) are going to run a perf patch with the optimization in the glue code to see what effect it has on the regression.&lt;/p&gt;</comment>
                            <comment id="1657379" author="daniel.gottlieb@10gen.com" created="Fri, 25 Aug 2017 17:25:06 +0000"  >&lt;p&gt;Storage is tracking these variables. Eric, do you think it&apos;s a sufficient optimization for WT glue to only pass the times along to WT proper when its advanced, or do you think replication making this calculation is preferable?&lt;/p&gt;</comment>
                            <comment id="1657334" author="milkie" created="Fri, 25 Aug 2017 16:37:04 +0000"  >&lt;p&gt;You&apos;re correct.  I talked with Spencer after I posted my comment, and I now have a refinement:  I think you can skip calling setStableTimestamp() when triggered by a lastAppliedOpTime change if the lastAppliedOpTime is ahead of (greater than) the current lastCommittedOpTime.&lt;br/&gt;
Even better would be if we remembered what the last call to setStableTimestamp did, and avoided calling it if the value didn&apos;t change from last time.&lt;/p&gt;</comment>
                            <comment id="1657316" author="william.schultz" created="Fri, 25 Aug 2017 16:09:06 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie&quot; class=&quot;user-hover&quot; rel=&quot;milkie&quot;&gt;milkie&lt;/a&gt; I&apos;m not sure that is correct. As far as I can tell, a particular node&apos;s &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d90fcb7446cd6b68273f588c67a41b98d5c38268/src/mongo/db/repl/topology_coordinator_impl.h#L465&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lastCommittedOpTime&lt;/a&gt; is computed &lt;a href=&quot;https://github.com/mongodb/mongo/blob/5f1ce8b6765a25d45ba5e35063db417b3069c8d6/src/mongo/db/repl/topology_coordinator_impl.cpp#L2723-L2753&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;based on the applied op times of all nodes in the replica set&lt;/a&gt; (its current knowledge of that data, at least). For a 3 node replica set, with nodes n0, n1, n2, consider the following:&lt;/p&gt;

&lt;p&gt;n0.appliedOpTime = 2&lt;br/&gt;
n1.appliedOpTime = 2&lt;br/&gt;
n2.appliedOpTime = 1&lt;/p&gt;

&lt;p&gt;n2.lastCommittedOpTime would be calculated as 2, while n2.appliedOpTime=1.&lt;/p&gt;</comment>
                            <comment id="1657093" author="milkie" created="Fri, 25 Aug 2017 12:29:23 +0000"  >&lt;p&gt;I don&apos;t see how the design is indicating that we should call setStableTimestamp() when the last applied optime changes.  I believe that it is actually impossible for the stable timestamp to change when the last applied optime changes, since the commit point cannot possibly be greater (later) than the last applied optime.&lt;/p&gt;</comment>
                            <comment id="1643730" author="xgen-internal-githook" created="Wed, 9 Aug 2017 02:44:11 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;will62794&apos;, &apos;email&apos;: &apos;william.schultz@mongodb.com&apos;, &apos;name&apos;: &apos;William Schultz&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29891&quot; title=&quot;Roll Back to Checkpoint: Call setStableTimestamp() when commit point or last applied changes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29891&quot;&gt;&lt;del&gt;SERVER-29891&lt;/del&gt;&lt;/a&gt; Call setStableTimestamp() when commit point or last applied optime changes&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c7661b14867cd058e1a67986b8e05a7020fc0a5e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c7661b14867cd058e1a67986b8e05a7020fc0a5e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1636905" author="william.schultz" created="Mon, 31 Jul 2017 21:29:06 +0000"  >&lt;p&gt;Codereview url:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://mongodbcr.appspot.com/151340001/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://mongodbcr.appspot.com/151340001/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1625804" author="judah.schvimer" created="Tue, 18 Jul 2017 22:53:25 +0000"  >&lt;p&gt;From the design doc: &lt;br/&gt;
Every time a node advances its lastAppliedOpTime, the new optime will be added to a list of potential stable timestamps.  The actual stable timestamp will be the greatest timestamp in this list that is less than or equal to the replication commit point.&lt;br/&gt;
Timestamps can be removed from the list of &#8216;potential&#8217; stable timestamps after it is less than the current stable timestamp.  I.E. when it is less than the replication commit point and there is at least one other timestamp in the list greater than it that is also less than or equal to the replication commit point.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="408230">SERVER-30309</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="383661">SERVER-29215</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="391252">SERVER-29494</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="420430">SERVER-30843</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="420445">SERVER-30845</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="415017">SERVER-30589</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="414627">SERVER-30577</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>9.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 31 Jul 2017 21:29:06 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 24 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-842</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>false</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>
                            6 years, 24 weeks, 5 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>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>judah.schvimer@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|hta1vb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr9qyf:</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="1768">Repl 2017-07-31</customfieldvalue>
    <customfieldvalue id="1769">Repl 2017-08-21</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|ht9nxr:</customfieldvalue>

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