<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:32: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-53920] Periodically obtain remainingOperationTimeEstimatedMillis estimates from recipients for use by the ReshardingCoordinator</title>
                <link>https://jira.mongodb.org/browse/SERVER-53920</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Add a remainingReshardingOperationTimeMillisThreshold server parameter to control when the coordinator should engage the critical section (default value of 2s)&lt;br/&gt;
Should contact each recipient to gather statistics.&lt;br/&gt;
Should continuously monitor while a ReshardingCoordinator service instance exists.&lt;br/&gt;
Should stop monitoring when the coordinator instance exits or we reach the critical section of the coordinator.&lt;br/&gt;
Should provide ability to determine if all recipients report they can finish within the remainingReshardingOperationTimeMillisThreshold.&lt;br/&gt;
Engage critical section once all recipients report they can finish within remainingOperationTimeMillisThreshold.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1595550">SERVER-53920</key>
            <summary>Periodically obtain remainingOperationTimeEstimatedMillis estimates from recipients for use by the ReshardingCoordinator</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</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="13201">Fixed</resolution>
                                        <assignee username="amirsaman.memaripour@mongodb.com">Amirsaman Memaripour</assignee>
                                    <reporter username="lamont.nelson@mongodb.com">Lamont Nelson</reporter>
                        <labels>
                            <label>PM-234-M3</label>
                            <label>PM-234-T-autocommits</label>
                    </labels>
                <created>Wed, 20 Jan 2021 17:36:51 +0000</created>
                <updated>Sun, 29 Oct 2023 21:58:37 +0000</updated>
                            <resolved>Tue, 20 Apr 2021 14:56:36 +0000</resolved>
                                                    <fixVersion>5.0.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="3727735" author="xgen-internal-githook" created="Tue, 20 Apr 2021 14:52:25 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Amirsaman Memaripour&apos;, &apos;email&apos;: &apos;amirsaman.memaripour@mongodb.com&apos;, &apos;username&apos;: &apos;samanca&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-53920&quot; title=&quot;Periodically obtain remainingOperationTimeEstimatedMillis estimates from recipients for use by the ReshardingCoordinator&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-53920&quot;&gt;&lt;del&gt;SERVER-53920&lt;/del&gt;&lt;/a&gt; Periodically obtain remainingOperationTimeEstimatedMillis estimates from recipients for use by the ReshardingCoordinator&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8c83c443fc03fbb4cbe8323062d011738a284107&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8c83c443fc03fbb4cbe8323062d011738a284107&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3633407" author="max.hirschhorn@10gen.com" created="Wed, 24 Feb 2021 18:59:12 +0000"  >&lt;blockquote&gt;
&lt;ul&gt;
	&lt;li&gt;Wait for all recipients to enter the steady state. I believe that corresponds to the continuation that comes after &lt;a href=&quot;https://github.com/mongodb/mongo/blob/77d144dad2f49d78903c98985f61bf9245145e49/src/mongo/db/s/resharding/resharding_coordinator_service.cpp#L944&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this one&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yes, &lt;a href=&quot;https://github.com/mongodb/mongo/blob/77d144dad2f49d78903c98985f61bf9245145e49/src/mongo/db/s/resharding/resharding_coordinator_observer.cpp#L174-L179&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;once all recipients have reached state RecipientStateEnum::kSteadyState&lt;/a&gt;, the resharding operation becomes eligible to be committed. (There&apos;d be no benefit to blocking writes on donor shards while the recipients are still doing their initial collection clone.)&lt;/p&gt;

&lt;p&gt;To be slightly more precise, it corresponds to &amp;#95;reshardingCoordinatorObserver&amp;#45;&amp;gt;awaitAllRecipientsFinishedApplying() becoming ready.&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
	&lt;li&gt;Start a new observer service (this ticket), and keep it running so long as the resharding operation is not cancelled and the coordinator has not entered a critical section. This would postpone the execution of any continuation after &lt;a href=&quot;https://github.com/mongodb/mongo/blob/77d144dad2f49d78903c98985f61bf9245145e49/src/mongo/db/s/resharding/resharding_coordinator_service.cpp#L944&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this point&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;Once the maximum is less than the threshold (i.e., &lt;tt&gt;remainingReshardingOperationTimeMillisThreshold&lt;/tt&gt;), notify the coordinator so that it enters the critical section. I&apos;m not sure what state corresponds to the critical section for the coordinator and donors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;The action of the resharding coordinator this ticket should postpone is specifically &lt;a href=&quot;https://github.com/mongodb/mongo/blob/77d144dad2f49d78903c98985f61bf9245145e49/src/mongo/db/s/resharding/resharding_coordinator_service.cpp#L1128&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the transition to CoordinatorStateEnum::kMirroring&lt;/a&gt; (to be renamed to CoordinatorStateEnum::kBlockingWrites or similar as part of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-54512&quot; title=&quot;Replace resharding &amp;quot;mirroring&amp;quot; related states to &amp;quot;blocking writes&amp;quot;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-54512&quot;&gt;&lt;del&gt;SERVER-54512&lt;/del&gt;&lt;/a&gt;). The goal of this ticket is defer donor shards starting to block writes until it appears that the recipient shards are mostly caught up.&lt;/p&gt;</comment>
                            <comment id="3630974" author="amirsaman.memaripour" created="Tue, 23 Feb 2021 19:57:09 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=max.hirschhorn&quot; class=&quot;user-hover&quot; rel=&quot;max.hirschhorn&quot;&gt;max.hirschhorn&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=lamont.nelson&quot; class=&quot;user-hover&quot; rel=&quot;lamont.nelson&quot;&gt;lamont.nelson&lt;/a&gt;, here is my understanding of what this ticket should do, along with a few questions:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Wait for all recipients to enter the steady state. I believe that corresponds to the continuation that comes after &lt;a href=&quot;https://github.com/mongodb/mongo/blob/77d144dad2f49d78903c98985f61bf9245145e49/src/mongo/db/s/resharding/resharding_coordinator_service.cpp#L944&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this one&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;Start a new observer service (this ticket), and keep it running so long as the resharding operation is not cancelled and the coordinator has not entered a critical section. This would postpone the execution of any continuation after &lt;a href=&quot;https://github.com/mongodb/mongo/blob/77d144dad2f49d78903c98985f61bf9245145e49/src/mongo/db/s/resharding/resharding_coordinator_service.cpp#L944&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this point&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;Gather the &lt;tt&gt;currentOp&lt;/tt&gt; output for each recipient, and calculate the maximum of the collected &lt;tt&gt;remainingOperationTimeEstimatedMillis&lt;/tt&gt; for the recipients.&lt;/li&gt;
	&lt;li&gt;Once the maximum is less than the threshold (i.e., &lt;tt&gt;remainingReshardingOperationTimeMillisThreshold&lt;/tt&gt;), notify the coordinator so that it enters the critical section. I&apos;m not sure what state corresponds to the critical section for the coordinator and donors.&lt;/li&gt;
	&lt;li&gt;Once the coordinator enters the critical section and persists the state change, donors will get notified through the coordinator document.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1667689">SERVER-55684</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1702150">SERVER-56660</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10020">
                    <name>Gantt Dependency</name>
                                            <outwardlinks description="has to be done before">
                                        <issuelink>
            <issuekey id="1667688">SERVER-55683</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                        <issuelink>
            <issuekey id="1684455">SERVER-56215</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1595546">SERVER-53919</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1595552">SERVER-53921</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>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 23 Feb 2021 19:57:09 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 42 weeks, 1 day 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-234</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>
                            2 years, 42 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>134.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>amirsaman.memaripour@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>lamont.nelson@mongodb.com</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hyqg8f:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hyc4mv:</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="4486">Sharding 2021-03-08</customfieldvalue>
    <customfieldvalue id="4487">Sharding 2021-03-22</customfieldvalue>
    <customfieldvalue id="4497">Sharding 2021-04-05</customfieldvalue>
    <customfieldvalue id="4515">Sharding 2021-04-19</customfieldvalue>
    <customfieldvalue id="4516">Sharding 2021-05-03</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10555" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</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|hyq2hr:</customfieldvalue>

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