<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:23:51 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-1688] Investigate changes in PM-1858: Add and expose metrics to make shard key selection easier</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-1688</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>
    &lt;div class=&quot;panel&quot; style=&quot;background-color: #c2d2c2;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelHeader&quot; style=&quot;border-bottom-width: 1px;background-color: #239eb0;&quot;&gt;&lt;b&gt;Downstream Change Summary&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #c2d2c2;&quot;&gt;
&lt;p&gt;    Potentially a new command option for DBAs will be created&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;DescriptionofLinkedTicket&quot;&gt;&lt;/a&gt;Description of Linked Ticket&lt;/h2&gt;
    &lt;div class=&quot;panel&quot; style=&quot;background-color: #c2d2c2;border-color: #cccccc;border-style: dashed;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelHeader&quot; style=&quot;border-bottom-width: 1px;border-bottom-style: dashed;border-bottom-color: #cccccc;background-color: #239eb0;&quot;&gt;&lt;b&gt;Epic Summary&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #c2d2c2;&quot;&gt;
&lt;h4&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;Summary&lt;/h4&gt;

&lt;p&gt;Decide on an initial set of metrics that can be exposed from the server to evaluate the efficiency of a shard key or data distribution and, for the metrics that are not already being collected and exposed, collect and expose them.&lt;/p&gt;

&lt;p&gt;We should also decide how the metrics should be exposed to best be consumed by a shard key recommender service (e.g. via serverStatus or some other mechanism).&lt;/p&gt;

&lt;p&gt;We want to expose more information to help users with dedicated clusters pick a good shard key (like recent query access patterns) and evaluate their shard key (what percent of queries are using scatter/gather, or updateOne&apos;s are being converted to transactions, because they don&apos;t include the shard key?)&lt;/p&gt;

&lt;p&gt;To come up with the set of metrics, it may be useful to study:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The strategies currently used by CEs and TSEs to recommend shard keys for MongoDB.&lt;/li&gt;
	&lt;li&gt;The information currently used by customers to select shard keys.&#160;&lt;/li&gt;
	&lt;li&gt;The inputs and cost models used by d4, an open source research project that automatically recommends shard keys for MongoDB workloads. In particular, their cost model may be interesting.&lt;/li&gt;
	&lt;li&gt;The inputs and cost models used by other systems that automatically choose a partition key.&#160;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;For serverless, it will be critical that machine resources are used efficiently while providing good performance for tenants. At a minimum, this will require selecting a good shard key for a tenant which is either too active to be supported by a single shard or has too much data to be stored on a single shard. The metrics may also be useful input to the balancer in deciding the optimal way to distribute multiple tenants&apos; data across a cluster.&lt;/li&gt;
	&lt;li&gt;For on-prem &amp;amp; Atlas customers who have a hard time judging what a good shard key will be and are afraid of sharding.&lt;/li&gt;
	&lt;li&gt;Customers who want to confirm that they&apos;ve picked a good shard key.&lt;/li&gt;
	&lt;li&gt;Customers who want to reshard and need help picking a new shard key.&#160;&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;&lt;a name=&quot;Risks&quot;&gt;&lt;/a&gt;Risks&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;The extra information will not be helpful or result in worse shard keys&lt;/li&gt;
	&lt;li&gt;We will sometimes recommend poor shard keys&lt;/li&gt;
	&lt;li&gt;We lose out on support $$&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;&lt;a name=&quot;CastofCharacters&quot;&gt;&lt;/a&gt;Cast of Characters&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Product Owner: Garaudy Etienne&lt;/li&gt;
	&lt;li&gt;Project Lead:&#160;&lt;/li&gt;
	&lt;li&gt;Program Manager: Ratika Gandhi&lt;/li&gt;
	&lt;li&gt;Drivers Contact:&#160;&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;&lt;a name=&quot;Documentation&quot;&gt;&lt;/a&gt;Documentation&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;http://tinyurl.com/yat7daz6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Scope Document&lt;/a&gt;&lt;br/&gt;
 &lt;a href=&quot;http://tinyurl.com/y7trm28u&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Technical Design Document&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
</description>
                <environment></environment>
        <key id="1683951">DRIVERS-1688</key>
            <summary>Investigate changes in PM-1858: Add and expose metrics to make shard key selection easier</summary>
                <type id="11" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14707&amp;avatarType=issuetype">Epic</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="backlog-server-pm">Backlog - Core Eng Program Management Team</reporter>
                        <labels>
                    </labels>
                <created>Tue, 20 Apr 2021 14:39:25 +0000</created>
                <updated>Thu, 1 Dec 2022 18:09:43 +0000</updated>
                            <resolved>Mon, 10 May 2021 16:36:16 +0000</resolved>
                                                                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="3764203" author="esha.bhargava" created="Mon, 10 May 2021 16:36:16 +0000"  >&lt;p&gt;No driver changes needed.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <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|hyqdjz:</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_22279" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Server Compat</customfieldname>
                        <customfieldvalues>
                                        <label>7.0</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>