<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:36:44 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-55535] Performance tests to exercise change streams optimizations</title>
                <link>https://jira.mongodb.org/browse/SERVER-55535</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description></description>
                <environment></environment>
        <key id="1659849">SERVER-55535</key>
            <summary>Performance tests to exercise change streams optimizations</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="justin.seyster@mongodb.com">Justin Seyster</assignee>
                                    <reporter username="justin.seyster@mongodb.com">Justin Seyster</reporter>
                        <labels>
                    </labels>
                <created>Thu, 25 Mar 2021 22:56:39 +0000</created>
                <updated>Sun, 29 Oct 2023 21:55:45 +0000</updated>
                            <resolved>Mon, 25 Oct 2021 17:25:38 +0000</resolved>
                                                    <fixVersion>5.2.0</fixVersion>
                    <fixVersion>5.0.5</fixVersion>
                    <fixVersion>5.1.1</fixVersion>
                                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="4870702" author="bernard.gorman" created="Sat, 1 Oct 2022 14:50:22 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=ywu%40stripe.com&quot; class=&quot;user-hover&quot; rel=&quot;ywu@stripe.com&quot;&gt;ywu@stripe.com&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;The phrase &quot;change streams are optimized&quot; is referring to the work done to resolve &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48694&quot; title=&quot;Push down user-defined stages in a change stream pipeline where possible&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48694&quot;&gt;&lt;del&gt;SERVER-48694&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56872&quot; title=&quot;Add optimization function to apply $match predicates on change streams events directly to oplog entry&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56872&quot;&gt;&lt;del&gt;SERVER-56872&lt;/del&gt;&lt;/a&gt;. Prior to 5.1, any &lt;tt&gt;$match&lt;/tt&gt; or &lt;tt&gt;$project&lt;/tt&gt; stages that the user added to the change stream aggregation were only applied at the very end of the pipeline, meaning that the stream had to read, process and transform every potentially-relevant event &lt;b&gt;&lt;em&gt;before&lt;/em&gt;&lt;/b&gt; filtering out only the ones the user was actually interested in. This inefficiency was particularly pronounced in a sharded cluster, since the &lt;tt&gt;$match&lt;/tt&gt; and &lt;tt&gt;$project&lt;/tt&gt; stages had to run on &lt;tt&gt;mongoS&lt;/tt&gt;; the stream would therefore send all events from the shards over the network to &lt;tt&gt;mongoS&lt;/tt&gt;, and would only then discard the ones that the user did not want. An explanation of why this was necessary &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48694?focusedCommentId=3269243&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-3269243&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;is provided in this comment&lt;/a&gt; on &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48694&quot; title=&quot;Push down user-defined stages in a change stream pipeline where possible&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48694&quot;&gt;&lt;del&gt;SERVER-48694&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Starting in MongoDB 5.1, if the change stream pipeline contains &lt;tt&gt;$match&lt;/tt&gt; and &lt;tt&gt;$project&lt;/tt&gt; stages, we will push those stages down to execute on the shards, so that only the subset of results that the user requested are returned to &lt;tt&gt;mongoS&lt;/tt&gt;. Additionally, we examine the user&apos;s &lt;tt&gt;$match&lt;/tt&gt; stage and attempt to rewrite as much of the filter as possible to apply directly to the oplog scan at the very beginning of the change stream pipeline; this allows us to filter out events before any processing or transformation is applied to them. For selective filters that can be rewritten into the oplog, this can result in a significant performance improvement relative to 5.0 and earlier.&lt;/p&gt;

&lt;p&gt;Hope this helps to clarify the changes in 5.1!&lt;/p&gt;

&lt;p&gt;Best regards,&lt;br/&gt;
Bernard&lt;/p&gt;</comment>
                            <comment id="4867675" author="JIRAUSER1269225" created="Fri, 30 Sep 2022 06:26:02 +0000"  >&lt;p&gt;Hi, I see on the &lt;a href=&quot;https://www.mongodb.com/docs/manual/changeStreams/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;document&lt;/a&gt; that mentions:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Starting in MongoDB 5.1, change streams are optimized, providing more efficient resource utilization and faster execution of some aggregation pipeline stages.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Could you share any insights around what were the issue in pre-5.1 and what were the optimizations? I only found this one related to memory usage &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36346&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.mongodb.org/browse/SERVER-36346&lt;/a&gt; &#8211; is there some other perf issues?&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Thanks!&lt;/p&gt;</comment>
                            <comment id="4184754" author="xgen-internal-githook" created="Fri, 12 Nov 2021 02:11:41 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Justin Seyster&apos;, &apos;email&apos;: &apos;justin.seyster@mongodb.com&apos;, &apos;username&apos;: &apos;jseyster&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-55535&quot; title=&quot;Performance tests to exercise change streams optimizations&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-55535&quot;&gt;&lt;del&gt;SERVER-55535&lt;/del&gt;&lt;/a&gt; Performance tests to exercise change streams optimizations&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 04c9b53b185df98de8e5dfda57420411e59e9cad)&lt;br/&gt;
Branch: v5.1&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ce992d046993dd88d3993aa4c7311c8a6550d562&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ce992d046993dd88d3993aa4c7311c8a6550d562&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4168746" author="xgen-internal-githook" created="Thu, 4 Nov 2021 07:11:33 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Justin Seyster&apos;, &apos;email&apos;: &apos;justin.seyster@mongodb.com&apos;, &apos;username&apos;: &apos;jseyster&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-55535&quot; title=&quot;Performance tests to exercise change streams optimizations&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-55535&quot;&gt;&lt;del&gt;SERVER-55535&lt;/del&gt;&lt;/a&gt; Performance tests to exercise change streams optimizations&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 04c9b53b185df98de8e5dfda57420411e59e9cad)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/43a930d200a4e131d91294236949b3de2e114b85&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/43a930d200a4e131d91294236949b3de2e114b85&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4140680" author="xgen-internal-githook" created="Fri, 22 Oct 2021 02:44:44 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Justin Seyster&apos;, &apos;email&apos;: &apos;justin.seyster@mongodb.com&apos;, &apos;username&apos;: &apos;jseyster&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-55535&quot; title=&quot;Performance tests to exercise change streams optimizations&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-55535&quot;&gt;&lt;del&gt;SERVER-55535&lt;/del&gt;&lt;/a&gt; Performance tests to exercise change streams optimizations&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/04c9b53b185df98de8e5dfda57420411e59e9cad&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/04c9b53b185df98de8e5dfda57420411e59e9cad&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                                        </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1529896">SERVER-52283</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1880261">SERVER-60138</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1377214">SERVER-48694</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1711413">SERVER-56872</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_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="22495"><![CDATA[v5.1]]></customfieldvalue>
    <customfieldvalue key="21777"><![CDATA[v5.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, 21 Oct 2021 19:31:22 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 18 weeks, 4 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/PERF-2631'>PERF-2631</a></s>]]></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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1942</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>
                            1 year, 18 weeks, 4 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>bernard.gorman@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>justin.seyster@mongodb.com</customfieldvalue>
            <customfieldvalue>ywu@stripe.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hz1cbr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr2o7z:</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="5267">QE 2021-10-18</customfieldvalue>
    <customfieldvalue id="5269">QE 2021-11-01</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|hz0ykv:</customfieldvalue>

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