<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:36:52 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-77884] Refine PreImagesTruncateManager sampling logic</title>
                <link>https://jira.mongodb.org/browse/SERVER-77884</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-76586&quot; title=&quot;Introduce pre-images truncate markers sampling and scanning intitialisation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-76586&quot;&gt;&lt;del&gt;SERVER-76586&lt;/del&gt;&lt;/a&gt; introduces some large changes / restructuring. This ticket is to ensure there is sufficient testing and best effort to maintain a correct aggregate size / number of records for each pre-image tenant&lt;/p&gt;</description>
                <environment></environment>
        <key id="2361610">SERVER-77884</key>
            <summary>Refine PreImagesTruncateManager sampling logic</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</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="13202">Works as Designed</resolution>
                                        <assignee username="haley.connelly@mongodb.com">Haley Connelly</assignee>
                                    <reporter username="haley.connelly@mongodb.com">Haley Connelly</reporter>
                        <labels>
                    </labels>
                <created>Wed, 7 Jun 2023 17:33:52 +0000</created>
                <updated>Fri, 27 Oct 2023 13:51:35 +0000</updated>
                            <resolved>Thu, 10 Aug 2023 13:42:06 +0000</resolved>
                                                                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="5625904" author="haley.connelly" created="Thu, 10 Aug 2023 13:41:56 +0000"  >&lt;p&gt;The idea of this ticket is to use the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/4ceaaf0b8c33b7433e9935817c7e10edb8c8c75f/src/mongo/db/change_stream_pre_images_truncate_manager.cpp#L78-L80&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;initial dataSize and numDocs&lt;/a&gt; to compute how many documents to distribute post whole marker computation, rather than &lt;a href=&quot;https://github.com/mongodb/mongo/blob/4ceaaf0b8c33b7433e9935817c7e10edb8c8c75f/src/mongo/db/change_stream_pre_images_truncate_manager.cpp#L253-L257&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;taking a new snapshot before distributing&lt;/a&gt;.&#160;&lt;/p&gt;

&lt;p&gt;The argument: If during intiialization pre-images are newly enabled on an nsUUID, the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/4ceaaf0b8c33b7433e9935817c7e10edb8c8c75f/src/mongo/db/change_stream_pre_images_truncate_manager.cpp#L685-L699&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;final map replacement&lt;/a&gt; could double count pre-images inserted into the newly enabled nsUUIDs when distributing.&#160;&lt;/p&gt;

&lt;p&gt;Tradeoff during initialisation:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;If many inserts occur into a newly pre-image enabled nsUUID not accounted for in the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/4ceaaf0b8c33b7433e9935817c7e10edb8c8c75f/src/mongo/db/change_stream_pre_images_truncate_manager.cpp#L383&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;initial scan of nsUUIDs&lt;/a&gt;, the inserts will be double counted in the truncate marker aggregates in the existing implementation.&lt;/li&gt;
	&lt;li&gt;If many inserts occur into existing pre-image enabled nsUUIDs accounted for in the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/4ceaaf0b8c33b7433e9935817c7e10edb8c8c75f/src/mongo/db/change_stream_pre_images_truncate_manager.cpp#L383&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;initial scan for nsUUIDs&lt;/a&gt;, the inserts would be unaccounted for in the proposed plan to use the initial dataSize and numDocs at the start of intialization when distributing after creating whole markers.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The goal is to have the aggregate numDocs and size accounted for in truncate markers to be as accurate as possible post initialization.&#160;&lt;/p&gt;

&lt;p&gt;I don&apos;t think this tradeoff is necessary to explore at this time given initialization times seem minimal (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-78207&quot; title=&quot;Perform marker initialisation analysis&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-78207&quot;&gt;&lt;del&gt;SERVER-78207&lt;/del&gt;&lt;/a&gt;), and enabling pre-images on new nsUUIDs during intialization probably isn&apos;t more likely than inserts into pre-existing pre-image enabled nsUUIDs.&#160;&lt;/p&gt;



&lt;p&gt;&#160;&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>1.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_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        25 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>luke.bonanomi@mongodb.com</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1uns5:</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="7178">Execution Team 2023-06-12</customfieldvalue>
    <customfieldvalue id="7538">Execution EMEA Team 2023-08-21</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|i2ccnz:</customfieldvalue>

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