<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 22:32:41 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>[COMPASS-3269] Poor performance when using Views in Compass</title>
                <link>https://jira.mongodb.org/browse/COMPASS-3269</link>
                <project id="13182" key="COMPASS">Compass </project>
                    <description>&lt;p&gt;A user is reporting a timeout problem in Compass when clicking on a View where the underlying collection has around 15.2m documents and a total size of 517.2GB. Document&apos;s average size is 35.6KB.&lt;/p&gt;

&lt;p&gt;I have been able to reproduce the same problem in my testing environment.&lt;/p&gt;

&lt;p&gt;The problem only appears when the original collection is fairly large, (in my testing I could only generate the problem when I had 5M documents in it) and the View is not using a &lt;tt&gt;$match&lt;/tt&gt; stage to filter out the content.&lt;/p&gt;


&lt;p&gt;Compass produce a timeout visible in the UI (see attachment)&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;connection 0 to localhost:27018 timed out&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;When the view is clicked in the UI, an aggregation pipeline is used to count the number of documents on the underlying collections. When the time to run this count command goes above a threshold that appears to be around 6 minutes, Compass timeout the operation.&lt;/p&gt;

&lt;p&gt;The following count operation is visible in the log:&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;2018-11-20T08:28:35.583+1100 D COMMAND  [conn74] run command test.$cmd { count: &quot;v_rides&quot;, query: {} }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;2018-11-20T08:28:35.583+1100 D COMMAND  [conn70] run command test.$cmd { count: &quot;v_rides&quot;, query: {}, skip: 0 }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;2018-11-20T08:35:16.744+1100 I COMMAND  [conn70] command test.v_rides appName: &quot;MongoDB Compass&quot; command: count { count: &quot;v_rides&quot;, query: {}, skip: 0 } planSummary: COLLSCAN keysExamined:0 docsExamined:5034881 cursorExhausted:1 numYields:39795 nreturned:1 reslen:40 locks:{ Global: { acquireCount: { r: 80268 } }, Database: { acquireCount: { r: 40134 } }, Collection: { acquireCount: { r: 40133 } } } protocol:op_query 401149ms&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;2018-11-20T08:35:16.754+1100 I COMMAND  [conn74] command test.v_rides command: count { count: &quot;v_rides&quot;, query: {} } planSummary: COLLSCAN keysExamined:0 docsExamined:5034881 cursorExhausted:1 numYields:39778 nreturned:1 reslen:40 locks:{ Global: { acquireCount: { r: 80234 } }, Database: { acquireCount: { r: 40117 } }, Collection: { acquireCount: { r: 40116 } } } protocol:op_query 401160ms&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;I believe this is an undesirable behaviour because:&lt;br/&gt;
1. If I click on the underlying collection documents are showed immediatelly&lt;br/&gt;
2. If the timeout is caused by the count operation taking too long, this could be improved.&lt;br/&gt;
3. Compass should be able to detect that a view is used and adapt its logic&lt;/p&gt;</description>
                <environment></environment>
        <key id="636334">COMPASS-3269</key>
            <summary>Poor performance when using Views in Compass</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="13201">Fixed</resolution>
                                        <assignee username="durran.jordan@mongodb.com">Durran Jordan</assignee>
                                    <reporter username="ivan.grigolon@mongodb.com">Ivan Grigolon</reporter>
                        <labels>
                    </labels>
                <created>Mon, 19 Nov 2018 22:31:08 +0000</created>
                <updated>Sun, 29 Oct 2023 02:41:10 +0000</updated>
                            <resolved>Fri, 21 Dec 2018 19:47:17 +0000</resolved>
                                                    <fixVersion>1.18.0</fixVersion>
                                    <component>Compass</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="2098927" author="xgen-internal-githook" created="Fri, 21 Dec 2018 21:26:15 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;durran&apos;, &apos;email&apos;: &apos;durran@gmail.com&apos;, &apos;name&apos;: &apos;Durran Jordan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-3269&quot; title=&quot;Poor performance when using Views in Compass&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-3269&quot;&gt;&lt;del&gt;COMPASS-3269&lt;/del&gt;&lt;/a&gt;: Fix pagination for readonly views&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/compass/commit/30e280196f79423bb1be9be087b228101763bcc8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/compass/commit/30e280196f79423bb1be9be087b228101763bcc8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2098818" author="xgen-internal-githook" created="Fri, 21 Dec 2018 20:00:41 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;durran&apos;, &apos;email&apos;: &apos;durran@gmail.com&apos;, &apos;name&apos;: &apos;Durran Jordan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-3269&quot; title=&quot;Poor performance when using Views in Compass&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-3269&quot;&gt;&lt;del&gt;COMPASS-3269&lt;/del&gt;&lt;/a&gt;: Fix pagination for readonly views&lt;br/&gt;
Branch: &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-3269&quot; title=&quot;Poor performance when using Views in Compass&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-3269&quot;&gt;&lt;del&gt;COMPASS-3269&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/compass/commit/39ce9f36cc6548b5cc0368a6f276e60e703e357a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/compass/commit/39ce9f36cc6548b5cc0368a6f276e60e703e357a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2090462" author="xgen-internal-githook" created="Thu, 13 Dec 2018 22:48:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;durran&apos;, &apos;email&apos;: &apos;durran@gmail.com&apos;, &apos;name&apos;: &apos;Durran Jordan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-3269&quot; title=&quot;Poor performance when using Views in Compass&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-3269&quot;&gt;&lt;del&gt;COMPASS-3269&lt;/del&gt;&lt;/a&gt;: Add maxTimeMS where count is used&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/compass/commit/c7f1d07ec6a0997fd48e371afbd57fbd32ba33a5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/compass/commit/c7f1d07ec6a0997fd48e371afbd57fbd32ba33a5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2089776" author="xgen-internal-githook" created="Thu, 13 Dec 2018 16:45:53 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;durran&apos;, &apos;email&apos;: &apos;durran@gmail.com&apos;, &apos;name&apos;: &apos;Durran Jordan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-3269&quot; title=&quot;Poor performance when using Views in Compass&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-3269&quot;&gt;&lt;del&gt;COMPASS-3269&lt;/del&gt;&lt;/a&gt;: Add maxTimeMS where count is used&lt;br/&gt;
Branch: &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-3269&quot; title=&quot;Poor performance when using Views in Compass&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-3269&quot;&gt;&lt;del&gt;COMPASS-3269&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/compass/commit/3b039d6cb7a397ccec692443136c7a399df6247f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/compass/commit/3b039d6cb7a397ccec692443136c7a399df6247f&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="644931">COMPASS-3347</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="201398" name="COMPASS.jpeg" size="229359" author="ivan.grigolon@mongodb.com" created="Mon, 19 Nov 2018 22:23:12 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[500A000000ceDKmIAM]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 26 Nov 2018 09:47:47 +0000</customfieldvalue>

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

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr7t0v:</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="2731">Iteration Unagi</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_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hucxaf:</customfieldvalue>

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