<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:14:57 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-7579] QueryOptimizer not choosing the right key when querying.</title>
                <link>https://jira.mongodb.org/browse/SERVER-7579</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;mongos&amp;gt; db.current_views.find({ ts: &lt;/p&gt;
{ $gte: 1352300700, $lt: 1352301000 }
&lt;p&gt;, site: &quot;506f0fea7cbdc70464aea9e9&quot; } ).explain()&lt;br/&gt;
{&lt;br/&gt;
&quot;clusteredType&quot; : &quot;ParallelSort&quot;,&lt;br/&gt;
&quot;shards&quot; : {&lt;br/&gt;
&quot;vizvid-mongo-1:27019&quot; : [&lt;br/&gt;
{&lt;br/&gt;
&quot;cursor&quot; : &quot;BtreeCursor site_1&quot;,&lt;br/&gt;
&quot;isMultiKey&quot; : false,&lt;br/&gt;
&quot;n&quot; : 3413,&lt;br/&gt;
&quot;nscannedObjects&quot; : 4470768,&lt;br/&gt;
&quot;nscanned&quot; : 4470768,&lt;br/&gt;
&quot;nscannedObjectsAllPlans&quot; : 4470768,&lt;br/&gt;
&quot;nscannedAllPlans&quot; : 4470768,&lt;br/&gt;
&quot;scanAndOrder&quot; : false,&lt;br/&gt;
&quot;indexOnly&quot; : false,&lt;br/&gt;
&quot;nYields&quot; : 29754,&lt;br/&gt;
&quot;nChunkSkips&quot; : 0,&lt;br/&gt;
&quot;millis&quot; : 16086,&lt;br/&gt;
&quot;indexBounds&quot; : &lt;/p&gt;
{ &quot;site&quot; : [ [ &quot;506f0fea7cbdc70464aea9e9&quot;, &quot;506f0fea7cbdc70464aea9e9&quot; ] ] }
&lt;p&gt;,&lt;br/&gt;
&quot;server&quot; : &quot;vizvid-mongo-1:27019&quot;&lt;br/&gt;
}&lt;br/&gt;
]&lt;br/&gt;
},&lt;br/&gt;
&quot;cursor&quot; : &quot;BtreeCursor site_1&quot;,&lt;br/&gt;
&quot;n&quot; : 3413,&lt;br/&gt;
&quot;nChunkSkips&quot; : 0,&lt;br/&gt;
&quot;nYields&quot; : 29754,&lt;br/&gt;
&quot;nscanned&quot; : 4470768,&lt;br/&gt;
&quot;nscannedAllPlans&quot; : 4470768,&lt;br/&gt;
&quot;nscannedObjects&quot; : 4470768,&lt;br/&gt;
&quot;nscannedObjectsAllPlans&quot; : 4470768,&lt;br/&gt;
&quot;millisShardTotal&quot; : 16086,&lt;br/&gt;
&quot;millisShardAvg&quot; : 16086,&lt;br/&gt;
&quot;millis&quot; : 16086,&lt;br/&gt;
&quot;indexBounds&quot; : &lt;/p&gt;
{ &quot;site&quot; : [ [ &quot;506f0fea7cbdc70464aea9e9&quot;, &quot;506f0fea7cbdc70464aea9e9&quot; ] ] }
&lt;p&gt;,&lt;br/&gt;
&quot;server&quot; : &quot;vizvid-mongo-1:27019&quot;&lt;br/&gt;
}&lt;br/&gt;
]&lt;br/&gt;
},&lt;br/&gt;
&quot;cursor&quot; : &quot;BtreeCursor site_1&quot;,&lt;br/&gt;
&quot;n&quot; : 3413,&lt;br/&gt;
&quot;nChunkSkips&quot; : 0,&lt;br/&gt;
&quot;nYields&quot; : 29754,&lt;br/&gt;
&quot;nscanned&quot; : 4470768,&lt;br/&gt;
&quot;nscannedAllPlans&quot; : 4470768,&lt;br/&gt;
&quot;nscannedObjects&quot; : 4470768,&lt;br/&gt;
&quot;nscannedObjectsAllPlans&quot; : 4470768,&lt;br/&gt;
&quot;millisShardTotal&quot; : 16086,&lt;br/&gt;
&quot;millisShardAvg&quot; : 16086,&lt;br/&gt;
&quot;numQueries&quot; : 1,&lt;br/&gt;
&quot;numShards&quot; : 1,&lt;br/&gt;
&quot;indexBounds&quot; : &lt;/p&gt;
{ &quot;site&quot; : [ [ &quot;506f0fea7cbdc70464aea9e9&quot;, &quot;506f0fea7cbdc70464aea9e9&quot; ] ] }
&lt;p&gt;,&lt;br/&gt;
&quot;millis&quot; : 16087&lt;br/&gt;
}&lt;br/&gt;
###########################&lt;br/&gt;
.... Now with the hint ....&lt;br/&gt;
###########################&lt;br/&gt;
mongos&amp;gt; db.current_views.find({ ts: &lt;/p&gt;
{ $gte: 1352300700, $lt: 1352301000 }
&lt;p&gt;, site: &quot;506f0fea7cbdc70464aea9e9&quot; } ).hint(&lt;/p&gt;
{ts:1, site:1}
&lt;p&gt;).explain()&lt;br/&gt;
{&lt;br/&gt;
&quot;clusteredType&quot; : &quot;ParallelSort&quot;,&lt;br/&gt;
&quot;shards&quot; : {&lt;br/&gt;
&quot;vizvid-mongo-1:27019&quot; : [&lt;br/&gt;
{&lt;br/&gt;
&quot;cursor&quot; : &quot;BtreeCursor ts_1_site_1&quot;,&lt;br/&gt;
&quot;isMultiKey&quot; : false,&lt;br/&gt;
&quot;n&quot; : 3413,&lt;br/&gt;
&quot;nscannedObjects&quot; : 3413,&lt;br/&gt;
&quot;nscanned&quot; : 3472,&lt;br/&gt;
&quot;nscannedObjectsAllPlans&quot; : 3413,&lt;br/&gt;
&quot;nscannedAllPlans&quot; : 3472,&lt;br/&gt;
&quot;scanAndOrder&quot; : false,&lt;br/&gt;
&quot;indexOnly&quot; : false,&lt;br/&gt;
&quot;nYields&quot; : 1,&lt;br/&gt;
&quot;nChunkSkips&quot; : 0,&lt;br/&gt;
&quot;millis&quot; : 27,&lt;br/&gt;
&quot;indexBounds&quot; : &lt;/p&gt;
{ &quot;ts&quot; : [ [ 1352300700, 1352301000 ] ], &quot;site&quot; : [ [ &quot;506f0fea7cbdc70464aea9e9&quot;, &quot;506f0fea7cbdc70464aea9e9&quot; ] ] }
&lt;p&gt;,&lt;br/&gt;
&quot;server&quot; : &quot;vizvid-mongo-1:27019&quot;&lt;br/&gt;
}&lt;br/&gt;
]&lt;br/&gt;
},&lt;br/&gt;
&quot;cursor&quot; : &quot;BtreeCursor ts_1_site_1&quot;,&lt;br/&gt;
&quot;n&quot; : 3413,&lt;br/&gt;
&quot;nChunkSkips&quot; : 0,&lt;br/&gt;
&quot;nYields&quot; : 1,&lt;br/&gt;
&quot;nscanned&quot; : 3472,&lt;br/&gt;
&quot;nscannedAllPlans&quot; : 3472,&lt;br/&gt;
&quot;nscannedObjects&quot; : 3413,&lt;br/&gt;
&quot;nscannedObjectsAllPlans&quot; : 3413,&lt;br/&gt;
&quot;millisShardTotal&quot; : 27,&lt;br/&gt;
&quot;millisShardAvg&quot; : 27,&lt;br/&gt;
&quot;numQueries&quot; : 1,&lt;br/&gt;
&quot;numShards&quot; : 1,&lt;br/&gt;
&quot;indexBounds&quot; : &lt;/p&gt;
{ &quot;ts&quot; : [ [ 1352300700, 1352301000 ] ], &quot;site&quot; : [ [ &quot;506f0fea7cbdc70464aea9e9&quot;, &quot;506f0fea7cbdc70464aea9e9&quot; ] ] }
&lt;p&gt;,&lt;br/&gt;
&quot;millis&quot; : 29&lt;br/&gt;
}&lt;/p&gt;</description>
                <environment>Linux vizvid-mongo-1 3.2.0-31-virtual #50-Ubuntu SMP Fri Sep 7 16:36:36 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux 8GB ram</environment>
        <key id="55512">SERVER-7579</key>
            <summary>QueryOptimizer not choosing the right key when querying.</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="9">Done</resolution>
                                        <assignee username="aaron">Aaron Staple</assignee>
                                    <reporter username="eka">Esteban Feldman</reporter>
                        <labels>
                            <label>query</label>
                    </labels>
                <created>Wed, 7 Nov 2012 16:05:46 +0000</created>
                <updated>Fri, 7 Mar 2014 00:57:12 +0000</updated>
                            <resolved>Fri, 14 Dec 2012 20:20:30 +0000</resolved>
                                    <version>2.2.0</version>
                                                    <component>Querying</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="215290" author="aaron" created="Fri, 14 Dec 2012 20:20:13 +0000"  >&lt;p&gt;Hi Esteban - Haven&apos;t heard from you recently so I&apos;m going to close the ticket.  Feel free to reopen for further assistance.&lt;/p&gt;</comment>
                            <comment id="186704" author="eka" created="Mon, 12 Nov 2012 17:02:17 +0000"  >&lt;p&gt;Hi Aaron, thanks for taking time for this.&lt;/p&gt;

&lt;p&gt;What about hinting an aggregation? Because all this came up with slow aggregation, were I had to explain() the $match parts in a find cause aggregation doesn&apos;t have explain though.&lt;/p&gt;
</comment>
                            <comment id="186697" author="aaron" created="Mon, 12 Nov 2012 16:57:36 +0000"  >&lt;p&gt;Hi Esteban - explain() does not used cached (&quot;learned&quot;) query plans, it always tries all query plans.  Additionally hinted plans are not learned.  So the issue should be reproducible if your data is unchanged.  (If your data has changed, however, it could easily change the query optimizer&apos;s query plan selection behavior.)&lt;/p&gt;

&lt;p&gt;It&apos;s worth noting that it would be possible to get the behavior you described if the &lt;/p&gt;
{ site:1 }
&lt;p&gt; index was more selective than the &lt;/p&gt;
{ ts:1, site:1 }
&lt;p&gt; index over the first 101 matches.  The query optimizer uses the selectivity of the first 101 matches to estimate selectivity overall, but this is not guaranteed to be an accurate estimate over the entire query.  If you are able to run explain( true ) we can verify if this is the cause of the behavior you saw.&lt;/p&gt;

&lt;p&gt;If you want to ensure the &lt;/p&gt;
{ ts:1, site:1 }
&lt;p&gt; index is always chosen, you can hint that index.&lt;/p&gt;</comment>
                            <comment id="184266" author="eka" created="Thu, 8 Nov 2012 20:55:30 +0000"  >&lt;p&gt;@Aaron, Can&apos;t reproduce now since after the hint it learned that and its using it. Will post when I get more data.&lt;/p&gt;</comment>
                            <comment id="183698" author="aaron" created="Wed, 7 Nov 2012 19:28:08 +0000"  >&lt;p&gt;Hi Esteban - Can you send explain output for the same queries, but provide a true argument to explain: find( ... ).explain( true )&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="55511">SERVER-7578</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="59478">SERVER-7944</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>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 7 Nov 2012 19:28:08 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        11 years, 9 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_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>ian@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            11 years, 9 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10020"><![CDATA[Linux]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>aaron</customfieldvalue>
            <customfieldvalue>eka</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrnikf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrkf5j:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>32889</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_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|hrvnjr:</customfieldvalue>

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