<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:44:34 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-36956] Replace the statistic that dynamically resizes the snapshot history window</title>
                <link>https://jira.mongodb.org/browse/SERVER-36956</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;It was suggested to replace WT_STAT_CONN_CACHE_LOOKASIDE_SCORE with CacheStat(&apos;cache_lookaside_insert&apos;, &apos;lookaside table insert calls&apos;),&lt;/p&gt;</description>
                <environment></environment>
        <key id="598087">SERVER-36956</key>
            <summary>Replace the statistic that dynamically resizes the snapshot history window</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="dianna.hohensee@mongodb.com">Dianna Hohensee</assignee>
                                    <reporter username="dianna.hohensee@mongodb.com">Dianna Hohensee</reporter>
                        <labels>
                            <label>nyc</label>
                    </labels>
                <created>Fri, 31 Aug 2018 14:30:55 +0000</created>
                <updated>Sun, 29 Oct 2023 22:28:30 +0000</updated>
                            <resolved>Fri, 17 May 2019 21:39:15 +0000</resolved>
                                                    <fixVersion>4.1.12</fixVersion>
                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="2317565" author="xgen-internal-githook" created="Tue, 9 Jul 2019 18:06:16 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Dianna Hohensee&apos;, &apos;username&apos;: &apos;DiannaHohensee&apos;, &apos;email&apos;: &apos;dianna.hohensee@10gen.com&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36956&quot; title=&quot;Replace the statistic that dynamically resizes the snapshot history window&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36956&quot;&gt;&lt;del&gt;SERVER-36956&lt;/del&gt;&lt;/a&gt; SnapshotTooOld errors will always increase the snapshot history window size&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 8899b34e1044b08aec7ad9f8546652456472702c.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 8bb53a07a5c593d85b6229a2afe096b3e1efe21d)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1cccd2d05271c018b702bcc3e30a7516457a192a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1cccd2d05271c018b702bcc3e30a7516457a192a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2307313" author="xgen-internal-githook" created="Mon, 1 Jul 2019 18:10:50 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Dianna Hohensee&apos;, &apos;email&apos;: &apos;dianna.hohensee@10gen.com&apos;, &apos;username&apos;: &apos;DiannaHohensee&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36956&quot; title=&quot;Replace the statistic that dynamically resizes the snapshot history window&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36956&quot;&gt;&lt;del&gt;SERVER-36956&lt;/del&gt;&lt;/a&gt; SnapshotTooOld errors will always increase the snapshot history window size&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 8899b34e1044b08aec7ad9f8546652456472702c.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8bb53a07a5c593d85b6229a2afe096b3e1efe21d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8bb53a07a5c593d85b6229a2afe096b3e1efe21d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2252894" author="dianna.hohensee" created="Mon, 20 May 2019 16:42:42 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=alexander.gorrod&quot; class=&quot;user-hover&quot; rel=&quot;alexander.gorrod&quot;&gt;alexander.gorrod&lt;/a&gt; in regards to a workload to exercise the problem, I don&apos;t think we have any good ones. I encountered problems with a perf workload I wrote a little less than a year ago; and there&apos;s the sharding suite that was failing (the BF linked to this ticket). In both cases, the cache pressure calculation issues were unearthed by adding extra logging about what the score was when accessed. The score fluctuates too much out of our control to get a more direct repro.&lt;/p&gt;

&lt;p&gt;I believe Keith is familiar with how the lookaside score operates. First, the score can just sit at 60, say, and never reach 100 to trigger eviction. Second, we don&apos;t reset it after eviction, so again we get stuck even after cache pressure recedes.&lt;/p&gt;

&lt;p&gt;MongoDB also has to build something specialized on top of whatever WT can provide us, so there isn&apos;t really some workload that doesn&apos;t work now and then with a WT change would start working. Unless we built something on top of WT first while knowing what WT was going to build.&lt;/p&gt;</comment>
                            <comment id="2251285" author="dianna.hohensee" created="Fri, 17 May 2019 22:06:40 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=alexander.gorrod&quot; class=&quot;user-hover&quot; rel=&quot;alexander.gorrod&quot;&gt;alexander.gorrod&lt;/a&gt; I think a statistic reporting the actual percent cache usage would be useful. Then looking at that, and maybe the eviction thresholds, we could more finely control the history window size between stable and oldest timestamps so as not to cause cache pressure &amp;#8211; or at least signal via logging that the user needs more cache space.&lt;/p&gt;

&lt;p&gt;I think we have something that will work for v4.2 &amp;#8211; unless I hear otherwise from sharding or drivers.&lt;/p&gt;

&lt;p&gt;I wouldn&apos;t want any WT work to be done, however, unless we had a plan for how to use it to better control the history window. Particularly with the cache changes WT is introducing in v4.4 for longer running transactions.&lt;/p&gt;</comment>
                            <comment id="2251269" author="dianna.hohensee" created="Fri, 17 May 2019 21:50:52 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=bruce.lucas%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;bruce.lucas@mongodb.com&quot;&gt;bruce.lucas@mongodb.com&lt;/a&gt;, I &lt;a href=&quot;https://github.com/mongodb/mongo/commit/8899b34e1044b08aec7ad9f8546652456472702c#diff-c5c27ae3b4a7473dce741622f660901cR154&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;removed two of the serverStatus.wiredtiger.snapshot-window-settings fields and added two new fields in this patch&lt;/a&gt;. The snapshot-window-settings section was introduced back in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-31767&quot; title=&quot;Provide a window of snapshot history that is accessible for PIT reads&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-31767&quot;&gt;&lt;del&gt;SERVER-31767&lt;/del&gt;&lt;/a&gt; (see &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-31767?focusedCommentId=1875613&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-1875613&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;this comment&lt;/a&gt;).&lt;/p&gt;</comment>
                            <comment id="2251261" author="xgen-internal-githook" created="Fri, 17 May 2019 21:38:20 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Dianna&apos;, &apos;email&apos;: &apos;dianna.hohensee@10gen.com&apos;, &apos;username&apos;: &apos;DiannaHohensee&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36956&quot; title=&quot;Replace the statistic that dynamically resizes the snapshot history window&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36956&quot;&gt;&lt;del&gt;SERVER-36956&lt;/del&gt;&lt;/a&gt; SnapshotTooOld errors will always increase the snapshot history window size&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8899b34e1044b08aec7ad9f8546652456472702c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8899b34e1044b08aec7ad9f8546652456472702c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2246865" author="alexander.gorrod" created="Wed, 15 May 2019 00:57:35 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=dianna.hohensee&quot; class=&quot;user-hover&quot; rel=&quot;dianna.hohensee&quot;&gt;dianna.hohensee&lt;/a&gt; The intent of the cache lookaside score is that it&apos;s an indicator for cache pressure triggered by history requirements. If MongoDB is encountering cases where the score isn&apos;t effectively tracking that situation, I&apos;d prefer to update WiredTiger to improve the lookaside score calculation than to search for a solution based on different heuristics.&lt;/p&gt;

&lt;p&gt;Could you provide a workload or set of workloads where the lookaside score isn&apos;t currently behaving as desired so we can understand why and improve it on the WiredTiger side?&lt;/p&gt;</comment>
                            <comment id="2246000" author="dianna.hohensee" created="Tue, 14 May 2019 15:33:39 +0000"  >&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; I imagine the score could also just stay at 60, say, and never reach 100. In that case, we would similarly be stuck. The metric is not reliable for our purposes.&lt;/p&gt;</comment>
                            <comment id="2245936" author="louis.williams" created="Tue, 14 May 2019 15:06:21 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=alexander.gorrod&quot; class=&quot;user-hover&quot; rel=&quot;alexander.gorrod&quot;&gt;alexander.gorrod&lt;/a&gt; the issue described by &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40685&quot; title=&quot;Mongos often fails transactions that use &amp;quot;snapshot&amp;quot; with SnapshotTooOld&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40685&quot;&gt;&lt;del&gt;SERVER-40685&lt;/del&gt;&lt;/a&gt; is that the WT_STAT_CONN_CACHE_LOOKASIDE_SCORE metric gets &quot;stuck&quot; at a high value and never drops because eviction threads stop running after the cache pressure dies down. Would it instead be simpler for WiredTiger to change the behavior of that statistic so that it can drop down even when the eviction threads stop running?&lt;/p&gt;</comment>
                            <comment id="2240924" author="alexander.gorrod" created="Fri, 10 May 2019 04:36:28 +0000"  >&lt;p&gt;The reason I would recommend using &lt;tt&gt;WT_STAT_CONN_CACHE_LOOKASIDE_SCORE&lt;/tt&gt; is that it is a leading indicator - it should grow high as it becomes more likely for WiredTiger to begin using cache overflow. Wheras &lt;tt&gt;WT_STAT_CONN_CACHE_LOOKASIDE_INSERT&lt;/tt&gt; will only have a meaningful result once we have already started using lookaside. The insert statistic is also a counter - so you&apos;ll need to track change over time and calculate a running insert rate.&lt;/p&gt;

&lt;p&gt;I wouldn&apos;t recommend using &lt;tt&gt;WT_STAT_CONN_CACHE_LOOKASIDE_ENTRIES&lt;/tt&gt; - that could be heavily skewed due to earlier activity, which I don&apos;t think would be ideal.&lt;/p&gt;

&lt;p&gt;If the lookaside score isn&apos;t useful, I&apos;d recommend implementing something that uses a combination of checking whether timestamps are pinned (there are WiredTiger statistics that can tell you that) along with dirty cache usage as a proportion of allowed dirty cache. It&apos;s possible to use the &lt;tt&gt;cache_bytes_dirty&lt;/tt&gt; statistic to figure out what proportion of the cache is dirty by comparing it to the configured maximum cache size and the proportion of that which can be dirty which is controlled by the &lt;tt&gt;eviction_dirty_trigger&lt;/tt&gt; configuration setting.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="740068">SERVER-40685</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="772343">SERVER-41244</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="791235">SERVER-41561</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="787809">SERVER-41472</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>10.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_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>Fri, 10 May 2019 04:36:28 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 31 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_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>
                            4 years, 31 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>45.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>alexander.gorrod@mongodb.com</customfieldvalue>
            <customfieldvalue>dianna.hohensee@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</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|hu6w53:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr78on:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="2909">Storage NYC 2019-05-20</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|hu6ief:</customfieldvalue>

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