<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:23:39 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-30391] Add QoS features to MongoDB</title>
                <link>https://jira.mongodb.org/browse/SERVER-30391</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;I am currently writing an application that generates sustained, heavy writes for about one hour at &amp;gt;200Mbit/s. This application is regularly causing performance issues on the mongodb side.&lt;/p&gt;

&lt;p&gt;It currently runs relatively fine on our atlas production setup using write-concern: majority and a single insertation thread, but it is causing very high loads (&amp;gt;90% disk utilization) on our test setup. This is in would be desired (maxing out the server&apos;s resources is good because we get more performance), but we had a db crash in the past (&lt;a href=&quot;https://jira.mongodb.org/browse/MMSSUPPORT-14543&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.mongodb.org/browse/MMSSUPPORT-14543&lt;/a&gt; caused probably by a performance difference between the primary and replication &#8211; &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-24242&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.mongodb.org/browse/SERVER-24242&lt;/a&gt;) and we are still not sure this could not happen again.&lt;/p&gt;

&lt;p&gt;In addition, using write-concern: majority causes a significant latency wich seems to be slowing down our application by a lot (now taking 3h instead of 1h since I activated this).&lt;/p&gt;

&lt;p&gt;It would be very useful if there was a way to explicitly mark operations as high-impact/best-effort/background jobs. Mongodb should make sure that all operations that are not marked in such a way are given priority before the high-impact tasks. Mongodb should also make sure that high-impact operations can never overtax the server; these operations should either be rejected or blocked until enough resources are available to process them.&lt;/p&gt;

&lt;p&gt;(Blocking would be very useful because then on my side I could write a scheduler that reduces the number of insertation threads or throttles them when many jobs are rejected).&lt;/p&gt;

&lt;p&gt;This way it would be possible to operate high-load jobs at maximum efficiency without stealing resources from routine operations.&lt;/p&gt;</description>
                <environment></environment>
        <key id="409508">SERVER-30391</key>
            <summary>Add QoS features to MongoDB</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="backlog-server-servicearch">Backlog - Service Architecture</assignee>
                                    <reporter username="karo">Karolin Varner</reporter>
                        <labels>
                    </labels>
                <created>Fri, 28 Jul 2017 08:14:13 +0000</created>
                <updated>Tue, 6 Dec 2022 03:55:31 +0000</updated>
                            <resolved>Wed, 8 Dec 2021 22:03:41 +0000</resolved>
                                                                    <component>Usability</component>
                                        <votes>1</votes>
                                    <watches>12</watches>
                                                                                                                <comments>
                            <comment id="1642540" author="karo" created="Tue, 8 Aug 2017 01:51:42 +0000"  >&lt;p&gt;Yup, that&apos;s why I filed the ticket.&lt;/p&gt;

&lt;p&gt;Thank you for formatting the ticket well &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="1642079" author="ramon.fernandez" created="Mon, 7 Aug 2017 17:06:47 +0000"  >&lt;p&gt;Thanks for the additional details &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=karo&quot; class=&quot;user-hover&quot; rel=&quot;karo&quot;&gt;karo&lt;/a&gt;. Unfortunately MongoDB does not yet have some of the features you mention, so I&apos;m going to update the summary of this ticket to reflect the larger request of QoS / admission control / etc. features and put it on our Backlog for future consideration.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
Ram&#243;n.&lt;/p&gt;</comment>
                            <comment id="1637623" author="karo" created="Tue, 1 Aug 2017 16:11:41 +0000"  >&lt;p&gt;Hi Ramon,&lt;br/&gt;
mostly yes. Although limiting the number of ops for any process was not the intention of this ticket, quite the opposite; I meant more using the maximum number of available ops without degrading responsiveness for other operations.&lt;br/&gt;
Execution priorities sound right, except I would suggest adding a parameter to the write concern to let operations opt into a lower priority from the client without creating a new user on the server.&lt;/p&gt;

&lt;p&gt;Also I am not sure if just introducing execution priorities would cut it; a very important point in this ticket for me is that it should never-ever be possible to degrade mongodb performance or the performance of other ops by hitting mongodb with a high load operation; so care would have to be taken not to make sure not to over-commit operations to mongodb; e.g. it should not be possible to increase replication lag significantly with a low-performance operation and that would mean that mongodb needs to keep an eye on the replication lag and start rejecting low-prio operations when it grows; I am not sure what the status on those kinds of QoS features is so maybe the ticket would be enough &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="1637328" author="ramon.fernandez" created="Tue, 1 Aug 2017 11:50:01 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=karo&quot; class=&quot;user-hover&quot; rel=&quot;karo&quot;&gt;karo&lt;/a&gt;, if I understand correctly, the functionality you&apos;re requesting is a subset of what could be accomplished with &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-15072&quot; title=&quot;Limit resource usage for certain users&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-15072&quot;&gt;&lt;del&gt;SERVER-15072&lt;/del&gt;&lt;/a&gt;, specifically if the following was implemented:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Limit the number/rate of operations that can be executed.&lt;/li&gt;
	&lt;li&gt;Define different execution priorities for different users.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I&apos;m therefore inclined to close this ticket as a duplicate, and recommend you expand use cases in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-15072&quot; title=&quot;Limit resource usage for certain users&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-15072&quot;&gt;&lt;del&gt;SERVER-15072&lt;/del&gt;&lt;/a&gt;, vote for it and watch it for updates.&lt;/p&gt;

&lt;p&gt;Regards,&lt;br/&gt;
Ram&#243;n.&lt;/p&gt;</comment>
                            <comment id="1634262" author="karo" created="Fri, 28 Jul 2017 08:25:06 +0000"  >&lt;p&gt;By significant latency I mean that we need to wait for some secondaries to actually accept the operation; this takes time in which primary and secondaries are not optimally used. It would be better if we could actually send data at the rate of the slowest part in the write &lt;em&gt;pipeline&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The application causing this load is a multithreaded C++ application and runs on a server with 8cores/16threads.&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_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25132"><![CDATA[Service Arch]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 28 Jul 2017 17:40:46 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 27 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>PM-1109</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>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 27 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-servicearch</customfieldvalue>
            <customfieldvalue>karo</customfieldvalue>
            <customfieldvalue>ramon.fernandez@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htbu9j:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htyzpr:</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_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|htbgc7:</customfieldvalue>

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