<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:26:06 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>[DRIVERS-2652] move shard key range logic into the driver vs mongos</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2652</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #fafbfc;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #fafbfc;&quot;&gt;
&lt;h3&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;99.99% of customers lean towards hash based sharding to maintain balanced shards. hash based sharding is slow and hurts the cpu for the shard nodes. this affects the overall performance and impacts any poc&apos;s we run in the field.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I believe the drivers are constantly polling the cluster and know exactly how many shards are available. If the drivers know how many shards there are, can we just have the drivers produce a random int on the number of shards and use that as the way to distribute the data evenly across the shards without the need for hashing the shardkey?&lt;/p&gt;

&lt;p&gt;There are obviously edge cases where a customer may go from x to x+1 shards and we end up with an imbalance of data. Perhaps we can add a weighting factor to the randomint where the x+1 value occurs more than x.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="2365664">DRIVERS-2652</key>
            <summary>move shard key range logic into the driver vs mongos</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="eugene.kang@mongodb.com">Eugene Kang</reporter>
                        <labels>
                    </labels>
                <created>Mon, 12 Jun 2023 18:46:56 +0000</created>
                <updated>Tue, 13 Jun 2023 01:51:23 +0000</updated>
                            <resolved>Tue, 13 Jun 2023 01:51:23 +0000</resolved>
                                                        <component>Performance</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="5493163" author="behackett" created="Mon, 12 Jun 2023 20:24:02 +0000"  >&lt;p&gt;In general, we want to make our drivers simpler and easier to reason about. That means, in part, pushing more of the distributed systems functionality into the server, not putting more into the driver.&lt;/p&gt;</comment>
                            <comment id="5492866" author="eugene.kang" created="Mon, 12 Jun 2023 18:47:17 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=xiaochen.wu%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;xiaochen.wu@mongodb.com&quot;&gt;xiaochen.wu@mongodb.com&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=rachelle.palmer%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;rachelle.palmer@mongodb.com&quot;&gt;rachelle.palmer@mongodb.com&lt;/a&gt;&#160;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                            <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10951" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Driver Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10748"><![CDATA[Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1vnao:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>