<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:06: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-4507] aggregation:  optimize $group to take advantage of sorted sequences</title>
                <link>https://jira.mongodb.org/browse/SERVER-4507</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;If the input to a $group is sorted by the _id, then only one bucket needs to be maintained at a time.  This will reduce memory requirements significantly.&lt;/p&gt;

&lt;p&gt;We can examine the _id and take advantage of this if we can force an index scan on the key, if there are no intervening pipeline operations that would affect the results.&lt;/p&gt;</description>
                <environment></environment>
        <key id="26715">SERVER-4507</key>
            <summary>aggregation:  optimize $group to take advantage of sorted sequences</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="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="backlog-query-execution">Backlog - Query Execution</assignee>
                                    <reporter username="dan@mongodb.com">Daniel Pasette</reporter>
                        <labels>
                            <label>optimization</label>
                    </labels>
                <created>Thu, 15 Dec 2011 23:29:24 +0000</created>
                <updated>Tue, 9 Jan 2024 19:35:26 +0000</updated>
                                                                            <component>Aggregation Framework</component>
                                        <votes>54</votes>
                                    <watches>75</watches>
                                                                                                                <comments>
                            <comment id="4078242" author="gaprice@lbl.gov" created="Wed, 22 Sep 2021 18:03:56 +0000"  >&lt;p&gt;Hi Asya,&lt;/p&gt;

&lt;p&gt;&amp;gt; Please note however that in your example &lt;tt&gt;$limit:10&lt;/tt&gt; applies to the number of grouped documents kept (which is inconsistent with your comment about keeping first ten documents for each group).&lt;/p&gt;

&lt;p&gt;I actually do want the limit to apply to the entire aggregation, not individual groups. I&apos;ve edited my comment to make that more clear. The problem I&apos;m having with the query in my comment is that there are millions of groups in my DB, and so the query runs out of memory storing all those groups. If the limit was applied while the grouping process was ongoing, the process would only ever have to store &amp;lt;=10 groups, and could then return.&lt;/p&gt;

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

&lt;p&gt;Does this change the tickets you think are pertinent?&lt;/p&gt;</comment>
                            <comment id="4077930" author="asya" created="Wed, 22 Sep 2021 16:30:04 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=gaprice%40lbl.gov&quot; class=&quot;user-hover&quot; rel=&quot;gaprice@lbl.gov&quot;&gt;gaprice@lbl.gov&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I believe part of the use case you describe is actually covered by &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-9507&quot; title=&quot;Optimize $sort+$group+$first pipeline to avoid full index scan&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-9507&quot;&gt;&lt;del&gt;SERVER-9507&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40090&quot; title=&quot;DISTINCT_SCAN in agg is only used when certain format of _id is specified&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40090&quot;&gt;&lt;del&gt;SERVER-40090&lt;/del&gt;&lt;/a&gt; (and related linked tickets).&#160; For your case of multiple fields to be grouped on,&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-53626&quot; title=&quot;Minimize index scanning when retrieving distinct values grouped by more than one field&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-53626&quot;&gt;SERVER-53626&lt;/a&gt; would be the ticket to watch/vote up.&lt;/p&gt;

&lt;p&gt;At least the more efficient use of the index is covered to make $group more efficient is covered - post-$group limit cannot be absorbed into $group unless $group is known to be streaming.&lt;/p&gt;

&lt;p&gt;Please note however that in your example &lt;tt&gt;$limit:10&lt;/tt&gt; applies to the number of grouped documents kept (which is inconsistent with your comment about keeping first ten documents for each group).&lt;/p&gt;</comment>
                            <comment id="4073186" author="gaprice@lbl.gov" created="Tue, 21 Sep 2021 00:17:48 +0000"  >&lt;p&gt;I believe this is a use case that would be enabled by this change, assuming $group and $limit can coalesce:&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.mycol.aggregate([&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;   {$sort: {container: 1, id: 1, ver: -1}}, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;   {$group: {_id:{container: &quot;$container&quot;, id: &quot;$id&quot;}, data: {$first: &quot;$$ROOT&quot;}}}, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;   {$limit: 10}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;])&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;In this case, there is an index that covers the sort, so the aggregation effectively just needs to walk the index and find the maximum version for each &lt;tt&gt;container&lt;/tt&gt; and &lt;tt&gt;id&lt;/tt&gt;, stopping after 10 documents / groups. Instead, the aggregation fails because it groups every &lt;tt&gt;container&lt;/tt&gt; and &lt;tt&gt;id&lt;/tt&gt;, and there are ~20M groups in the DB.&lt;/p&gt;</comment>
                            <comment id="2296740" author="gimperiale" created="Tue, 25 Jun 2019 15:43:35 +0000"  >&lt;p&gt;A use case where this would give a 100x speed boost is described in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41891&quot; title=&quot;$group on sorted cursor forces full collection scan&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41891&quot;&gt;&lt;del&gt;SERVER-41891&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2052060" author="jwatts" created="Mon, 5 Nov 2018 17:38:57 +0000"  >&lt;p&gt;I agree that I &lt;em&gt;should&lt;/em&gt; not need to spill to disk (external sort) but the fact is that I do. And as I understand it, that is the issue I&apos;m commenting on. The $group stage &lt;em&gt;could&lt;/em&gt; know that its input is sorted because it used an index but it does not take advantage of that fact to avoid blocking the pipeline and consuming a bunch of memory:&lt;/p&gt;

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

&lt;p&gt;&amp;gt; db.User.explain().aggregate({$match: {emailAddress: {$exists: true}}}, {$limit: 1000000}, {$group: {_id: &quot;$emailAddress&quot;, count: {$sum: 1}}})&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;&quot;winningPlan&quot; : { &quot;winningPlan&quot; : { &quot;stage&quot; : &quot;FETCH&quot;, &quot;inputStage&quot; : { &quot;stage&quot; : &quot;IXSCAN&quot;, &quot;keyPattern&quot; : &lt;/p&gt;
{ &quot;emailAddress&quot; : 1 }

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;&amp;gt; db.User.aggregate({$match: {emailAddress: {$exists: true}}}, {$limit: 1000000}, {$group: {_id: &quot;$emailAddress&quot;, count: {$sum: 1}}})&lt;/p&gt;

&lt;p&gt;assert: command failed: &lt;/p&gt;
{

&quot;ok&quot; : 0,

&quot;errmsg&quot; : &quot;Exceeded memory limit for $group, but didn&apos;t allow external sort. Pass allowDiskUse:true to opt in.&quot;,

&quot;code&quot; : 16945,

&quot;codeName&quot; : &quot;Location16945&quot;

}

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

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

&lt;p&gt;Regarding &quot;eventually-consistent&quot; you are right of course. I was using completely the wrong term. What I meant was that only the _id index of a sharded collection can be a unique index &lt;a href=&quot;https://docs.mongodb.com/v3.6/core/sharding-shard-key/#sharding-shard-key-unique&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.mongodb.com/v3.6/core/sharding-shard-key/#sharding-shard-key-unique&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Maintaining an invariant in your application such as &quot;users, keyed by user id, also have unique email addresses&quot; requires the application to do maintenance work which is made more difficult because $group does not take advantage of its input being sorted.&lt;/p&gt;</comment>
                            <comment id="2027402" author="asya" created="Tue, 9 Oct 2018 07:34:05 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jwatts&quot; class=&quot;user-hover&quot; rel=&quot;jwatts&quot;&gt;jwatts&lt;/a&gt; I&apos;m not sure I understand your case or how it relates to this ticket.  Index would be used in $match in 1. and the documents would already be sorted on that field so group would be already taking advantage of it.  This ticket is tracking the work where $group would not get the data in sorted order.   It&apos;s also not clear that you would need to spill to disk here as the data will be coming in already sorted.   2. seems to describe the client doing equivalent work I guess.&lt;/p&gt;

&lt;p&gt;&amp;gt; Deduplicating on an indexed field is an expected use case, especially since Mongo is eventually-consistent.&lt;/p&gt;

&lt;p&gt;I&apos;m not sure what you mean by eventually-consistent - MongoDB actually isn&apos;t eventually consistent (you see the data in the same state/order on all nodes, unlike in eventually consistent systems where updates on different fields/records may arrive to different nodes in different order).   I&apos;m also not clear how this relates to this particular ticket.&lt;/p&gt;</comment>
                            <comment id="2017073" author="jwatts" created="Thu, 27 Sep 2018 23:48:56 +0000"  >&lt;p&gt;Here&apos;s a use case I just encountered where I would expect the performance improvement to be significant. I have a large collection and I want to find duplicates on an indexed field that is only sometimes populated. As I understand it, I have the following options:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Use the index in a $match to load the documents with the field populated, then $group and $match only count &amp;gt; 1. Spill to disk for sort.&lt;/li&gt;
	&lt;li&gt;Use a find on the index and return all the documents that have the field, in order and skip the (many) which are not actually duplicates.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Deduplicating on an indexed field is an expected use case, especially since Mongo is eventually-consistent.&lt;/p&gt;</comment>
                            <comment id="1523995" author="asya" created="Tue, 14 Mar 2017 20:50:44 +0000"  >&lt;p&gt;First, let me say that we are doing a lot of work on improving performance of all stages in aggregation pipeline.&lt;/p&gt;

&lt;p&gt;However, as the description says, this ticket is only tracking &lt;tt&gt;$group&lt;/tt&gt; using less resources (memory) and being more efficient when its input is &lt;b&gt;already sorted by the group key&lt;/b&gt;. Our tests show that this improvement alone does not provide a significant performance improvement in most use cases.&lt;/p&gt;

&lt;p&gt;There are other tickets that track performance improvements. Index selection is covered by &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-20066&quot; title=&quot;Query planner should consider index scans on empty query predicates&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-20066&quot;&gt;&lt;del&gt;SERVER-20066&lt;/del&gt;&lt;/a&gt;. Currently when aggregation has &lt;tt&gt;$group&lt;/tt&gt; stage first, we will do a collection scan rather than considering an index scan when sometimes index may provide (covered) results in sorted order for &lt;tt&gt;$group&lt;/tt&gt; to take advantage of. Note that we also implemented support for hints in aggregation &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27848&quot; title=&quot;Add index hint to aggregation and non-materialized views&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27848&quot;&gt;&lt;del&gt;SERVER-27848&lt;/del&gt;&lt;/a&gt; which adds a way to &quot;tell&quot; the aggregation to use a particular index.&lt;/p&gt;

&lt;p&gt;Our apologies for circular nature of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23318&quot; title=&quot;Streaming $group does not handle nullish values correctly.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23318&quot;&gt;&lt;del&gt;SERVER-23318&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4507&quot; title=&quot;aggregation:  optimize $group to take advantage of sorted sequences&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4507&quot;&gt;SERVER-4507&lt;/a&gt;. This was a bookkeeping error on our end. The remaining work required to implement a non-blocking $group operator is tracked by this ticket, not by &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23318&quot; title=&quot;Streaming $group does not handle nullish values correctly.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23318&quot;&gt;&lt;del&gt;SERVER-23318&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="1521336" author="oleg@evergage.com" created="Fri, 10 Mar 2017 18:21:10 +0000"  >&lt;p&gt;Disappointed that this was moved out of 3.4 and into 3.6.&lt;/p&gt;

&lt;p&gt;This is far more than a mere optimization, it&apos;s a major performance feature. Solving this issue opens up a new class of data design options, which we cannot employ right now due to inability to performantly aggregate over these data designs.&lt;/p&gt;

&lt;p&gt;For one example, in MMAP, one could get away with larger documents, the updates to which were often applied in-place. However, with WiredTiger, it is no longer doing in-place updates of objects, but doing complete document overwrites for any change. But some of the options to break down the larger documents are impractical due to memory constraints, due to lack of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4507&quot; title=&quot;aggregation:  optimize $group to take advantage of sorted sequences&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4507&quot;&gt;SERVER-4507&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, I see that the summary is circular. The quote above says &quot;disabled until &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23318&quot; title=&quot;Streaming $group does not handle nullish values correctly.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23318&quot;&gt;&lt;del&gt;SERVER-23318&lt;/del&gt;&lt;/a&gt; has been completed&quot;, but &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23318&quot; title=&quot;Streaming $group does not handle nullish values correctly.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23318&quot;&gt;&lt;del&gt;SERVER-23318&lt;/del&gt;&lt;/a&gt; has been closed as essentially a duplicate of this very issue, &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4507&quot; title=&quot;aggregation:  optimize $group to take advantage of sorted sequences&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4507&quot;&gt;SERVER-4507&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It would be very helpful if someone could please provide some hints on the remaining work areas to be done here?&lt;/p&gt;</comment>
                            <comment id="1337755" author="ramon.fernandez" created="Wed, 27 Jul 2016 16:13:16 +0000"  >&lt;p&gt;The description of this ticket had the following line on it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;This functionality has been committed, but is disabled until &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23318&quot; title=&quot;Streaming $group does not handle nullish values correctly.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23318&quot;&gt;&lt;del&gt;SERVER-23318&lt;/del&gt;&lt;/a&gt; has been completed.&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This essentially  means that this ticket should not have been resolved, as it doesn&apos;t provide the functionality it advertises. I&apos;m therefore reopening this ticket so the necessary work on it can be completed.&lt;/p&gt;</comment>
                            <comment id="1213815" author="xgen-internal-githook" created="Thu, 24 Mar 2016 15:02:34 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benjaminmurphy&apos;, u&apos;name&apos;: u&apos;Benjamin Murphy&apos;, u&apos;email&apos;: u&apos;benjamin_murphy@me.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4507&quot; title=&quot;aggregation:  optimize $group to take advantage of sorted sequences&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4507&quot;&gt;SERVER-4507&lt;/a&gt; Group stages now take advantage of sorted input sequences.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f4bbde02bab191cdba4195ec9ad73c60d4aece41&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f4bbde02bab191cdba4195ec9ad73c60d4aece41&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="105010" author="cwestin" created="Thu, 29 Mar 2012 23:48:09 +0000"  >&lt;p&gt;Note that in sharded setups, this could be complicated to merge on mongos.  The behavior will have to be similar to using a merge sort there, as the sizes of buckets and their existence or not on different shards will vary.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="27314">SERVER-4566</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="38245">SERVER-5795</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2534322">SERVER-84466</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="812351">SERVER-41891</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="96234">SERVER-11447</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="607921">SERVER-37242</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="239809">SERVER-21502</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="30534">SERVER-4961</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="276820">SERVER-23477</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="33561">SERVER-5361</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="226474">SERVER-20066</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="714119">SERVER-40056</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1660757">SERVER-55576</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="13767">SERVER-2130</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="10927">SERVER-447</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="390060">SERVER-29444</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="73561">SERVER-9507</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="235279">SERVER-21022</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>12.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25125"><![CDATA[Query Execution]]></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_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[500A000000YTpQEIA1, 500A000000ZhThLIAV, 5002K00000daC51QAE, 5002K00000fNWhMQAW, 5002K00000fNq5XQAS, 5002K00000pkMrCQAU, 5002K00000s0spCQAQ, 5002K00000sdquSQAQ, 5006R00001ssc3aQAA]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 29 Mar 2012 23:48:09 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 20 weeks 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/SERVER-4566'>SERVER-4566</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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-686</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>kyle.suarez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years, 20 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>asya.kamsky@mongodb.com</customfieldvalue>
            <customfieldvalue>backlog-query-execution</customfieldvalue>
            <customfieldvalue>cwestin</customfieldvalue>
            <customfieldvalue>dan@mongodb.com</customfieldvalue>
            <customfieldvalue>gaprice@lbl.gov</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>gimperiale</customfieldvalue>
            <customfieldvalue>jwatts</customfieldvalue>
            <customfieldvalue>oleg@evergage.com</customfieldvalue>
            <customfieldvalue>ramon.fernandez@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hroj07:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr2brz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4818</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="898">Query 10 (02/22/16)</customfieldvalue>
    <customfieldvalue id="899">Query 11 (03/14/16)</customfieldvalue>
    <customfieldvalue id="967">Query 12 (04/04/16)</customfieldvalue>

                        </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|hrjahj:</customfieldvalue>

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