<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:56:39 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-85040] Measure sys-perf performance with SBE</title>
                <link>https://jira.mongodb.org/browse/SERVER-85040</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description></description>
                <environment></environment>
        <key id="1326769">SERVER-85040</key>
            <summary>Measure sys-perf performance with SBE</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="13201">Fixed</resolution>
                                        <assignee username="anton.korshunov@mongodb.com">Anton Korshunov</assignee>
                                    <reporter username="david.storch@mongodb.com">David Storch</reporter>
                        <labels>
                    </labels>
                <created>Thu, 23 Apr 2020 14:01:08 +0000</created>
                <updated>Fri, 12 Jan 2024 03:01:08 +0000</updated>
                            <resolved>Wed, 6 May 2020 08:30:08 +0000</resolved>
                                                                                        <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="3073188" author="anton.korshunov" created="Thu, 7 May 2020 06:02:28 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=david.storch&quot; class=&quot;user-hover&quot; rel=&quot;david.storch&quot;&gt;david.storch&lt;/a&gt;, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=martin.neupauer&quot; class=&quot;user-hover&quot; rel=&quot;martin.neupauer&quot;&gt;martin.neupauer&lt;/a&gt; OK, I&apos;ve got the correct numbers. Overall, we&apos;re better than MDB for most workloads! With a few exceptions though, see below.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Query.
	&lt;ul&gt;
		&lt;li&gt;Improvement is between 5-57%.&lt;/li&gt;
		&lt;li&gt;There are two pretty bad regressions though at 85% for a marginal case when we use a projection consisting of 131 fields. This is a known problem which we discussed with Martin some time ago. Basically, it&apos;s a combination of two unfortunate factors that we call getField on each projected field, and then use the mkobj stage which is not super efficient. We were thinking to change the latter to construct a BSONObj on the fly, rather than an SBE Object and then convert into a BSONObj in the PlanExecutor, but we never did it.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Aggregate.
	&lt;ul&gt;
		&lt;li&gt;Improvement is modest at 2-20%.&lt;/li&gt;
		&lt;li&gt;Same 85% regression with large projections.&lt;/li&gt;
		&lt;li&gt;And another two workloads with a projection show 23-30% regression. The same workloads using Query show improvement (one at 52%). I don&apos;t know how to explain it though.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Here are the results compared against two previous runs: &lt;a href=&quot;https://evergreen.mongodb.com/task/sys_perf_linux_standalone_bestbuy_query_patch_db1fae33b7835bc1cae5b3f54365b860e40ac7c1_5eb07763e3c33102155ab625_20_05_04_20_14_08##%257B%2522hiddenGraphs%2522%253A%255B%2522canary_server-cpuloop-10x%2522%252C%2522canary_client-cpuloop-1x%2522%252C%2522canary_client-cpuloop-10x%2522%252C%2522canary_server-sleep-10ms%2522%252C%2522canary_ping%2522%252C%2522fio_latency_test_write_clat_mean%2522%252C%2522fio_latency_test_read_clat_mean%2522%252C%2522fio_iops_test_write_iops%2522%252C%2522fio_iops_test_read_iops%2522%252C%2522fio_streaming_bandwidth_test_write_iops%2522%252C%2522fio_streaming_bandwidth_test_read_iops%2522%252C%2522NetworkBandwidth%2522%255D%252C%2522compare%2522%253A%255B%257B%2522hash%2522%253A%2522db1fae33b7835bc1cae5b3f54365b860e40ac7c1%2522%257D%252C%257B%2522hash%2522%253A%25220eb06f2%2522%257D%252C%257B%2522hash%2522%253A%252252a73692175cad37f942ff5e6f3d70aacbbb113d%2522%257D%255D%257D&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;query&lt;/a&gt; and &lt;a href=&quot;https://evergreen.mongodb.com/task/sys_perf_linux_standalone_bestbuy_agg_patch_db1fae33b7835bc1cae5b3f54365b860e40ac7c1_5eb07763e3c33102155ab625_20_05_04_20_14_08##%257B%2522hiddenGraphs%2522%253A%255B%2522canary_server-cpuloop-10x%2522%252C%2522canary_client-cpuloop-1x%2522%252C%2522canary_client-cpuloop-10x%2522%252C%2522canary_server-sleep-10ms%2522%252C%2522canary_ping%2522%252C%2522fio_latency_test_write_clat_mean%2522%252C%2522fio_latency_test_read_clat_mean%2522%252C%2522fio_iops_test_write_iops%2522%252C%2522fio_iops_test_read_iops%2522%252C%2522fio_streaming_bandwidth_test_write_iops%2522%252C%2522fio_streaming_bandwidth_test_read_iops%2522%252C%2522NetworkBandwidth%2522%255D%252C%2522compare%2522%253A%255B%257B%2522hash%2522%253A%252201583bbf5e0884c94dcb2545be47cc3104ccbd11%2522%257D%252C%257B%2522hash%2522%253A%25220eb06f28fdb4feadc612f49b4ea63fe024b3705c%2522%257D%252C%257B%2522hash%2522%253A%252252a73692175cad37f942ff5e6f3d70aacbbb113d%2522%257D%255D%257D&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;agg&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="3072781" author="anton.korshunov" created="Wed, 6 May 2020 21:06:59 +0000"  >&lt;p&gt;I probably could, but then I&apos;d have to rerun the compile task again. It&apos;s running now with SBE turned on.&lt;/p&gt;</comment>
                            <comment id="3072767" author="david.storch" created="Wed, 6 May 2020 20:58:10 +0000"  >&lt;p&gt;Can you just change query_knobs.idl to turn SBE on by default instead of patching dsi?&lt;/p&gt;</comment>
                            <comment id="3072728" author="anton.korshunov" created="Wed, 6 May 2020 20:40:58 +0000"  >&lt;p&gt;Wait, what?! Did I really forget to patch a dsi module? Oh boy. Alright, bear with me, I will rerun it shortly. Thanks for the great catch! &lt;/p&gt;</comment>
                            <comment id="3072633" author="david.storch" created="Wed, 6 May 2020 20:03:19 +0000"  >&lt;p&gt;Thanks &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=anton.korshunov&quot; class=&quot;user-hover&quot; rel=&quot;anton.korshunov&quot;&gt;anton.korshunov&lt;/a&gt;! Are you sure the patch build you ran is measuring SBE performance, though? I notice that the patch submitted to Evergreen did not change the default value of &lt;tt&gt;internalQueryEnableSlotBasedExecutionEngine&lt;/tt&gt; to true. Am I missing something, or was this a mistake? Assuming that these numbers are really from SBE execution, do you have any intuition as to why the find queries show no improvement? These seem like the kind of queries that might show a real benefit from SBE, even if the improvement is small.&lt;/p&gt;</comment>
                            <comment id="3068801" author="anton.korshunov" created="Tue, 5 May 2020 09:27:08 +0000"  >&lt;p&gt;I executed the sys-perf benchmark, and the results are good overall. The only relevant workload was bestbuy_agg_query_comparison, which can be run using either find or aggregate engines. So, I did both and the results can be found &lt;a href=&quot;https://evergreen.mongodb.com/version/5eb07763e3c33102155ab625&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Notably, there was no regression in the aggregate version of the workload. But there was no any significant improvement either.&lt;/p&gt;

&lt;p&gt;The find version was also mostly fine, with the only test showing 14% regression being the find_limit test. I&apos;m pretty sure this is due to the fact that we combined the skip and limit stages into a single limitskip stage, and we use a boost::optional on each getNext call to compare the current counter agains the limit. We may want to consider splitting the limitskip stage into two stages to buy back the performance.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=david.storch&quot; class=&quot;user-hover&quot; rel=&quot;david.storch&quot;&gt;david.storch&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=martin.neupauer&quot; class=&quot;user-hover&quot; rel=&quot;martin.neupauer&quot;&gt;martin.neupauer&lt;/a&gt;, FYI.&lt;/p&gt;</comment>
                            <comment id="3062275" author="anton.korshunov" created="Thu, 30 Apr 2020 12:49:46 +0000"  >&lt;p&gt;Sysperf workloads are failing on getMore somewhere deep in WT. I&apos;m going to give it another try once we rebase to latest master.&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>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 30 Apr 2020 12:49:46 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 40 weeks 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-1829</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>kelly.lewis@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 40 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>anton.korshunov@mongodb.com</customfieldvalue>
            <customfieldvalue>david.storch@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxhaon:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hx4pqv:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="3499">Query 2020-05-04</customfieldvalue>
    <customfieldvalue id="3500">Query 2020-05-18</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|hxgwxz:</customfieldvalue>

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