<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:15:11 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-27437] $graphLookup stage should use Documents instead of BSONObj in the visited set and cache</title>
                <link>https://jira.mongodb.org/browse/SERVER-27437</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;When &lt;tt&gt;$graphLookup&lt;/tt&gt; was originally implemented, it used the &lt;tt&gt;DBDirectClient&lt;/tt&gt; to issue queries into the foreign collection, which returned results in BSON. During &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-25005&quot; title=&quot;Execute queries in $lookup and $graphLookup with an explicit Pipeline instead of DBDirectClient&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-25005&quot;&gt;&lt;del&gt;SERVER-25005&lt;/del&gt;&lt;/a&gt;, we switched from using the &lt;tt&gt;DBDirectClient&lt;/tt&gt; to using a &lt;tt&gt;Pipeline&lt;/tt&gt; object, which gave back &lt;tt&gt;Documents&lt;/tt&gt; instead of &lt;tt&gt;BSONObjs&lt;/tt&gt;. However, we still store &lt;tt&gt;BSONObjs&lt;/tt&gt; in both &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.1/src/mongo/db/pipeline/document_source_graph_lookup.h#L198&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the visited set&lt;/a&gt; and the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.1/src/mongo/db/pipeline/document_source_graph_lookup.h#L202&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;cache&lt;/a&gt; (evidence that it uses BSON &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.1/src/mongo/db/pipeline/lookup_set_cache.h#L65&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;Using BSON is likely slower due to the need to convert between the two formats (&lt;tt&gt;Document&lt;/tt&gt; and &lt;tt&gt;BSONObj&lt;/tt&gt;). We already pay the overhead to convert the results from the foreign collection into Documents (since they are wrapped in a Pipeline), so we shouldn&apos;t undo that work and put them back into BSON, only to end up &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.1/src/mongo/db/pipeline/document_source_graph_lookup.cpp#L98-L106&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;putting them in the &apos;as&apos; field again as &lt;tt&gt;Values&lt;/tt&gt;&lt;/a&gt; (which will &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.1/src/mongo/db/pipeline/value.cpp#L148&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;first convert the &lt;tt&gt;BSONObjs&lt;/tt&gt; to &lt;tt&gt;Documents&lt;/tt&gt;&lt;/a&gt;).&lt;/p&gt;</description>
                <environment></environment>
        <key id="339234">SERVER-27437</key>
            <summary>$graphLookup stage should use Documents instead of BSONObj in the visited set and cache</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="9">Done</resolution>
                                        <assignee username="charlie.swanson@mongodb.com">Charlie Swanson</assignee>
                                    <reporter username="charlie.swanson@mongodb.com">Charlie Swanson</reporter>
                        <labels>
                    </labels>
                <created>Thu, 15 Dec 2016 20:27:24 +0000</created>
                <updated>Wed, 5 Apr 2017 11:42:31 +0000</updated>
                            <resolved>Fri, 20 Jan 2017 22:32:33 +0000</resolved>
                                                    <fixVersion>3.5.2</fixVersion>
                                    <component>Aggregation Framework</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="1481730" author="xgen-internal-githook" created="Fri, 20 Jan 2017 22:32:08 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;cswanson310&apos;, u&apos;name&apos;: u&apos;Charlie Swanson&apos;, u&apos;email&apos;: u&apos;charlie.swanson@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27437&quot; title=&quot;$graphLookup stage should use Documents instead of BSONObj in the visited set and cache&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27437&quot;&gt;&lt;del&gt;SERVER-27437&lt;/del&gt;&lt;/a&gt; Use Documents instead of BSONObjs within $graphLookup&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1aae7f519532707c40c3d19262b589ccd0c7ee08&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1aae7f519532707c40c3d19262b589ccd0c7ee08&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1481729" author="xgen-internal-githook" created="Fri, 20 Jan 2017 22:32:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;cswanson310&apos;, u&apos;name&apos;: u&apos;Charlie Swanson&apos;, u&apos;email&apos;: u&apos;charlie.swanson@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27437&quot; title=&quot;$graphLookup stage should use Documents instead of BSONObj in the visited set and cache&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27437&quot;&gt;&lt;del&gt;SERVER-27437&lt;/del&gt;&lt;/a&gt; Add dotted path expansion for Documents.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d60dd07f3f470b702092b6b54e15586a5177d8a1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d60dd07f3f470b702092b6b54e15586a5177d8a1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1481728" author="xgen-internal-githook" created="Fri, 20 Jan 2017 22:32:06 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;cswanson310&apos;, u&apos;name&apos;: u&apos;Charlie Swanson&apos;, u&apos;email&apos;: u&apos;charlie.swanson@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27437&quot; title=&quot;$graphLookup stage should use Documents instead of BSONObj in the visited set and cache&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27437&quot;&gt;&lt;del&gt;SERVER-27437&lt;/del&gt;&lt;/a&gt; Modernize field_path_test.cpp&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2c6c114e3952e952de1a395f987f1c5b83d209fe&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2c6c114e3952e952de1a395f987f1c5b83d209fe&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>3.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_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, 20 Jan 2017 22:32:06 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        7 years, 3 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>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, 3 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>charlie.swanson@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|hrjojz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrbn1j:</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="1438">Query 2017-01-23</customfieldvalue>
    <customfieldvalue id="1465">Query 2017-02-13</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|hs4lkf:</customfieldvalue>

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