<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:41: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-35811] Pin stable timestamp behind the oldest prepareTimestamp</title>
                <link>https://jira.mongodb.org/browse/SERVER-35811</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;In order to complete this ticket, we will first need to build on the work done in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35873&quot; title=&quot;Maintain the oldest oplog entry timestamp of any active transaction&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35873&quot;&gt;&lt;del&gt;SERVER-35873&lt;/del&gt;&lt;/a&gt;. First, we should preserve OpTimes instead of Timestamps since we calculate the stable timestamp using OpTimes. Next, we want to keep a separate data structure that tracks all &quot;oldest oplog entry OpTimes&quot; for each transaction whose corresponding abort/commit oplog entry has not been majority committed. To do this, when we remove an &quot;oldest active OpTime&quot; from oldestActiveOplogEntryOpTimes, we will also add it to oldestActiveUncommittedOpTimes along with its corresponding &quot;finishOpTime&quot; (which is the OpTime of the commit/abort oplog entry).&lt;/p&gt;

&lt;p&gt;oldestActiveUncommittedOpTimes will be a set of OpTime pairs -&amp;gt; (oldest active OpTime per transaction, corresponding commit/abort oplog entry OpTime).&lt;/p&gt;

&lt;p&gt;This should be enough information to set the stable timestamp back to the &quot;oldest active OpTime of transactions whose corresponding commit/abort oplog entries have not been majority committed&quot;. Let&apos;s refer to this as the &quot;oldest active uncommitted txn OpTime&quot; for now. In ReplicationCoordinatorImpl, we have a function that calculates the stable OpTime. Instead of just calculating the min of the &quot;all committed timestamp&quot; and the current &quot;commit point,&quot; we will also add the &quot;oldest active uncommitted txn Timestamp&quot; to this comparison and take the min of all three.&lt;/p&gt;

&lt;p&gt;The last thing we need to do is properly remove an OpTime pair once the commit point advances past an entry&apos;s commit/abort oplog entry. This would mean that the entry is majority committed and we are able to move the stable timestamp.&lt;/p&gt;

&lt;p&gt;Since this code will be separate from the code maintaining the oldestActiveOpTime, it should be simpler to remove once we no longer need to hold the stable timestamp back. &lt;/p&gt;</description>
                <environment></environment>
        <key id="564361">SERVER-35811</key>
            <summary>Pin stable timestamp behind the oldest prepareTimestamp</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="pavithra.vetriselvan@mongodb.com">Pavithra Vetriselvan</assignee>
                                    <reporter username="greg.mckeon@mongodb.com">Gregory McKeon</reporter>
                        <labels>
                            <label>prepare_errors</label>
                    </labels>
                <created>Tue, 26 Jun 2018 15:56:29 +0000</created>
                <updated>Sun, 29 Oct 2023 22:30:23 +0000</updated>
                            <resolved>Tue, 6 Nov 2018 18:58:11 +0000</resolved>
                                                    <fixVersion>4.1.5</fixVersion>
                                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="2198107" author="xgen-internal-githook" created="Mon, 1 Apr 2019 18:24:19 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35811&quot; title=&quot;Pin stable timestamp behind the oldest prepareTimestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35811&quot;&gt;&lt;del&gt;SERVER-35811&lt;/del&gt;&lt;/a&gt; fix lint&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/83b3ca680119f3bfd991233ddf8b546b9c655949&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/83b3ca680119f3bfd991233ddf8b546b9c655949&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2198080" author="xgen-internal-githook" created="Mon, 1 Apr 2019 18:07:12 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;pvselvan@umich.edu&apos;, &apos;name&apos;: &apos;Pavi Vetriselvan&apos;, &apos;username&apos;: &apos;pvselvan&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35811&quot; title=&quot;Pin stable timestamp behind the oldest prepareTimestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35811&quot;&gt;&lt;del&gt;SERVER-35811&lt;/del&gt;&lt;/a&gt; disallow committing at the prepareTimestamp and pin stable TS before oldest uncommitted TS&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit b58420e57a2149c350ebf82815fe708850402296 and 33ac1afd4079e04d12554f9b79d1ab07426caf59.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e433a5aee915568cf73b05e89597903855ed1952&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e433a5aee915568cf73b05e89597903855ed1952&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2087094" author="pavithra.vetriselvan" created="Tue, 11 Dec 2018 16:07:11 +0000"  >&lt;p&gt;In addition to the two commits for this ticket, we will also have to revert the following tickets after we allow committing before the stable timestamp:&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38302&quot; title=&quot;Committing or aborting prepared transactions may fail to un-pin stable timestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38302&quot;&gt;&lt;del&gt;SERVER-38302&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2056435" author="xgen-internal-githook" created="Thu, 8 Nov 2018 19:45:40 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Pavi Vetriselvan&apos;, &apos;email&apos;: &apos;pvselvan@umich.edu&apos;, &apos;username&apos;: &apos;pvselvan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35811&quot; title=&quot;Pin stable timestamp behind the oldest prepareTimestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35811&quot;&gt;&lt;del&gt;SERVER-35811&lt;/del&gt;&lt;/a&gt; disallow committing at the prepareTimestamp&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/b58420e57a2149c350ebf82815fe708850402296&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/b58420e57a2149c350ebf82815fe708850402296&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2053851" author="xgen-internal-githook" created="Tue, 6 Nov 2018 21:36:31 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Pavi Vetriselvan&apos;, &apos;email&apos;: &apos;pvselvan@umich.edu&apos;, &apos;username&apos;: &apos;pvselvan&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35811&quot; title=&quot;Pin stable timestamp behind the oldest prepareTimestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35811&quot;&gt;&lt;del&gt;SERVER-35811&lt;/del&gt;&lt;/a&gt; disallow committing at the prepareTimestamp&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 2de26d2c3c7f73cc49126ba32402c0a380c8f882.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5794e35f915161d9f556844bd4540273fe4450f7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5794e35f915161d9f556844bd4540273fe4450f7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2053544" author="xgen-internal-githook" created="Tue, 6 Nov 2018 18:57:20 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Pavi Vetriselvan&apos;, &apos;email&apos;: &apos;pvselvan@umich.edu&apos;, &apos;username&apos;: &apos;pvselvan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35811&quot; title=&quot;Pin stable timestamp behind the oldest prepareTimestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35811&quot;&gt;&lt;del&gt;SERVER-35811&lt;/del&gt;&lt;/a&gt; disallow committing at the prepareTimestamp&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2de26d2c3c7f73cc49126ba32402c0a380c8f882&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2de26d2c3c7f73cc49126ba32402c0a380c8f882&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2046597" author="xgen-internal-githook" created="Tue, 30 Oct 2018 18:52:51 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Pavi Vetriselvan&apos;, &apos;email&apos;: &apos;pvselvan@umich.edu&apos;, &apos;username&apos;: &apos;pvselvan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35811&quot; title=&quot;Pin stable timestamp behind the oldest prepareTimestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35811&quot;&gt;&lt;del&gt;SERVER-35811&lt;/del&gt;&lt;/a&gt; pin stable timestamp behind oldest uncommitted timestamp&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/33ac1afd4079e04d12554f9b79d1ab07426caf59&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/33ac1afd4079e04d12554f9b79d1ab07426caf59&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="565202">SERVER-35873</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="591487">SERVER-36782</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="565207">SERVER-35877</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="569294">SERVER-36023</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="639825">SERVER-38302</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>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7.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>Fri, 28 Sep 2018 14:01:55 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 45 weeks, 2 days 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-35873'>SERVER-35873</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-1032</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, 45 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>56.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>greg.mckeon@mongodb.com</customfieldvalue>
            <customfieldvalue>pavithra.vetriselvan@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu1gk7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htra1r:</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="2448">Repl 2018-08-27</customfieldvalue>
    <customfieldvalue id="2483">Repl 2018-09-10</customfieldvalue>
    <customfieldvalue id="2484">Repl 2018-09-24</customfieldvalue>
    <customfieldvalue id="2541">Repl 2018-10-08</customfieldvalue>
    <customfieldvalue id="2542">Repl 2018-10-22</customfieldvalue>
    <customfieldvalue id="2543">Repl 2018-11-05</customfieldvalue>
    <customfieldvalue id="2605">Repl 2018-11-19</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|hu12tj:</customfieldvalue>

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