<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:59:27 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-64075] Report max latency in 1 minute rolling window</title>
                <link>https://jira.mongodb.org/browse/SERVER-64075</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Add max latency to the set of reported metrics (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-63825&quot; title=&quot;Report metrics for read/write queues&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-63825&quot;&gt;&lt;del&gt;SERVER-63825&lt;/del&gt;&lt;/a&gt;) . It should be computed in a 1 minute rolling window.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1992102">SERVER-64075</key>
            <summary>Report max latency in 1 minute rolling window</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="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="backlog-server-execution">Backlog - Storage Execution Team</assignee>
                                    <reporter username="daniel.gomezferro@mongodb.com">Daniel Gomez Ferro</reporter>
                        <labels>
                            <label>former-storex-namer</label>
                    </labels>
                <created>Tue, 1 Mar 2022 14:16:10 +0000</created>
                <updated>Thu, 26 Oct 2023 12:52:13 +0000</updated>
                                                                                                <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="4391132" author="louis.williams" created="Fri, 4 Mar 2022 09:36:51 +0000"  >&lt;p&gt;Another option, which apparently we already do for the &quot;opLatencies&quot; serverStatus section, is to just have a histogram for the entire duration of the process. We could make it off-by-default and only for debugging purposes. &lt;/p&gt;

&lt;p&gt;We already have a &lt;a href=&quot;https://github.com/mongodb/mongo/blob/master/src/mongo/util/histogram.h&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;histogram implementation&lt;/a&gt; in the code, so it would be relatively straightforward to capture and report this information.&lt;/p&gt;</comment>
                            <comment id="4386280" author="bruce.lucas@10gen.com" created="Wed, 2 Mar 2022 14:35:44 +0000"  >&lt;p&gt;Not sure what the best semantics are. Since this is in serverStatus we might also want to think about the impact of the various solutions on other users of serverStatus. Resetting the max on every request for serverStatus would not give good results. Resetting it only from the FTDC thread would require a new mechanism, and would be unlike anything else we do, so not sure of the negative consequences. The cleanest semantics from the serverStatus perspective might be that a serverStatus sample at time t gives max over floor(t)-1 to floor(t), but I haven&apos;t thought this through carefully, and as you say if FTDC takes more than a second then it misses a seconds worth of samples.&lt;/p&gt;

&lt;p&gt;Another approach to handling max might be to emit a log message every time a sufficiently slow incident occurs, like we do with slow queries. If this has an attr.durationMillis then it can be used by tooling to graphically display it.&lt;/p&gt;</comment>
                            <comment id="4385976" author="JIRAUSER1263153" created="Wed, 2 Mar 2022 11:51:29 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=bruce.lucas&quot; class=&quot;user-hover&quot; rel=&quot;bruce.lucas&quot;&gt;bruce.lucas&lt;/a&gt;&#160;for max latency I agree it makes sense to match the FTDC period, we were discussing this in the context of supporting percentiles in the future (for our internal experiments) but we can change it when the time comes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=louis.williams&quot; class=&quot;user-hover&quot; rel=&quot;louis.williams&quot;&gt;louis.williams&lt;/a&gt;&#160;I thought it would be possible to reset the metric from the FTDC thread itself, so there shouldn&apos;t be any lost data even if for some reason FTDC takes longer than 1s to run. Do we want the FTDC thread to be read-only instead?&lt;/p&gt;</comment>
                            <comment id="4385668" author="louis.williams" created="Wed, 2 Mar 2022 09:21:12 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=bruce.lucas&quot; class=&quot;user-hover&quot; rel=&quot;bruce.lucas&quot;&gt;bruce.lucas&lt;/a&gt;, that&apos;s a good point. Our original thinking was that 1 second would potentially be too noisy, but since FTDC polls every second, and considering how much happens in the server every second, I think this would be the best solution. As you pointed out, this would be costly to a large window. &lt;/p&gt;

&lt;p&gt;I don&apos;t think the rolling window would require any sorting, but it would require someone, either the observer or the operations themselves, to re-scan the window every time a value drops off. And if we process thousands of operations per second, this would be prohibitively expensive.&lt;/p&gt;

&lt;p&gt;The problem with computing non-overlapping maxima is that we would lose information if FTDC runs in the middle of each period. Or, if we return the previous second&apos;s data, this might be a bit misleading. Are either of those tradeoffs worth it?&lt;/p&gt;</comment>
                            <comment id="4383984" author="bruce.lucas@10gen.com" created="Tue, 1 Mar 2022 17:25:25 +0000"  >&lt;p&gt;Would a 1-second window (matching FTDC interval) be better? Then max latency can be computed over any interval larger than 1 second.&lt;/p&gt;

&lt;p&gt;Also, is it feasible to compute over a rolling window with acceptable performance, especially one as long as 1 minute? Doesn&apos;t this require maintaining a sorted list of latencies over the window so that as each latency rolls out of the window you can re-compute the max over the latencies still in the window, or am I missing something? Reporting max latency over every non-overlapping 1 second interval would be much more efficient and would contain almost as much information.&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>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25136"><![CDATA[Storage Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 1 Mar 2022 17:25:25 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 48 weeks, 5 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_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>steven.vannelli@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 48 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-execution</customfieldvalue>
            <customfieldvalue>bruce.lucas@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.gomezferro@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|i0lnpr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i079sj:9</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="5979">Execution Team 2022-05-02</customfieldvalue>

                        </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|i0l9v3:</customfieldvalue>

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