<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:05:43 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-44341] Do not choose only first shard of all shards associated with a zone when pre-splitting during shard collection</title>
                <link>https://jira.mongodb.org/browse/SERVER-44341</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently, when pre-splitting a collection during shardCollection using existing zones, we &lt;a href=&quot;https://github.com/mongodb/mongo/blob/996e6060811aced89dfef78b0d695d208690f3d6/src/mongo/db/s/config/initial_split_policy.cpp#L261&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;choose the first shard associated with the zone to place a chunk on&lt;/a&gt;. This can cause a problem if there are many shards associated with the same zone - the balancer will still schedule migrations to balance the zones afterward.&lt;/p&gt;</description>
                <environment></environment>
        <key id="986633">SERVER-44341</key>
            <summary>Do not choose only first shard of all shards associated with a zone when pre-splitting during shard collection</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="tommaso.tocci@mongodb.com">Tommaso Tocci</assignee>
                                    <reporter username="janna.golden@mongodb.com">Janna Golden</reporter>
                        <labels>
                    </labels>
                <created>Thu, 31 Oct 2019 18:13:23 +0000</created>
                <updated>Sun, 29 Oct 2023 22:15:31 +0000</updated>
                            <resolved>Fri, 13 Dec 2019 16:24:06 +0000</resolved>
                                                    <fixVersion>4.2.3</fixVersion>
                    <fixVersion>4.3.3</fixVersion>
                    <fixVersion>4.0.15</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="2633792" author="xgen-internal-githook" created="Mon, 16 Dec 2019 13:15:47 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Tommaso Tocci&apos;, &apos;email&apos;: &apos;tommaso.tocci@10gen.com&apos;, &apos;username&apos;: &apos;toto-dev&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44341&quot; title=&quot;Do not choose only first shard of all shards associated with a zone when pre-splitting during shard collection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44341&quot;&gt;&lt;del&gt;SERVER-44341&lt;/del&gt;&lt;/a&gt; Round-robin policy for shardCollection pre-splitting on zones&lt;/p&gt;

&lt;p&gt;Bug:&lt;br/&gt;
 when pre-splitting a collection during shardCollection using existing zones,&lt;br/&gt;
 we choose the first shard associated with the zone to place a chunk on.&lt;br/&gt;
 This can cause a problem if there are many shards associated with the same zone,&lt;br/&gt;
 the balancer will still schedule migrations to balance the zones afterward.&lt;/p&gt;

&lt;p&gt;Implemented solution:&lt;br/&gt;
 For each new chunk, the shard will be selected in round-robin fashion among the ones associated with its zone.&lt;br/&gt;
 The new `tagToIndx` StringMap is used to keep the incrementing couters&lt;br/&gt;
 for each zone (tag).&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/beba7157ee95d7118594fb8985fe965b329983a2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/beba7157ee95d7118594fb8985fe965b329983a2&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2633740" author="xgen-internal-githook" created="Mon, 16 Dec 2019 12:36:10 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Tommaso Tocci&apos;, &apos;email&apos;: &apos;tommaso.tocci@10gen.com&apos;, &apos;username&apos;: &apos;toto-dev&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44341&quot; title=&quot;Do not choose only first shard of all shards associated with a zone when pre-splitting during shard collection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44341&quot;&gt;&lt;del&gt;SERVER-44341&lt;/del&gt;&lt;/a&gt; Round-robin policy for shardCollection pre-splitting on zones&lt;/p&gt;

&lt;p&gt;Bug:&lt;br/&gt;
 when pre-splitting a collection during shardCollection using existing zones,&lt;br/&gt;
 we choose the first shard associated with the zone to place a chunk on.&lt;br/&gt;
 This can cause a problem if there are many shards associated with the same zone,&lt;br/&gt;
 the balancer will still schedule migrations to balance the zones afterward.&lt;/p&gt;

&lt;p&gt;Implemented solution:&lt;br/&gt;
 For each new chunk, the shard will be selected in round-robin fashion among the ones associated with its zone.&lt;br/&gt;
 The new `tagToIndx` StringMap is used to keep the incrementing couters&lt;br/&gt;
 for each zone (tag).&lt;br/&gt;
Branch: v4.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/7168b7100a106bec98d643bef9e15b705c439edb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/7168b7100a106bec98d643bef9e15b705c439edb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2605806" author="xgen-internal-githook" created="Fri, 13 Dec 2019 11:54:48 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Tommaso Tocci&apos;, &apos;email&apos;: &apos;tommaso.tocci@10gen.com&apos;, &apos;username&apos;: &apos;toto-dev&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44341&quot; title=&quot;Do not choose only first shard of all shards associated with a zone when pre-splitting during shard collection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44341&quot;&gt;&lt;del&gt;SERVER-44341&lt;/del&gt;&lt;/a&gt; Round-robin policy for shardCollection pre-splitting on zones&lt;/p&gt;

&lt;p&gt;Bug:&lt;br/&gt;
 when pre-splitting a collection during shardCollection using existing zones,&lt;br/&gt;
 we choose the first shard associated with the zone to place a chunk on.&lt;br/&gt;
 This can cause a problem if there are many shards associated with the same zone,&lt;br/&gt;
 the balancer will still schedule migrations to balance the zones afterward.&lt;/p&gt;

&lt;p&gt;Implemented solution:&lt;br/&gt;
 For each new chunk, the shard will be selected in round-robin fashion among the ones associated with its zone.&lt;br/&gt;
 The new `tagToIndx` StringMap is used to keep the incrementing couters&lt;br/&gt;
 for each zone (tag).&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/35c4be790c1e03898d9c5443f9a33e36f6f40302&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/35c4be790c1e03898d9c5443f9a33e36f6f40302&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2599359" author="tommaso.tocci" created="Wed, 11 Dec 2019 16:57:19 +0000"  >&lt;p&gt;There are several policies that can be used to choose the shard within a zone for a specific chunk during the pre-splitting phase. Here you have 2 proposals:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;Random&lt;/b&gt;: for each new chunk we just select a random shard among the ones associated to its zone.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Round-robin&lt;/b&gt;:  for each new chunk, the shard will be selected in round-robin fashion among the ones associated with its zone.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I personally prefer the Round-robin policy because it will guarantee a more even distribution of chunks among the shards also in the case where we have very few shards associated to a zone. So that the balancer will not move any chunks until the first insertions.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </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>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16775"><![CDATA[v4.2]]></customfieldvalue>
    <customfieldvalue key="15640"><![CDATA[v4.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_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5002K00000iN5uqQAC]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 22 Nov 2019 14:16:17 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 8 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_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>
                            4 years, 8 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>janna.golden@mongodb.com</customfieldvalue>
            <customfieldvalue>tommaso.tocci@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hw0267:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hvof4v:</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="3473">Sharding 2019-12-16</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|hvzofj:</customfieldvalue>

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