<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:29:19 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-52892] Perform capped deletes in the same WUOW as inserts</title>
                <link>https://jira.mongodb.org/browse/SERVER-52892</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Capped deletes are the only remaining area where MongoDB performs untimestamped writes to replicated collections. This is a very complicated edge case for WiredTiger, and not doing it at all would give us increased confidence in the code while allowing WT to add more correctness assertions (&lt;a href=&quot;https://jira.mongodb.org/browse/WT-6838&quot; title=&quot;test_stat04 failure with unexpected number of entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-6838&quot;&gt;WT-6838&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;It is relatively simple to investigate whether we can perform capped deletes in the same WT transaction as inserts without doing all of the work in&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16049&quot; title=&quot;Replicate capped collection deletes explicitly&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16049&quot;&gt;&lt;del&gt;SERVER-16049&lt;/del&gt;&lt;/a&gt;.&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="1543403">SERVER-52892</key>
            <summary>Perform capped deletes in the same WUOW as inserts</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="backlog-server-execution">Backlog - Storage Execution Team</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                    </labels>
                <created>Mon, 16 Nov 2020 20:15:52 +0000</created>
                <updated>Tue, 6 Dec 2022 01:44:16 +0000</updated>
                            <resolved>Mon, 21 Jun 2021 18:57:44 +0000</resolved>
                                                                                        <votes>1</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="3889581" author="gregory.wlodarek" created="Mon, 21 Jun 2021 18:57:44 +0000"  >&lt;p&gt;This is no longer required as capped deletes are replicated (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16049&quot; title=&quot;Replicate capped collection deletes explicitly&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16049&quot;&gt;&lt;del&gt;SERVER-16049&lt;/del&gt;&lt;/a&gt;) starting in v5.0.&lt;/p&gt;</comment>
                            <comment id="3576416" author="gregory.wlodarek" created="Thu, 21 Jan 2021 19:18:34 +0000"  >&lt;p&gt;After much thought, we&apos;ve determined that it would be best to proceed directly with &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16049&quot; title=&quot;Replicate capped collection deletes explicitly&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16049&quot;&gt;&lt;del&gt;SERVER-16049&lt;/del&gt;&lt;/a&gt; for 5.0 and FCV gate the work.&lt;/p&gt;

&lt;p&gt;There&apos;s another issue with performing capped deletes in the same WUOW as inserts related to rollback. Capped deletes do not get rolled back due to being performed in an un-timestamped side transaction. With this proposal, capped deletes would be rolled back. This fundamentally changes how rollback on capped collections works and would introduce data inconsistencies between different versioned binaries.&lt;/p&gt;</comment>
                            <comment id="3553043" author="gregory.wlodarek" created="Thu, 7 Jan 2021 17:06:57 +0000"  >&lt;p&gt;Here&apos;s a bit of an update on this ticket.&lt;/p&gt;

&lt;p&gt;Today, on rollback for capped collections, any inserts beyond the stable timestamp are undone but any deletes do not come back due to being performed in an un-timestamped side transaction. After the rollback completes, the fast count reflects the state of the collection at the stable timestamp but post capped deletions.&lt;/p&gt;

&lt;p&gt;With the proposed change to perform capped deletes in the same WUOW as inserts, then on rollback deletes will be undone. But because the deletes are not explicitly replicated and have no associated oplog entries with them, it&apos;s impossible to correct the fast count in a constant manner. A collection scan during the rollback would be required to fix up the fast counts, which is undesirable and could impact performance.&lt;/p&gt;

&lt;p&gt;I think the alternative would be to go ahead directly with doing &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16049&quot; title=&quot;Replicate capped collection deletes explicitly&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16049&quot;&gt;&lt;del&gt;SERVER-16049&lt;/del&gt;&lt;/a&gt;, to replicated capped collection deletes explicitly. &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=louis.williams&quot; class=&quot;user-hover&quot; rel=&quot;louis.williams&quot;&gt;louis.williams&lt;/a&gt;&#160;is going to check-in with product on this.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="168240">SERVER-16049</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1373763">WT-6383</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1637263">SERVER-54890</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>3.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_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25136"><![CDATA[Storage Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 20 Nov 2020 16:16:54 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 33 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_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>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years, 33 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-execution</customfieldvalue>
            <customfieldvalue>gregory.wlodarek@mongodb.com</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hyhlr3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr30of:</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="4330">Execution Team 2020-12-28</customfieldvalue>
    <customfieldvalue id="4365">Execution Team 2021-01-11</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|hyh80f:</customfieldvalue>

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