<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:58:44 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-63813] Allow transactions and snapshot reads on capped collections</title>
                <link>https://jira.mongodb.org/browse/SERVER-63813</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This is effectively reopening &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-52965&quot; title=&quot;TenantMigrationRecipientInstance should be removed from TenantMigrationRecipientService if inserting the instance&amp;#39;s state doc fails with ConflictingOperationInProgress&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-52965&quot;&gt;&lt;del&gt;SERVER-52965&lt;/del&gt;&lt;/a&gt; now that &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; is complete and undoing &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47824&quot; title=&quot;Ban transaction snapshot reads on capped collections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47824&quot;&gt;&lt;del&gt;SERVER-47824&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47574&quot; title=&quot;Ban non-transaction snapshot reads on capped collections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47574&quot;&gt;&lt;del&gt;SERVER-47574&lt;/del&gt;&lt;/a&gt;. We could certainly add these two features separately. As we want to use snapshot reads and transactions internally to support other features, having capped collections be less &quot;special&quot; will make this easier.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1986119">SERVER-63813</key>
            <summary>Allow transactions and snapshot reads on capped collections</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="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="backlog-server-execution">Backlog - Storage Execution Team</assignee>
                                    <reporter username="judah.schvimer@mongodb.com">Judah Schvimer</reporter>
                        <labels>
                    </labels>
                <created>Fri, 18 Feb 2022 00:41:02 +0000</created>
                <updated>Fri, 21 Jul 2023 19:59:35 +0000</updated>
                                                                                                <votes>0</votes>
                                    <watches>14</watches>
                                                                                                                <comments>
                            <comment id="4391078" author="louis.williams" created="Fri, 4 Mar 2022 08:35:02 +0000"  >&lt;p&gt;The relevant detail in that comment is:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The behavior of an operation against a capped collection may differ across replica set members, where it can succeed on one member and fail on another, crashing the failing member.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;As Judah observed, this is no longer a problem because we replicate deletes in the oplog, so all nodes have the exact same contents.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;capped collections are still problematic with transactions because they only allow one operation at a time because they enforce insertion order with a MODE_X collection lock, which we cannot hold in transactions.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This isn&apos;t accurate. We take the &quot;metadata lock&quot;, not the collection lock, but this will cause transactions on capped collections to serialize themselves, since this lock is held for the duration of the WUOW. If we&apos;re okay with that behavior, we need to be careful not to introduce deadlocks. Currently, the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/c384cf7c7531be8a92b6f70e9d5d888ba80096c6/src/mongo/db/catalog/collection_impl.cpp#L899-L900&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;metadata lock acquisition&lt;/a&gt; is not interruptible. That is, it doesn&apos;t use the constructor that accepts an opCtx. This is a relatively easy change.&lt;/p&gt;</comment>
                            <comment id="4389456" author="JIRAUSER1258790" created="Thu, 3 Mar 2022 15:55:15 +0000"  >&lt;p&gt;I did some testing and it looks like we &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d11917e94f21ce95bf708d6a2757cff5553958ab/src/mongo/db/ops/write_ops_exec.cpp#L388-L407&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;don&apos;t even allow doing writes on capped collection in a transaction&lt;/a&gt;. I think since capped collection cannot be sharded (no out-of-order events), maybe we can identify the capped collections when receiving the event and not do transaction for these collection. BTW are we able to cut scope for capped collections in 6.0?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1331738">SERVER-47824</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="168240">SERVER-16049</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1597322">SERVER-53965</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1316313">SERVER-47574</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>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>Tue, 22 Feb 2022 23:03:56 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 48 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_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>irwin.dolobowsky@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 48 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-execution</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
            <customfieldvalue>wenbin.zhu@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i0knc7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i03pqn:</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_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|i0k9hj:</customfieldvalue>

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