<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:07:31 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-44978] Make ReadThroughCache support asynchronous loading</title>
                <link>https://jira.mongodb.org/browse/SERVER-44978</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;As part of this change the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/876b3af1091b299884869c34a41f7f37d4dcc0bb/src/mongo/util/read_through_cache.h#L215&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;ReadThroughCache&lt;/tt&gt;&lt;/a&gt; should be made to perform the loading asynchronously, on a separate thread rather than doing it &lt;a href=&quot;https://github.com/mongodb/mongo/blob/876b3af1091b299884869c34a41f7f37d4dcc0bb/src/mongo/util/read_through_cache.h#L322&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;inline&lt;/a&gt; on the thread of the caller to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/876b3af1091b299884869c34a41f7f37d4dcc0bb/src/mongo/util/read_through_cache.h#L301&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;acquire&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The asynchronous implementation should add the following methods to the API:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Future&amp;lt;ValueHandle&amp;gt; acquireAsync(const Key&amp;amp; key)&lt;/li&gt;
	&lt;li&gt;ValueHandle acquire(OperationContext* opCtx, const Key&amp;amp; key)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If an &lt;a href=&quot;https://github.com/mongodb/mongo/blob/876b3af1091b299884869c34a41f7f37d4dcc0bb/src/mongo/util/read_through_cache.h#L354&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;invalidate&lt;/tt&gt;&lt;/a&gt; is called for a key, which is being concurrently loaded, it is acceptable to interrupt the loading of the key if it is currently in progress, but the acquire should not fail.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1039326">SERVER-44978</key>
            <summary>Make ReadThroughCache support asynchronous loading</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="kaloian.manassiev@mongodb.com">Kaloian Manassiev</assignee>
                                    <reporter username="kevin.pulo@mongodb.com">Kevin Pulo</reporter>
                        <labels>
                            <label>PM-1645-Milestone-2</label>
                    </labels>
                <created>Fri, 6 Dec 2019 01:21:55 +0000</created>
                <updated>Sun, 29 Oct 2023 22:14:22 +0000</updated>
                            <resolved>Wed, 4 Mar 2020 06:49:27 +0000</resolved>
                                                    <fixVersion>4.3.5</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="2933402" author="xgen-internal-githook" created="Tue, 3 Mar 2020 22:39:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;username&apos;: &apos;kaloianm&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44978&quot; title=&quot;Make ReadThroughCache support asynchronous loading&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44978&quot;&gt;&lt;del&gt;SERVER-44978&lt;/del&gt;&lt;/a&gt; Make the ReadThroughCache lookup asynchronous&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e8da98999ff4aa201b2805fbd4b379a9f0e807a7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e8da98999ff4aa201b2805fbd4b379a9f0e807a7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2913512" author="xgen-internal-githook" created="Thu, 27 Feb 2020 03:49:45 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;kaloianm&apos;, &apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44978&quot; title=&quot;Make ReadThroughCache support asynchronous loading&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44978&quot;&gt;&lt;del&gt;SERVER-44978&lt;/del&gt;&lt;/a&gt; Move the &quot;cache generation&quot; to AuthorizationManagerImpl&lt;/p&gt;

&lt;p&gt;The &quot;cache generation&quot; concept is something specific to the&lt;br/&gt;
Authorization Manager and doesn&apos;t fit with an asynchronous (non&lt;br/&gt;
totally-ordered cache). This change moves it out of the ReadThroughCache&lt;br/&gt;
and makes it an AuthorizationManager concept.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d3df81cac59e3dd216c60e87b74ac7c444343201&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d3df81cac59e3dd216c60e87b74ac7c444343201&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2909693" author="xgen-internal-githook" created="Wed, 26 Feb 2020 07:56:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;kaloianm&apos;, &apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44978&quot; title=&quot;Make ReadThroughCache support asynchronous loading&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44978&quot;&gt;&lt;del&gt;SERVER-44978&lt;/del&gt;&lt;/a&gt; Remove accidentally added usage of getGlobalServiceContext() from ReadWriteConcernDefaults&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/51eceb8afa6610b4ff0befb92ec6039173bab00f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/51eceb8afa6610b4ff0befb92ec6039173bab00f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2880004" author="xgen-internal-githook" created="Sat, 15 Feb 2020 11:20:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;username&apos;: &apos;kaloianm&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44978&quot; title=&quot;Make ReadThroughCache support asynchronous loading&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44978&quot;&gt;&lt;del&gt;SERVER-44978&lt;/del&gt;&lt;/a&gt; Thread-through ServiceContext and ThreadPool to ReadThroughCache&lt;/p&gt;

&lt;p&gt;There are no functional changes to this CR, it just instantiates every&lt;br/&gt;
usage of ReadThroughCache with a ServiceContext and ThreadPool, which&lt;br/&gt;
will be used for making the acquire method asynchronous.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/611979eb5cafba7bb5369a19948f82453f117c65&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/611979eb5cafba7bb5369a19948f82453f117c65&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2880003" author="xgen-internal-githook" created="Sat, 15 Feb 2020 11:19:54 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;kaloianm&apos;, &apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44978&quot; title=&quot;Make ReadThroughCache support asynchronous loading&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44978&quot;&gt;&lt;del&gt;SERVER-44978&lt;/del&gt;&lt;/a&gt; Make the ReadThroughCache perform loads on a separate thread&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/commit/f2063ed063b8a5fffafed4776edf3b2ca1533fca&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/commit/f2063ed063b8a5fffafed4776edf3b2ca1533fca&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2638930" author="kevin.pulo@10gen.com" created="Tue, 17 Dec 2019 23:25:23 +0000"  >&lt;p&gt;An additional issue is that if this is done, and the maxTimeMs of the CRUD ops coming in is too short for the (inline) lookup() to succeed, then the cache could be starved.  (At the moment, the cache will be populated, and the user CRUD op will then timeout immediately on starting.)  So it might also be necessary to make the lookup()s occur in a separate thread.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1117021">SERVER-45798</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1149645">SERVER-46154</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="1193037">SERVER-46442</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1193037">SERVER-46442</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1058636">SERVER-45215</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>6.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>Thu, 13 Feb 2020 20:09:39 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 49 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-1645</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>
                            3 years, 49 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>kaloian.manassiev@mongodb.com</customfieldvalue>
            <customfieldvalue>kevin.pulo@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hw8kx3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hvndxj:</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="3653">Sharding 2020-03-09</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|hw876f:</customfieldvalue>

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