<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:29:55 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-53098] Optimize roundtrips on routers after an operation changed the collection metadata</title>
                <link>https://jira.mongodb.org/browse/SERVER-53098</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The current behavior when a DDL operation just changed the full collection metadata is to advance the collection version and mark the primary shard db as stale (like for example, &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9d3635a434f0a1c559fc19119a54bc9bbb40a644/src/mongo/s/commands/cluster_rename_collection_cmd.cpp#L106&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;rename collection&lt;/a&gt;). This is actually an optimization originally designed to &lt;a href=&quot;https://jira.mongodb.org/browse/PM-1633&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;improve the performance of migrations&lt;/a&gt;, where only the operations related to the involved shards need to block, but other operations can be fulfilled. The unintended behavior of this is the following:&lt;/p&gt;

&lt;p&gt;Suppose we have a DDL operation on namespace &lt;em&gt;nss&lt;/em&gt; that changed the collection metadata, then: &lt;/p&gt;

&lt;p&gt;1. The router advances the shard version and mark the database&apos;s primary shard as stale&lt;br/&gt;
2. Every operation that does not target the primary database shard, will do a roundtrip and then wait for the refresh of the cache entry&lt;br/&gt;
3. After marking all shards as stale, every operation for namespace &lt;em&gt;nss&lt;/em&gt; will wait for a new version&lt;/p&gt;

&lt;p&gt;This is a correct behavior, however, a more optimal approach would be to wait for the new shard version. We could make a linearizable invalidation on the issuer of the DDL command, but this would only improve the performance on one router. We should come up with a way to reduce the number roundtrips once we&apos;ve determined an operation changed the collection metadata.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1553713">SERVER-53098</key>
            <summary>Optimize roundtrips on routers after an operation changed the collection metadata</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="marcos.grillo@mongodb.com">Marcos Jos&#233; Grillo Ramirez</assignee>
                                    <reporter username="marcos.grillo@mongodb.com">Marcos Jos&#233; Grillo Ramirez</reporter>
                        <labels>
                    </labels>
                <created>Fri, 27 Nov 2020 16:41:40 +0000</created>
                <updated>Thu, 10 Feb 2022 07:36:10 +0000</updated>
                            <resolved>Wed, 9 Feb 2022 12:07:17 +0000</resolved>
                                                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="4344620" author="marcos.grillo" created="Wed, 9 Feb 2022 12:07:17 +0000"  >&lt;p&gt;Having finer granularity in the catalog cache is enough performant for now.&lt;/p&gt;</comment>
                            <comment id="4138362" author="kaloian.manassiev" created="Thu, 21 Oct 2021 12:00:59 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=marcos.grillo&quot; class=&quot;user-hover&quot; rel=&quot;marcos.grillo&quot;&gt;marcos.grillo&lt;/a&gt;, please update the description to match the discussion with the team that you are referencing.&lt;/p&gt;</comment>
                            <comment id="3859591" author="marcos.grillo" created="Fri, 4 Jun 2021 12:54:03 +0000"  >&lt;p&gt;After discussing it with the team, this ticket will be repurposed to optimize the roundtrips on routers instead.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1980589">SERVER-63502</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1980919">SERVER-63515</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>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 21 Oct 2021 12:00:59 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years 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_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>dbeng-pm-bot</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>kaloian.manassiev@mongodb.com</customfieldvalue>
            <customfieldvalue>marcos.grillo@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hyjcov:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hyddgf:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="5427">Sharding EMEA 2021-11-15</customfieldvalue>
    <customfieldvalue id="5428">Sharding EMEA 2021-11-29</customfieldvalue>
    <customfieldvalue id="5429">Sharding EMEA 2021-12-13</customfieldvalue>
    <customfieldvalue id="5430">Sharding EMEA 2021-12-27</customfieldvalue>
    <customfieldvalue id="5681">Sharding EMEA 2022-01-10</customfieldvalue>
    <customfieldvalue id="5682">Sharding EMEA 2022-01-24</customfieldvalue>
    <customfieldvalue id="5683">Sharding EMEA 2022-02-07</customfieldvalue>
    <customfieldvalue id="5749">Sharding EMEA 2022-02-21</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|hyiyy7:</customfieldvalue>

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