<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:14:29 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-69820] Flow control bypass should follow admission priority</title>
                <link>https://jira.mongodb.org/browse/SERVER-69820</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;With the addition of &lt;a href=&quot;https://github.com/mongodb/mongo/blob/0cb0296de7ee3aa5083186bc10d57de193cf1c59/src/mongo/util/concurrency/admission_context.h#L60-L63&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;admission priority&lt;/a&gt; for storage engine ticket acquisition, we should have flow control also use this priority to inform whether or not operations take flow control tickets as well.&lt;/p&gt;

&lt;p&gt;This would replace explict calls to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/0cb0296de7ee3aa5083186bc10d57de193cf1c59/src/mongo/db/operation_context.h#L113&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;setShouldParticipateInFlowControl()&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In making this change, we will need to evaluate the following:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Should all operations that bypass flow control also be bypassing ticket acquisition using &quot;kImmediate&quot; admission priority?&lt;/li&gt;
	&lt;li&gt;Should all operations that bypass ticket acquisition should also bypass flow control?&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If both of these conditions are universally true, then it would simplify our admission system and bring these two mechanisms closer together in behavior.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2141168">SERVER-69820</key>
            <summary>Flow control bypass should follow admission priority</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="13201">Fixed</resolution>
                                        <assignee username="jordi.olivares-provencio@mongodb.com">Jordi Olivares Provencio</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                    </labels>
                <created>Tue, 20 Sep 2022 10:48:22 +0000</created>
                <updated>Sun, 29 Oct 2023 21:33:04 +0000</updated>
                            <resolved>Thu, 27 Oct 2022 14:46:08 +0000</resolved>
                                                    <fixVersion>6.2.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="4932196" author="xgen-internal-githook" created="Thu, 27 Oct 2022 14:44:28 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jordi Olivares Provencio&apos;, &apos;email&apos;: &apos;jordi.olivares-provencio@mongodb.com&apos;, &apos;username&apos;: &apos;jordiolivares&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-69820&quot; title=&quot;Flow control bypass should follow admission priority&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-69820&quot;&gt;&lt;del&gt;SERVER-69820&lt;/del&gt;&lt;/a&gt; Simplify Flow control ticket acquisition&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e79fa3438f0fe33a4e688e29fad0a161a8681523&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e79fa3438f0fe33a4e688e29fad0a161a8681523&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4932195" author="xgen-internal-githook" created="Thu, 27 Oct 2022 14:44:26 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jordi Olivares Provencio&apos;, &apos;email&apos;: &apos;jordi.olivares-provencio@mongodb.com&apos;, &apos;username&apos;: &apos;jordiolivares&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-69820&quot; title=&quot;Flow control bypass should follow admission priority&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-69820&quot;&gt;&lt;del&gt;SERVER-69820&lt;/del&gt;&lt;/a&gt; Simplify Flow control ticket acquisition&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/commit/11d238f16c78ffc88f15116a6b35cb46ecea4521&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/commit/11d238f16c78ffc88f15116a6b35cb46ecea4521&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4890823" author="JIRAUSER1264163" created="Mon, 10 Oct 2022 14:51:05 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=louis.williams%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;louis.williams@mongodb.com&quot;&gt;louis.williams@mongodb.com&lt;/a&gt; Could an alternative be to use the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/faa9a621eb5b40ec830284328bc4ee17f0f51cb9/src/mongo/db/namespace_string.h#L592&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;NamespaceString::isReplicated()&lt;/a&gt; method to discern whether to skip ticket acquisition?&lt;/p&gt;

&lt;p&gt;That would avoid complicating the GlobalLock API and apply this behaviour to all collections that don&apos;t participate in replication.&lt;/p&gt;</comment>
                            <comment id="4885354" author="louis.williams" created="Fri, 7 Oct 2022 09:51:04 +0000"  >&lt;p&gt;Thanks for investigating, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jordi.olivares-provencio%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;jordi.olivares-provencio@mongodb.com&quot;&gt;jordi.olivares-provencio@mongodb.com&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;A few ideas about the places where we disable flow control but don&apos;t opt-out of tickets.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;I think we should consider the OplogCapMaintainerThread an important operation. It keeps a node&apos;s oplog from expanding out of control. Unlike a TTL collection, the oplog stores writes for everything in the system and must be kept in check to the best ability. It also uses WT fast truncation, so it&apos;s less impactful on the system than TTL deletes because it doesn&apos;t have to page as much data in from disk.&lt;/li&gt;
	&lt;li&gt;The JournalFlusher does already skip ticket acquisition, just at a much &lt;a href=&quot;https://github.com/mongodb/mongo/commit/0f9e2dc19f68c8db49539bbaf6542c1bde9025a0#&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lower layer&lt;/a&gt;. Let&apos;s just push that exemption up without changing any behavior&lt;/li&gt;
	&lt;li&gt;For importCollection dryRun I&apos;m not sure exactly why it needs to opt out of flow control. I don&apos;t see any reason why it&apos;s required. It runs async and can&apos;t block replication.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;For the profile command and profiling itself, I can imagine an API like this:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Update the GlobalLock API to accept an option to opt-out of flow control tickets&lt;/li&gt;
	&lt;li&gt;Use this new API for the profile command and profiling&lt;/li&gt;
	&lt;li&gt;At this point, we should be able to get rid of the setShouldParticipateInFlowControl() option.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="4879524" author="JIRAUSER1264163" created="Wed, 5 Oct 2022 14:09:23 +0000"  >&lt;p&gt;The following are a list of location where we disable Flow Control:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;OplogCapMaintainerThread&lt;/li&gt;
	&lt;li&gt;ProfileCmdBase&lt;/li&gt;
	&lt;li&gt;JournalFlusher&lt;/li&gt;
	&lt;li&gt;Profiling&lt;/li&gt;
	&lt;li&gt;OplogApplier&lt;/li&gt;
	&lt;li&gt;NoopWriter&lt;/li&gt;
	&lt;li&gt;ReplSet votes&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Of these, the last 3 items are crucial to normal functioning of the database and I would mark as immediate. To be safe JournalFlusher should be marked as immediate too for data consistency.&lt;/p&gt;

&lt;p&gt;The other 3 items are up for debate whether or not they should be considered immediate. OplogCapMaintainer is more of a background maintenance task like the TTL deleter and profiling doesn&apos;t participate in replication but is not essential to have immediate priority.&lt;/p&gt;

&lt;p&gt;The inverse of this search (immediate priority requires no flow control) seems to be true in all cases.&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>5.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_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>Wed, 5 Oct 2022 14:09:23 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 14 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_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_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>
                            1 year, 14 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>jordi.olivares-provencio@mongodb.com</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1b05r:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0tpe8:</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="6331">Execution Team 2022-10-03</customfieldvalue>
    <customfieldvalue id="6332">Execution Team 2022-10-17</customfieldvalue>
    <customfieldvalue id="6333">Execution Team 2022-10-31</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|i1amb3:</customfieldvalue>

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