<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:24: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-73526] DocumentSourceGroup should spill in debug builds when allowDiskUse is true, not when allowDiskUse is false</title>
                <link>https://jira.mongodb.org/browse/SERVER-73526</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;There is longstanding behavior in which &lt;tt&gt;DocumentSourceGroup&lt;/tt&gt;&#160;will spill eagerly in debug builds, even when the memory limit is not yet exhausted. (Similar behavior was added in SBE&apos;s &lt;tt&gt;HashAggStage&lt;/tt&gt; as part of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-70395&quot; title=&quot;Slot-Based Engine too aggressively uses disk for $group and is slow&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-70395&quot;&gt;&lt;del&gt;SERVER-70395&lt;/del&gt;&lt;/a&gt;.) The goal is to gain extra coverage of the spilling logic in test environments. We currently perform this test-only extraneous spilling only when &lt;tt&gt;allowDiskUse&lt;/tt&gt; is false. See here:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/8a1ce1c8c1b902c60b421e14feca681bee735547/src/mongo/db/pipeline/document_source_group_base.cpp#L548&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/8a1ce1c8c1b902c60b421e14feca681bee735547/src/mongo/db/pipeline/document_source_group_base.cpp#L548&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This dates from the days when disk use was disallowed by default. The rationale was that when disk use is allowed, this means that the client has explicitly enabled spilling. and the query is likely trying to test spilling behavior explicitly. In such situations, the logic to spill eagerly did not kick in, as it could interfere with spilling-related tests. On the other hand, when disk use was not explicitly enabled, we would spill in the background, thus ensuring that all of our $group tests unrelated to spilling still work as expected even if spilling occurs.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-63208&quot; title=&quot;Make allowDiskUse opt-out rather than opt-in&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-63208&quot;&gt;&lt;del&gt;SERVER-63208&lt;/del&gt;&lt;/a&gt; recently made queries allow disk use by default, which rendered the debug build behavior described above stale. We are now only getting additional spilling test coverage in debug builds for queries that pass &lt;tt&gt;allowDiskUse:false&lt;/tt&gt; explicitly. This is presumably quite rare, and therefore we have lost useful test coverage. It is also arguably incorrect to spill to disk in debug builds even if spilling was explicitly prohibited by the client.&lt;/p&gt;

&lt;p&gt;The work for this ticket is to invert the logic so that the extra spilling in debug builds kicks in when &lt;tt&gt;allowDiskUse&lt;/tt&gt; is true and not when &lt;tt&gt;allowDiskUse&lt;/tt&gt; is false. This may require adjusting tests that make assertions about spill-related execution stats to either not run against debug builds, or to expect different spill behavior when running against a debug build.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2249879">SERVER-73526</key>
            <summary>DocumentSourceGroup should spill in debug builds when allowDiskUse is true, not when allowDiskUse is false</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="david.storch@mongodb.com">David Storch</assignee>
                                    <reporter username="david.storch@mongodb.com">David Storch</reporter>
                        <labels>
                    </labels>
                <created>Wed, 1 Feb 2023 18:19:34 +0000</created>
                <updated>Sun, 29 Oct 2023 21:27:03 +0000</updated>
                            <resolved>Tue, 2 May 2023 20:50:01 +0000</resolved>
                                                    <fixVersion>7.1.0-rc0</fixVersion>
                                    <component>Query Execution</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="5395618" author="xgen-internal-githook" created="Tue, 2 May 2023 20:32:19 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;David Storch&apos;, &apos;email&apos;: &apos;david.storch@mongodb.com&apos;, &apos;username&apos;: &apos;dstorch&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-73526&quot; title=&quot;DocumentSourceGroup should spill in debug builds when allowDiskUse is true, not when allowDiskUse is false&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-73526&quot;&gt;&lt;del&gt;SERVER-73526&lt;/del&gt;&lt;/a&gt; Invert logic for when DocumentSourceGroup does extra spilling in debug builds&lt;/p&gt;

&lt;p&gt;This behavior is intended to provide extra test coverage for&lt;br/&gt;
$group spilling. In the past, the extra spilling happened&lt;br/&gt;
unless disk use was explicitly enabled. Now that disk use is&lt;br/&gt;
allowed by default, it makes more sense to spill unless disk&lt;br/&gt;
use is explicitly disallowed.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c4c70867481f1e0a004fe7dd879b4810ddeb29b8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c4c70867481f1e0a004fe7dd879b4810ddeb29b8&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 28 Apr 2023 00:13:57 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        40 weeks, 1 day 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

                        </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>
                            40 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>david.storch@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1th7r:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1dbdk:</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_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="7229">QE 2023-05-15</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|i1t3d3:</customfieldvalue>

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