<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:48:07 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-59786] Prevent concurrent merges</title>
                <link>https://jira.mongodb.org/browse/SERVER-59786</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The multitenant migrations process begins when Cloud calls donorStartMigration on the donor primary with a tenantId. The donor calls recipientSyncData on the recipient primary with the tenantId. On both sides, we have ugly code for preventing concurrent migrations with the same tenantId. In &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-60752&quot; title=&quot;API for detecting conflicts among PrimaryOnlyService instances&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-60752&quot;&gt;&lt;del&gt;SERVER-60752&lt;/del&gt;&lt;/a&gt; we added an API to make such conflict-detection cleaner.&lt;/p&gt;

&lt;p&gt;This ticket will need at least 3 commits:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Using the new API introduced in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-60752&quot; title=&quot;API for detecting conflicts among PrimaryOnlyService instances&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-60752&quot;&gt;&lt;del&gt;SERVER-60752&lt;/del&gt;&lt;/a&gt;, clean up &lt;a href=&quot;https://github.com/10gen/mongo/blob/8fdfe55ebd9bd4a9cd982e8eeb6052e6aedc4ccd/src/mongo/db/commands/tenant_migration_recipient_cmds.cpp#L111&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the conflict detection code&lt;/a&gt; in the recipientSyncData command. The change we made in the donorStartMigration command in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-60752&quot; title=&quot;API for detecting conflicts among PrimaryOnlyService instances&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-60752&quot;&gt;&lt;del&gt;SERVER-60752&lt;/del&gt;&lt;/a&gt; is a good example to start from.&lt;/li&gt;
	&lt;li&gt;The donorStartMigration command already uses the new API to ban multiple migrations with the same tenantId. (Well, once &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-60752&quot; title=&quot;API for detecting conflicts among PrimaryOnlyService instances&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-60752&quot;&gt;&lt;del&gt;SERVER-60752&lt;/del&gt;&lt;/a&gt; is committed.) We&apos;re adding a new concept of the migration &quot;protocol&quot;, which can be &quot;multitenant migrations&quot; (old protocol, the default) or &quot;shard merge&quot; (the new one). Add a new rule: if any active migration has protocol &quot;shard merge&quot; it must be the only migration - other migrations are banned regardless of their protocol or tenantId. So if there&apos;s any existing migration then a new &quot;shard merge&quot; is banned. If there&apos;s an existing &quot;shard merge&quot;, any new migration is banned.&lt;/li&gt;
	&lt;li&gt;Same change as #2, but for recipientSyncData.&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
        <key id="1867435">SERVER-59786</key>
            <summary>Prevent concurrent merges</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="christopher.caplinger@mongodb.com">Christopher Caplinger</assignee>
                                    <reporter username="jesse@mongodb.com">A. Jesse Jiryu Davis</reporter>
                        <labels>
                    </labels>
                <created>Fri, 3 Sep 2021 19:49:14 +0000</created>
                <updated>Sun, 29 Oct 2023 21:48:52 +0000</updated>
                            <resolved>Thu, 2 Dec 2021 19:53:27 +0000</resolved>
                                                    <fixVersion>5.2.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="4227946" author="xgen-internal-githook" created="Thu, 2 Dec 2021 19:45:53 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Christopher Caplinger&apos;, &apos;email&apos;: &apos;christopher.caplinger@mongodb.com&apos;, &apos;username&apos;: &apos;UnicodeSnowman&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-59786&quot; title=&quot;Prevent concurrent merges&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-59786&quot;&gt;&lt;del&gt;SERVER-59786&lt;/del&gt;&lt;/a&gt;: Prevent concurrent merges&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ac9a64634fb87fa4b065c0e83c50c7b4d1400688&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ac9a64634fb87fa4b065c0e83c50c7b4d1400688&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="1899590">SERVER-60752</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>1.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_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="22495"><![CDATA[v5.1]]></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>Mon, 29 Nov 2021 21:26:49 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 9 weeks, 6 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-60752'>SERVER-60752</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_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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-2335</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>
                            2 years, 9 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>jesse@mongodb.com</customfieldvalue>
            <customfieldvalue>christopher.caplinger@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i00grr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hzpe33:</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="5517">Server Serverless 2021-10-18</customfieldvalue>
    <customfieldvalue id="5518">Server Serverless 2021-10-25</customfieldvalue>
    <customfieldvalue id="5546">Server Serverless 2021-11-01</customfieldvalue>
    <customfieldvalue id="5553">Server Serverless 2021-11-15</customfieldvalue>
    <customfieldvalue id="5623">Server Serverless 2021-11-29</customfieldvalue>
    <customfieldvalue id="5650">Server Serverless 2021-12-13</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|i002x3:</customfieldvalue>

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