<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:32:01 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-76177] Increase batch size of deletion in change collection and preimages removers</title>
                <link>https://jira.mongodb.org/browse/SERVER-76177</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The default batched deletes target size is currently set at 10 documents. As this is a workload that&apos;s not sensitive to latency we should maximize its throughput.&lt;/p&gt;

&lt;p&gt;To do so we could increase the target batch size to be 32 documents. Running some workloads has shown a very significant (30-50%) improvement in time spent doing deletions.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2316119">SERVER-76177</key>
            <summary>Increase batch size of deletion in change collection and preimages removers</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="jordi.olivares-provencio@mongodb.com">Jordi Olivares Provencio</assignee>
                                    <reporter username="jordi.olivares-provencio@mongodb.com">Jordi Olivares Provencio</reporter>
                        <labels>
                    </labels>
                <created>Mon, 17 Apr 2023 11:28:46 +0000</created>
                <updated>Thu, 27 Apr 2023 14:43:59 +0000</updated>
                            <resolved>Thu, 27 Apr 2023 14:43:59 +0000</resolved>
                                                                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="5381263" author="JIRAUSER1264163" created="Thu, 27 Apr 2023 14:43:59 +0000"  >&lt;p&gt;We&apos;re cancelling this ticket in favour of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-76601&quot; title=&quot;Add option to skip refetch in batched deletes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-76601&quot;&gt;&lt;del&gt;SERVER-76601&lt;/del&gt;&lt;/a&gt;. That ticket will contain all the changes to batch deletes but none of the parameter tuning.&lt;/p&gt;</comment>
                            <comment id="5357964" author="josef.ahmad" created="Wed, 19 Apr 2023 05:42:44 +0000"  >&lt;p&gt;We can probably squeeze something further out of batch deletions, as some constraints can be relaxed for the pre-images and change collections. Some tuning to explore:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Disable &lt;a href=&quot;https://github.com/10gen/mongo/blob/8af76af0459d61fdc0d3f38993de62eb66a1b352/src/mongo/db/exec/batched_delete_stage.h#L43&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;targetBatchTimeMS&lt;/a&gt; (default: 5ms) in order to bundle more documents into a batch. The main goal of this parameter is to limit the amount of pinned dirty data during a batch. This is also indirectly controlled by &lt;a href=&quot;https://github.com/10gen/mongo/blob/8af76af0459d61fdc0d3f38993de62eb66a1b352/src/mongo/db/exec/batched_delete_stage.h#L44&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;targetStagedDocBytes&lt;/a&gt;, although targetBatchTimeMS is an extra guard-rail for collections many secondary indexes, which does not apply to pre-images and change collection.&lt;/li&gt;
	&lt;li&gt;Introduce a new &lt;a href=&quot;https://github.com/10gen/mongo/blob/8af76af0459d61fdc0d3f38993de62eb66a1b352/src/mongo/db/exec/batched_delete_stage.h#L40&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;BatchedDeleteStageParams entry&lt;/a&gt; that controls whether we should refetch a document staged for deletion if its snapshot has gone stale. Essentially, this parameter will determine whether to skip a call to &lt;a href=&quot;https://github.com/10gen/mongo/blob/8af76af0459d61fdc0d3f38993de62eb66a1b352/src/mongo/db/exec/batched_delete_stage.cpp#L340&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;ensureStillMatchesAndUpdateStats()&lt;/a&gt;. This refetch ensures that a document that was staged for deletion is still eligible for deletion when committing the batch. Refetching can be expensive, and becomes more likely as the batch size increases. Refetching only applies to collections with concurrent deletes or updates; this doesn&apos;t apply to pre-images and change collections.&lt;/li&gt;
	&lt;li&gt;All the above should help avoid most of the overhead due to refetching documents, and we should be able to increase the &lt;a href=&quot;https://github.com/10gen/mongo/blob/8af76af0459d61fdc0d3f38993de62eb66a1b352/src/mongo/db/exec/batched_delete_stage.h#L42&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;targetBatchDocs&lt;/a&gt; to a value that could be even higher than the 32 proposed in this ticket.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="5352938" author="JIRAUSER1264163" created="Mon, 17 Apr 2023 16:04:09 +0000"  >&lt;p&gt;Note that doing this might increase the refetches occurring after a yield.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2325952">SERVER-76601</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <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>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 19 Apr 2023 05:42:44 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        40 weeks, 6 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>PM-3092</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>jordi.olivares-provencio@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            40 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>jordi.olivares-provencio@mongodb.com</customfieldvalue>
            <customfieldvalue>josef.ahmad@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i24yen:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1n9vc:</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="7175">Execution Team 2023-05-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|i24kjz:</customfieldvalue>

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