<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:44:09 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-36811] Provide a mechanism for replication to specify the &apos;maximum_truncation_timestamp&apos; for a given &apos;stable_timestamp&apos;</title>
                <link>https://jira.mongodb.org/browse/SERVER-36811</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;We must ensure that the &#8216;prepare&#8217; oplog entries for any transactions that are prepared at the &#8216;stable timestamp&#8217; (for replication rollback) or &#8216;last stable checkpoint timestamp&#8217; (for startup replication recovery) are not truncated off the oplog (or any oplog entries for active transactions in the &#8220;Transactions larger than 16MB project&#8221;). If so then nodes will not be able to re-apply these uncommitted transactions. &#8216;last stable checkpoint timestamp&#8217; &amp;lt;= &#8216;stable timestamp&#8217;, so we will focus on the &#8216;last stable checkpoint timestamp&#8217; case since that implicitly makes sure we have all of the oplog entries we need for the &#8216;stable timestamp&#8217; or the current point in time.&lt;/p&gt;

&lt;p&gt;To do this, whenever replication tells storage about a new &#8216;stable timestamp&#8217;, it will also provide it with a &#8216;maximum_truncation_timestamp&#8217;. This &#8216;maximum_truncation_timestamp&#8217; will be the latest timestamp that the storage engine is allowed to truncate off the back of the oplog when its accompanying &#8216;stable timestamp&#8217; is the current &#8216;last stable checkpoint timestamp&#8217;. Replication will provide the timestamp that was the &#8216;oldest active transaction timestamp&#8217; at the time of the &#8216;stable timestamp&#8217;. This is not the current &#8216;oldest active transaction timestamp&#8217;, but rather an older value of it.&lt;/p&gt;</description>
                <environment></environment>
        <key id="593010">SERVER-36811</key>
            <summary>Provide a mechanism for replication to specify the &apos;maximum_truncation_timestamp&apos; for a given &apos;stable_timestamp&apos;</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="daniel.gottlieb@mongodb.com">Daniel Gottlieb</assignee>
                                    <reporter username="judah.schvimer@mongodb.com">Judah Schvimer</reporter>
                        <labels>
                            <label>prepare_durability</label>
                    </labels>
                <created>Wed, 22 Aug 2018 21:57:02 +0000</created>
                <updated>Sun, 29 Oct 2023 22:28:43 +0000</updated>
                            <resolved>Mon, 17 Sep 2018 20:17:51 +0000</resolved>
                                                    <fixVersion>4.1.4</fixVersion>
                                    <component>Replication</component>
                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="2005569" author="xgen-internal-githook" created="Mon, 17 Sep 2018 20:17:34 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Gottlieb&apos;, &apos;email&apos;: &apos;daniel.gottlieb@mongodb.com&apos;, &apos;username&apos;: &apos;dgottlieb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36811&quot; title=&quot;Provide a mechanism for replication to specify the &amp;#39;maximum_truncation_timestamp&amp;#39; for a given &amp;#39;stable_timestamp&amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36811&quot;&gt;&lt;del&gt;SERVER-36811&lt;/del&gt;&lt;/a&gt;: Save oplog dating back to oldest actively prepared transaction.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/beba8d70803cc14768c577bc7ec1aff5c0c352ed&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/beba8d70803cc14768c577bc7ec1aff5c0c352ed&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1992543" author="judah.schvimer" created="Tue, 4 Sep 2018 15:30:52 +0000"  >&lt;p&gt;Yes that&apos;s correct. I think either a boost::none or a null timestamp would suffice for &quot;no active transactions at that stable timestamp&quot;. I&apos;ll leave that to your judgement. I don&apos;t expect it to matter on our end.&lt;/p&gt;</comment>
                            <comment id="1990395" author="daniel.gottlieb@10gen.com" created="Thu, 30 Aug 2018 21:09:41 +0000"  >&lt;p&gt;&lt;del&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&lt;/a&gt; additionally for clarification, I believe logic needs to be applied for the &lt;tt&gt;inMemory&lt;/tt&gt; storage engine as well?&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;Actually thinking about inMemory... &lt;tt&gt;inMemory&lt;/tt&gt; also has an oplog that gets truncated. During a live rollback, &lt;tt&gt;inMemory&lt;/tt&gt; will play forward from the stable timestamp. I don&apos;t think it&apos;s sufficient for preserving oplog only with respect to when data gets checkpointed. &lt;tt&gt;inMemory&lt;/tt&gt; will need to update the acceptable truncation point as the stable timestamp goes forward and not only when the stable checkpoint timestamp advances.&lt;/p&gt;

&lt;p&gt;Does that sound correct?&lt;/p&gt;</comment>
                            <comment id="1990377" author="daniel.gottlieb@10gen.com" created="Thu, 30 Aug 2018 20:58:39 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&lt;/a&gt;, did you have a preference on what value gets passed in when there were no active transactions at that stable timestamp?&lt;/p&gt;</comment>
                            <comment id="1983229" author="judah.schvimer" created="Wed, 22 Aug 2018 21:59:08 +0000"  >&lt;p&gt;I discussed this with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gottlieb&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gottlieb&quot;&gt;daniel.gottlieb&lt;/a&gt; during the design of &quot;prepare support for transactions&quot;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="584990">SERVER-36494</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="700955">SERVER-39679</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>5.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>Thu, 30 Aug 2018 20:58:39 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 21 weeks, 2 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-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>
                            5 years, 21 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu670n:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htu1zj:</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="2490">Storage NYC 2018-09-10</customfieldvalue>
    <customfieldvalue id="2491">Storage NYC 2018-09-24</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|hu5t9z:</customfieldvalue>

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