<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:04:48 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>[DOCS-12262] Do we / should we document $pull performance considerations?</title>
                <link>https://jira.mongodb.org/browse/DOCS-12262</link>
                <project id="10380" key="DOCS">Documentation</project>
                    <description>&lt;h2&gt;&lt;a name=&quot;Description&quot;&gt;&lt;/a&gt;Description&lt;/h2&gt;


&lt;h2&gt;&lt;a name=&quot;Scopeofchanges&quot;&gt;&lt;/a&gt;Scope of changes&lt;/h2&gt;

&lt;h2&gt;&lt;a name=&quot;ImpacttoOtherDocs&quot;&gt;&lt;/a&gt;Impact to Other Docs&lt;/h2&gt;

&lt;h2&gt;&lt;a name=&quot;MVP%28WorkandDate%29&quot;&gt;&lt;/a&gt;MVP (Work and Date)&lt;/h2&gt;

&lt;h2&gt;&lt;a name=&quot;Resources%28ScopeorDesignDocs%2CInvision%2Cetc.%29&quot;&gt;&lt;/a&gt;Resources (Scope or Design Docs, Invision, etc.)&lt;/h2&gt;
</description>
                <environment></environment>
        <key id="651936">DOCS-12262</key>
            <summary>Do we / should we document $pull performance considerations?</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="james.wahlin@mongodb.com">James Wahlin</reporter>
                        <labels>
                    </labels>
                <created>Wed, 12 Dec 2018 20:23:26 +0000</created>
                <updated>Mon, 30 Oct 2023 20:49:46 +0000</updated>
                                                            <fixVersion>Server_Docs_20231030</fixVersion>
                                    <component>manual</component>
                    <component>Server</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="4940526" author="edu.bot" created="Mon, 31 Oct 2022 16:06:36 +0000"  >&lt;p&gt;Hello! This ticket has been closed due to inactivity. If you believe this ticket is still important, please reopen it and leave a comment to explain why. Thank you!&lt;/p&gt;</comment>
                            <comment id="2090194" author="brian.samek" created="Thu, 13 Dec 2018 20:10:24 +0000"  >&lt;blockquote&gt;&lt;p&gt;The simplest solution is a general purpose warning that performing update operations on large arrays (i.e. an array whose size on disk is &amp;gt; `n`) may result in large oplog entries for each document modified, which in turn can create memory pressure as those entries sit in memory. This effect may be pronounced on systems which are already close to capacity on memory usage.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;That works for me. A note: I don&apos;t think it&apos;s just the array&apos;s size on disk that can trigger this. What matters is both the array&apos;s size and the number of update operations.&lt;/p&gt;</comment>
                            <comment id="2089564" author="asya" created="Thu, 13 Dec 2018 15:00:54 +0000"  >&lt;p&gt;This used to be something that we explicitly mentioned in some of the training ...&#160;&lt;/p&gt;

&lt;p&gt;Don&apos;t know if we still do...&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="2089538" author="ravind.kumar" created="Thu, 13 Dec 2018 14:34:28 +0000"  >&lt;p&gt;So based on comments in HELP-8388 and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-9784&quot; title=&quot;Reduce size of oplog entries for $push, etc.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-9784&quot;&gt;&lt;del&gt;SERVER-9784&lt;/del&gt;&lt;/a&gt;, it seems like the core issue is that some update operations on arrays result in an oplog entry that includes the full array. These &apos;jumbo&apos; entries have a few consequences:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Memory pressure as these jumbo entries get created, increasing with the number of large arrays updated&lt;/li&gt;
	&lt;li&gt;since oplog entries can be very large, they could fill the oplog rapidly and push older entries off the oplog. Might be an issue if you had previously sized your oplog for 24H of data, but now due to large&lt;/li&gt;
	&lt;li&gt;4.0+ is supposed to grow the oplog to keep the last majority commit point from falling off. I feel like these sort of operations might lead to that behavior, such that the oplog itself suddenly begins to grow in size (possibly significantly?)&lt;/li&gt;
	&lt;li&gt;Not all array update operators showcase this behavior - e.g. in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-9784&quot; title=&quot;Reduce size of oplog entries for $push, etc.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-9784&quot;&gt;&lt;del&gt;SERVER-9784&lt;/del&gt;&lt;/a&gt;, the $push operator only showcases this behavior if it results in a change in array order (e.g. $push with $position , $sort, $slice )&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;We&apos;d need to do some testing to figure out which array operators would exhibit this behavior. I&apos;m also concerned about how to define &apos;large&apos; - it seems like we&apos;d need to be specific that it&apos;s not the number of elements in the array, but the size on disk of those elements that cause an issue. Exactly where that marker is also might depend on the host hardware, e.g. one with more memory might better withstand the memory pressure of those kinds of operations.&lt;/p&gt;

&lt;p&gt;The simplest solution is a general purpose warning that performing update operations on large arrays (i.e. an array whose size on disk is &amp;gt; `n`) may result in large oplog entries for each document modified, which in turn can create memory pressure as those entries sit in memory. This effect may be pronounced on systems which are already close to capacity on memory usage.&lt;/p&gt;

&lt;p&gt;The bigger task would be to add some notes to the Production Notes section (possibly) about large size arrays and their consequences, possibly pulling from &lt;a href=&quot;http://www.askasya.com/post/largeembeddedarrays/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;AskAsya -&amp;gt; Large Embedded Arrays&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=brian%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;brian@mongodb.com&quot;&gt;brian@mongodb.com&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=asya&quot; class=&quot;user-hover&quot; rel=&quot;asya&quot;&gt;asya&lt;/a&gt; I&apos;d appreciate your thoughts on the above.&lt;/p&gt;

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

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="132143">DOCS-3219</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>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 13 Dec 2018 14:34:28 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 14 weeks, 2 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>DOCSP-1769</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>false</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>emet.ozar@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 14 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>asya.kamsky@mongodb.com</customfieldvalue>
            <customfieldvalue>brian.samek@mongodb.com</customfieldvalue>
            <customfieldvalue>edu.bot</customfieldvalue>
            <customfieldvalue>james.wahlin@mongodb.com</customfieldvalue>
            <customfieldvalue>ravind.kumar</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hufxtz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hu615b:</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_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hufk3b:</customfieldvalue>

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