<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:05: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-24303] Enable tcmalloc aggressive decommit by default</title>
                <link>https://jira.mongodb.org/browse/SERVER-24303</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;In &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22906&quot; title=&quot;MongoD uses excessive memory over and above the WiredTiger cache size&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22906&quot;&gt;&lt;del&gt;SERVER-22906&lt;/del&gt;&lt;/a&gt; (among others), we recommend turning on tcmalloc&apos;s aggressive decommit feature, which we have disabled by default (overriding current tcmalloc&apos;s default).&lt;/p&gt;

&lt;p&gt;There are performance test regressions, we need to understand them and figure out if anything can be done to reduce the impact.  Then we need to make a cost/benefit decision.&lt;/p&gt;</description>
                <environment></environment>
        <key id="289753">SERVER-24303</key>
            <summary>Enable tcmalloc aggressive decommit by default</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="michael.cahill@mongodb.com">Michael Cahill</assignee>
                                    <reporter username="michael.cahill@mongodb.com">Michael Cahill</reporter>
                        <labels>
                    </labels>
                <created>Fri, 27 May 2016 04:13:25 +0000</created>
                <updated>Fri, 26 Aug 2016 03:19:38 +0000</updated>
                            <resolved>Fri, 19 Aug 2016 00:09:29 +0000</resolved>
                                                                    <component>Build</component>
                    <component>Storage</component>
                    <component>WiredTiger</component>
                                        <votes>0</votes>
                                    <watches>11</watches>
                                                                                                                <comments>
                            <comment id="1361677" author="michael.cahill" created="Fri, 19 Aug 2016 00:09:29 +0000"  >&lt;p&gt;Work in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-20306&quot; title=&quot;75% excess memory usage under WiredTiger during stress test&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-20306&quot;&gt;&lt;del&gt;SERVER-20306&lt;/del&gt;&lt;/a&gt;, &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22906&quot; title=&quot;MongoD uses excessive memory over and above the WiredTiger cache size&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22906&quot;&gt;&lt;del&gt;SERVER-22906&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/browse/WT-2665&quot; title=&quot;Limit allocator fragmentation in WiredTiger&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-2665&quot;&gt;&lt;del&gt;WT-2665&lt;/del&gt;&lt;/a&gt; has significantly reduced the amount of excess memory that accumulates in tcmalloc in MongoDB 3.4.  In addition, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=alexander.gorrod&quot; class=&quot;user-hover&quot; rel=&quot;alexander.gorrod&quot;&gt;alexander.gorrod&lt;/a&gt;&apos;s testing demonstrates that there is a non-trivial performance impact of enabling aggressive decommit.&lt;/p&gt;

&lt;p&gt;Given that, we have decided not to make this change for MongoDB 3.4.  There is still the option of manually enabling aggressive decommit via an environment variable if we find cases in the field where it would help.&lt;/p&gt;</comment>
                            <comment id="1360547" author="alexander.gorrod" created="Thu, 18 Aug 2016 05:32:58 +0000"  >&lt;p&gt;I&apos;ve done performance analysis comparing MongoDB with TCMalloc aggressive decommit enabled vs disabled. I have run tests both locally and via Evergreen.&lt;/p&gt;

&lt;p&gt;I have run the YCSB workloads that are configured in Evergreen locally for comparison. The table below summarizes the results, all numbers are in overall throughput (ops/sec):&lt;/p&gt;

&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class=&apos;confluenceTh&apos;&gt; Phase &lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt; Enabled &lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt; Enabled &lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt; Disabled &lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt; Disabled &lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt; % slower with enabled &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; load &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 23009 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 22445 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 24975 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 24375 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 8% &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 100% read &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 47905 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 47452 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 54373 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 54559 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 12% &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 95% read, 5% update &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 37482 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 37941 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 42855 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 42138 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 11% &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 50% read, 50% update &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 16004 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 14825 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 15167 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 15922 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 0% &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;


&lt;p&gt;I have also run the Evergreen performance tests with aggressive decommit enabled. There has been quite a lot of performance fluctuation recently, so it is difficult to get an accurate measure for the difference. There are at least some tests that show significant performance regressions with aggressive decommit enabled.&lt;/p&gt;

&lt;p&gt;The micro-benchmarks (MongoDB Perf suite) shows results that are mostly within standard variation except:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Insert with large documents has a 25-30% degradation (this test is flagged as passing with up to a 20% variation).&lt;/li&gt;
	&lt;li&gt;Misc DistinctWithIndex has a 20% degradation (this test is flagged as passing with up to a 15% variation).&lt;/li&gt;
	&lt;li&gt;singleThreaded tests that update large documents has up to 45% degradation (this test is flagged as passing with up to 10% variation).&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The system benchmarks (sys-perf suite) results that are outside standard variation are:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Insert TTL and Vector workloads up to 70% degradation (this test is flagged as passing with up to 12% variation).&lt;/li&gt;
	&lt;li&gt;YCSB all workloads show up to a 70% degradation (note that this is much more significant than my local testing).&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The above results are generally reproducible via Evergreen patch builds. Seeing a performance degradation for workloads that allocate large documents was expected, but I had thought it would be in the 10-15% range. The performance degradation in the YCSB tests is larger than is acceptable.&lt;/p&gt;

&lt;p&gt;Given that the performance degradation is so significant and that the amount of fragmentation that can be generated has already been limited by architectural changes in WiredTiger (see &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22906&quot; title=&quot;MongoD uses excessive memory over and above the WiredTiger cache size&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22906&quot;&gt;&lt;del&gt;SERVER-22906&lt;/del&gt;&lt;/a&gt;), I am inclined to leave aggressive decommit disabled by default for now. If users report seeing large amounts of memory reported in page heap free via serverStatus, we can recommend that they try enabling aggressive decommit via an environment variable.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="283994">SERVER-24019</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="269053">SERVER-22906</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>2.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>Thu, 18 Aug 2016 05:32:58 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        7 years, 25 weeks, 6 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-501</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>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            7 years, 25 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>alexander.gorrod@mongodb.com</customfieldvalue>
            <customfieldvalue>michael.cahill@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrk74v:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hslvaf:</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_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|hs9okf:</customfieldvalue>

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