<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:01:05 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-22667] Componentize the sharding balancer</title>
                <link>https://jira.mongodb.org/browse/SERVER-22667</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Split the sharding balancer into two independent parts - statistics collection and dispatching migrations and put as much as possible behind abstractions so they can be unit-tested.&lt;/p&gt;</description>
                <environment></environment>
        <key id="265915">SERVER-22667</key>
            <summary>Componentize the sharding balancer</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="9">Done</resolution>
                                        <assignee username="kaloian.manassiev@mongodb.com">Kaloian Manassiev</assignee>
                                    <reporter username="kaloian.manassiev@mongodb.com">Kaloian Manassiev</reporter>
                        <labels>
                    </labels>
                <created>Tue, 16 Feb 2016 23:11:24 +0000</created>
                <updated>Mon, 16 May 2016 19:50:23 +0000</updated>
                            <resolved>Wed, 27 Apr 2016 11:56:33 +0000</resolved>
                                                    <fixVersion>3.3.6</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="1250361" author="xgen-internal-githook" created="Fri, 29 Apr 2016 14:51:10 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22667&quot; title=&quot;Componentize the sharding balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22667&quot;&gt;&lt;del&gt;SERVER-22667&lt;/del&gt;&lt;/a&gt; Balancer chunk selection policy interface&lt;/p&gt;

&lt;p&gt;This interface is responsible for combining information of the shard&lt;br/&gt;
utilization and the chunk distribution and providing a list of chunks,&lt;br/&gt;
which need to be moved around. By abstracting this logic behind an&lt;br/&gt;
interface, we can mock it and test the actual chunk moves.&lt;/p&gt;

&lt;p&gt;No functional changes.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e1ca46b045b85aaf546eb831448712db0de69b73&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e1ca46b045b85aaf546eb831448712db0de69b73&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1249486" author="xgen-internal-githook" created="Thu, 28 Apr 2016 18:17:15 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22667&quot; title=&quot;Componentize the sharding balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22667&quot;&gt;&lt;del&gt;SERVER-22667&lt;/del&gt;&lt;/a&gt; Balancer policy tests need to initialize the shard name&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/35605290275950f1fabdf1f0a66f4284919ef743&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/35605290275950f1fabdf1f0a66f4284919ef743&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1249371" author="xgen-internal-githook" created="Thu, 28 Apr 2016 17:10:26 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22667&quot; title=&quot;Componentize the sharding balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22667&quot;&gt;&lt;del&gt;SERVER-22667&lt;/del&gt;&lt;/a&gt; Cleanup ChunkManager encapsulation&lt;/p&gt;

&lt;p&gt;Makes internal-only logic private to the class and removes some&lt;br/&gt;
unnecessary friendship declarations.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6db57c33cd63157d7e53dcdba612bea5c0659f2b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6db57c33cd63157d7e53dcdba612bea5c0659f2b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1248251" author="xgen-internal-githook" created="Wed, 27 Apr 2016 19:04:41 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ksuarz&apos;, u&apos;name&apos;: u&apos;Kyle Suarez&apos;, u&apos;email&apos;: u&apos;kyle.suarez@mongodb.com&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22667&quot; title=&quot;Componentize the sharding balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22667&quot;&gt;&lt;del&gt;SERVER-22667&lt;/del&gt;&lt;/a&gt; Balancer chunk selection policy interface&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 2cf31060a74ac438b58c5150ba30da4144112744.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/21fa9ccd4e12d7a94a95d98e1e984ada2ef65548&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/21fa9ccd4e12d7a94a95d98e1e984ada2ef65548&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1247669" author="xgen-internal-githook" created="Wed, 27 Apr 2016 11:53:49 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22667&quot; title=&quot;Componentize the sharding balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22667&quot;&gt;&lt;del&gt;SERVER-22667&lt;/del&gt;&lt;/a&gt; Balancer chunk selection policy interface&lt;/p&gt;

&lt;p&gt;This interface is responsible for combining information of the shard&lt;br/&gt;
utilization and the chunk distribution and providing a list of chunks,&lt;br/&gt;
which need to be moved around. By abstracting this logic behind an&lt;br/&gt;
interface, we can mock it and test the actual chunk moves.&lt;/p&gt;

&lt;p&gt;No functional changes.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2cf31060a74ac438b58c5150ba30da4144112744&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2cf31060a74ac438b58c5150ba30da4144112744&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1247668" author="xgen-internal-githook" created="Wed, 27 Apr 2016 11:53:48 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22667&quot; title=&quot;Componentize the sharding balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22667&quot;&gt;&lt;del&gt;SERVER-22667&lt;/del&gt;&lt;/a&gt; Move multiSplit to shardutil&lt;/p&gt;

&lt;p&gt;Moves the Chunk::multiSplit command to the shardutil namespace and makes&lt;br/&gt;
it accept all necessary arguments. This change helps go in the direction&lt;br/&gt;
of making Chunk an interface purely for caching.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ee3984a116d7c2c40f528ae15f12bf2966b637b7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ee3984a116d7c2c40f528ae15f12bf2966b637b7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1245940" author="xgen-internal-githook" created="Mon, 25 Apr 2016 20:28:43 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22667&quot; title=&quot;Componentize the sharding balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22667&quot;&gt;&lt;del&gt;SERVER-22667&lt;/del&gt;&lt;/a&gt; Introduce a MigrateInfoVector type&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8d7b139aa86c6deebc4ea46ce3d3c8ce89655b60&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8d7b139aa86c6deebc4ea46ce3d3c8ce89655b60&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1243743" author="xgen-internal-githook" created="Fri, 22 Apr 2016 13:48:17 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22667&quot; title=&quot;Componentize the sharding balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22667&quot;&gt;&lt;del&gt;SERVER-22667&lt;/del&gt;&lt;/a&gt; Remove usages of ShardConnection from chunk.cpp&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/cea4088f658a60adfd1468758d184e871ed1f273&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/cea4088f658a60adfd1468758d184e871ed1f273&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1233815" author="xgen-internal-githook" created="Tue, 12 Apr 2016 20:33:27 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22667&quot; title=&quot;Componentize the sharding balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22667&quot;&gt;&lt;del&gt;SERVER-22667&lt;/del&gt;&lt;/a&gt; Remove the shard_util library&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/85e169cb062c2e5c3ebf9a950ced369e1eaaa8ff&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/85e169cb062c2e5c3ebf9a950ced369e1eaaa8ff&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1233617" author="xgen-internal-githook" created="Tue, 12 Apr 2016 18:05:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22667&quot; title=&quot;Componentize the sharding balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22667&quot;&gt;&lt;del&gt;SERVER-22667&lt;/del&gt;&lt;/a&gt; Move Chunk::pickSplitVector/MedianKey out of Chunk&lt;/p&gt;

&lt;p&gt;The pickSplitVector and selectMedianKey utilities logically belong to the&lt;br/&gt;
balancer, so moving them out of the Chunk class and into shard_util.&lt;/p&gt;

&lt;p&gt;The changes to balance.cpp have no functional effect, just rearranging&lt;br/&gt;
them to better match the balancer control flow and to make the subsequent&lt;br/&gt;
changes easier to follow.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3c5ee8b721d3ea5b18d22527fcbea4e2e15e79ad&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3c5ee8b721d3ea5b18d22527fcbea4e2e15e79ad&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="265916">SERVER-22668</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="265917">SERVER-22669</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>10.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_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>Tue, 12 Apr 2016 18:05:29 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        7 years, 41 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-229</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>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            7 years, 41 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>kaloian.manassiev@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrkgd3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hre2hz:</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="895">Sharding 12 (04/01/16)</customfieldvalue>
    <customfieldvalue id="902">Sharding 14 (05/13/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_11861" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>User Summary</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11856"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hsf87r:</customfieldvalue>

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