<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:06:13 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-66715] Avoid using AllowLockAcquisitionOnTimestampedUnitOfWork for the change collection</title>
                <link>https://jira.mongodb.org/browse/SERVER-66715</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The change collection when writing documents takes AllowLockAcquisitionOnTimestampedUnitOfWork. The AllowLockAcquisitionOnTimestampedUnitOfWork has some implications, for eg. it stalls replications. This ticket is about exploring solutions to avoid using it.&lt;/p&gt;

&lt;p&gt;One solution was to take the change collection within the context of the AutoGetCollection. This POC was done &lt;a href=&quot;https://spruce.mongodb.com/version/628a83b1a4cf470b83414717/changes?sorts=STATUS%3AASC%3BBASE_STATUS%3ADESC&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; but it was complicated and hard to reason for deadlocks.&lt;/p&gt;

&lt;p&gt;Another solution is to use an atomic flag. The insertion code path takes the reader lock and the drop collection takes the writer lock. The insertion logic will not block each other because they are using the reader lock. The drop and insertion code path will be synchronized using the writer lock. It should be noted that the insertions to the change collection are happening within the context of the timestamped unit of work, so they themselves are synchronized.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2053574">SERVER-66715</key>
            <summary>Avoid using AllowLockAcquisitionOnTimestampedUnitOfWork for the change collection</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="mindaugas.malinauskas@mongodb.com">Mindaugas Malinauskas</assignee>
                                    <reporter username="rishab.joshi@mongodb.com">Rishab Joshi</reporter>
                        <labels>
                            <label>pm-2334-followup</label>
                            <label>tech-debt</label>
                    </labels>
                <created>Tue, 24 May 2022 08:46:16 +0000</created>
                <updated>Sun, 29 Oct 2023 21:37:50 +0000</updated>
                            <resolved>Wed, 12 Apr 2023 11:07:32 +0000</resolved>
                                                    <fixVersion>7.1.0-rc0</fixVersion>
                                                        <votes>1</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="5340701" author="xgen-internal-githook" created="Wed, 12 Apr 2023 11:06:31 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Mindaugas Malinauskas&apos;, &apos;email&apos;: &apos;mindaugas.malinauskas@mongodb.com&apos;, &apos;username&apos;: &apos;&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-66715&quot; title=&quot;Avoid using AllowLockAcquisitionOnTimestampedUnitOfWork for the change collection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-66715&quot;&gt;&lt;del&gt;SERVER-66715&lt;/del&gt;&lt;/a&gt; Add tenant lock&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ed0d55f7e8686c7c71fe113554e7e2782d7ea6d8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ed0d55f7e8686c7c71fe113554e7e2782d7ea6d8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5327611" author="xgen-internal-githook" created="Wed, 5 Apr 2023 18:01:38 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Tommaso Tocci&apos;, &apos;email&apos;: &apos;tommaso.tocci@mongodb.com&apos;, &apos;username&apos;: &apos;toto-dev&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-66715&quot; title=&quot;Avoid using AllowLockAcquisitionOnTimestampedUnitOfWork for the change collection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-66715&quot;&gt;&lt;del&gt;SERVER-66715&lt;/del&gt;&lt;/a&gt; Add tenant lock&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit b9d8a47872050ca5fe6c1b95fcb0534e6e0ebc3d.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f2df94329a61c09fddeb8007b184b900be22b774&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f2df94329a61c09fddeb8007b184b900be22b774&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5324642" author="xgen-internal-githook" created="Tue, 4 Apr 2023 20:13:56 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Mindaugas Malinauskas&apos;, &apos;email&apos;: &apos;mindaugas.malinauskas@mongodb.com&apos;, &apos;username&apos;: &apos;&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-66715&quot; title=&quot;Avoid using AllowLockAcquisitionOnTimestampedUnitOfWork for the change collection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-66715&quot;&gt;&lt;del&gt;SERVER-66715&lt;/del&gt;&lt;/a&gt; Add tenant lock&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/b9d8a47872050ca5fe6c1b95fcb0534e6e0ebc3d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/b9d8a47872050ca5fe6c1b95fcb0534e6e0ebc3d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4931935" author="JIRAUSER1252520" created="Thu, 27 Oct 2022 13:57:55 +0000"  >&lt;p&gt;Added a link to the ticket &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-67267&quot; title=&quot;Inject tenant Ids for change stream multitenant replica set passthrough&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-67267&quot;&gt;&lt;del&gt;SERVER-67267&lt;/del&gt;&lt;/a&gt; which is required to make certain tests pass.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10020">
                    <name>Gantt Dependency</name>
                                            <outwardlinks description="has to be done before">
                                        <issuelink>
            <issuekey id="2184609">SERVER-71327</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="has to be done after">
                                        <issuelink>
            <issuekey id="2068353">SERVER-67267</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2052193">SERVER-66639</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>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.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>Wed, 26 Oct 2022 17:26:00 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        43 weeks 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></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>
                            43 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>135.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>mindaugas.malinauskas@mongodb.com</customfieldvalue>
            <customfieldvalue>rishab.joshi@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i0w0yv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0q4cy:</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="5930">QE 2023-02-06</customfieldvalue>
    <customfieldvalue id="5932">QE 2023-02-20</customfieldvalue>
    <customfieldvalue id="6990">QE 2023-03-06</customfieldvalue>
    <customfieldvalue id="6992">QE 2023-03-20</customfieldvalue>
    <customfieldvalue id="6994">QE 2023-04-03</customfieldvalue>
    <customfieldvalue id="6996">QE 2023-04-17</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|i0vn47:</customfieldvalue>

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