<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:10:47 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-46199] Implement collection cache on top of ReadThroughCache to make it causally consistent</title>
                <link>https://jira.mongodb.org/browse/SERVER-46199</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This task is to implement the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ff888fc56f4426c42fcab346a4bd3b7fd8532502/src/mongo/s/catalog_cache.h#L499-L500&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Collection cache&lt;/a&gt; on top of &lt;a href=&quot;https://github.com/mongodb/mongo/blob/44a107ad428459cad6260490ae98bca442e07385/src/mongo/util/read_through_cache.h#L45&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;ReadThroughCache&lt;/a&gt; in order to make it causally consistent.&lt;/p&gt;

&lt;p&gt;Ideally databases and collections should ideally be stored in two different cache objects and tracked independently and the retrieval of the Database + Collection combination for the unsharded case should be a syntactic sugar on top of it, rather than the current implementation, which stores them as two hierarchical caches.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1152460">SERVER-46199</key>
            <summary>Implement collection cache on top of ReadThroughCache to make it causally consistent</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</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="tommaso.tocci@mongodb.com">Tommaso Tocci</assignee>
                                    <reporter username="kaloian.manassiev@mongodb.com">Kaloian Manassiev</reporter>
                        <labels>
                            <label>PM-1645-Milestone-2</label>
                    </labels>
                <created>Sat, 15 Feb 2020 07:49:49 +0000</created>
                <updated>Sun, 29 Oct 2023 22:12:07 +0000</updated>
                            <resolved>Wed, 9 Sep 2020 22:54:04 +0000</resolved>
                                                    <fixVersion>4.8.0</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="3387714" author="xgen-internal-githook" created="Fri, 11 Sep 2020 17:08:56 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Marcos Jos&#233; Grillo Ram&#237;rez&apos;, &apos;email&apos;: &apos;marcos.grillo@mongodb.com&apos;, &apos;username&apos;: &apos;m4nti5&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46199&quot; title=&quot;Implement collection cache on top of ReadThroughCache to make it causally consistent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46199&quot;&gt;&lt;del&gt;SERVER-46199&lt;/del&gt;&lt;/a&gt; Make the collection CatalogCache support causal consistency&lt;/p&gt;

&lt;p&gt;This change implements the collection CatalogCache on top of the&lt;br/&gt;
ReadThroughCache, giving it the ability to support causal consistency.&lt;br/&gt;
As part of this change, the &apos;forceRefreshFromThisThread&apos; flag has been&lt;br/&gt;
removed from the shard&apos;s refresh methods.&lt;/p&gt;

&lt;p&gt;Co-authored-by: Tommaso Tocci &amp;lt;tommaso.tocci@mongodb.com&amp;gt;&lt;br/&gt;
Co-authored-by: Pierlauro Sciarelli &amp;lt;pierlauro.sciarelli@mongodb.com&amp;gt;&lt;br/&gt;
Co-authored-by: Kaloian Manassiev &amp;lt;kaloian.manassiev@mongodb.com&amp;gt;&lt;br/&gt;
Branch: svilen-optimizer-poc&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/377b8fe43916ff2c4e2ed35cb80548aeb8ba8c8d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/377b8fe43916ff2c4e2ed35cb80548aeb8ba8c8d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3384324" author="xgen-internal-githook" created="Wed, 9 Sep 2020 22:27:33 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Marcos Jos&#233; Grillo Ram&#237;rez&apos;, &apos;email&apos;: &apos;marcos.grillo@mongodb.com&apos;, &apos;username&apos;: &apos;m4nti5&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46199&quot; title=&quot;Implement collection cache on top of ReadThroughCache to make it causally consistent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46199&quot;&gt;&lt;del&gt;SERVER-46199&lt;/del&gt;&lt;/a&gt; Make the collection CatalogCache support causal consistency&lt;/p&gt;

&lt;p&gt;This change implements the collection CatalogCache on top of the&lt;br/&gt;
ReadThroughCache, giving it the ability to support causal consistency.&lt;br/&gt;
As part of this change, the &apos;forceRefreshFromThisThread&apos; flag has been&lt;br/&gt;
removed from the shard&apos;s refresh methods.&lt;/p&gt;

&lt;p&gt;Co-authored-by: Tommaso Tocci &amp;lt;tommaso.tocci@mongodb.com&amp;gt;&lt;br/&gt;
Co-authored-by: Pierlauro Sciarelli &amp;lt;pierlauro.sciarelli@mongodb.com&amp;gt;&lt;br/&gt;
Co-authored-by: Kaloian Manassiev &amp;lt;kaloian.manassiev@mongodb.com&amp;gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/377b8fe43916ff2c4e2ed35cb80548aeb8ba8c8d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/377b8fe43916ff2c4e2ed35cb80548aeb8ba8c8d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3376449" author="xgen-internal-githook" created="Sat, 5 Sep 2020 11:02:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;, &apos;username&apos;: &apos;kaloianm&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46199&quot; title=&quot;Implement collection cache on top of ReadThroughCache to make it causally consistent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46199&quot;&gt;&lt;del&gt;SERVER-46199&lt;/del&gt;&lt;/a&gt; Fix CollectionShardingState &amp;lt;-&amp;gt; CatalogCache destruction order in unit-tests&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8a86a51758f4913fd21f01408a402e5a6f787ea5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8a86a51758f4913fd21f01408a402e5a6f787ea5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3376086" author="xgen-internal-githook" created="Fri, 4 Sep 2020 11:52:32 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;, &apos;username&apos;: &apos;kaloianm&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46199&quot; title=&quot;Implement collection cache on top of ReadThroughCache to make it causally consistent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46199&quot;&gt;&lt;del&gt;SERVER-46199&lt;/del&gt;&lt;/a&gt; Get rid of the BM_IncrementalRefreshWithNoChange benchmark&lt;/p&gt;

&lt;p&gt;This test is incompatible with making the RoutingTableHistory movable,&lt;br/&gt;
done under 3df9c61b7747058cd84edd7a875b1524db57dd1d. In order to&lt;br/&gt;
preserve the same performance characteristic, the check for whether any&lt;br/&gt;
changes have happened to the routing info was pulled at a higher level,&lt;br/&gt;
in the CatalogCache.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3f9e675017474fd53b6cc149ea492aed95b8c92d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3f9e675017474fd53b6cc149ea492aed95b8c92d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3375068" author="xgen-internal-githook" created="Thu, 3 Sep 2020 16:37:31 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;, &apos;username&apos;: &apos;kaloianm&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46199&quot; title=&quot;Implement collection cache on top of ReadThroughCache to make it causally consistent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46199&quot;&gt;&lt;del&gt;SERVER-46199&lt;/del&gt;&lt;/a&gt; Make the RoutingTableHistory movable&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3df9c61b7747058cd84edd7a875b1524db57dd1d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3df9c61b7747058cd84edd7a875b1524db57dd1d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3373860" author="xgen-internal-githook" created="Thu, 3 Sep 2020 08:12:14 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;, &apos;username&apos;: &apos;kaloianm&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46199&quot; title=&quot;Implement collection cache on top of ReadThroughCache to make it causally consistent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46199&quot;&gt;&lt;del&gt;SERVER-46199&lt;/del&gt;&lt;/a&gt; Hide the RoutingTableHistory detail from the ChunkManager&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e9b6548c82815c7fb900ee7c00e497660a7d610c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e9b6548c82815c7fb900ee7c00e497660a7d610c&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="1149645">SERVER-46154</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1384780">SERVER-48990</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1395612">SERVER-49190</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1439649">SERVER-50272</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1467357">SERVER-50812</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1467392">SERVER-50815</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="1425487">SERVER-50042</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                                                <inwardlinks description="split from">
                                        <issuelink>
            <issuekey id="1384782">SERVER-48991</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                        <issuelink>
            <issuekey id="1475175">SERVER-50952</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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>5.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>Mon, 27 Jul 2020 17:06:39 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 21 weeks, 5 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-46154'>SERVER-46154</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-48990'>SERVER-48990</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-49190'>SERVER-49190</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-50272'>SERVER-50272</a></s>]]></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, 21 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>50.0</customfieldvalue>

                        </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>tommaso.tocci@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hwqvqf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hxdfin:</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="3954">Sharding 2020-07-13</customfieldvalue>
    <customfieldvalue id="3957">Sharding 2020-06-29</customfieldvalue>
    <customfieldvalue id="4135">Sharding 2020-07-27</customfieldvalue>
    <customfieldvalue id="4137">Sharding 2020-08-24</customfieldvalue>
    <customfieldvalue id="4252">Sharding 2020-09-21</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|hwqhzr:</customfieldvalue>

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