<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:42:44 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-36312] Re-enable atClusterTime selection algorithm on mongos</title>
                <link>https://jira.mongodb.org/browse/SERVER-36312</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The snapshot transactions&apos; &lt;tt&gt;atClusterTime&lt;/tt&gt; selection algorithm developed as part of the Global Point in Time reads project for 4.0 works as follows:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Perform routing using the latest available routing table on MongoS&lt;/li&gt;
	&lt;li&gt;Using the per-shard majority committed timestamp, select the smallest timestamp across the targeted shards (this is in order to ensure none of the targeted shards will perform a no-op write)&lt;/li&gt;
	&lt;li&gt;Perform routing at the timestamp selected in the previous step and if this results in the same set of shards, use the selected timestamp. Otherwise use the latest available timestamp on the logical clock&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;This algorithm was disabled through &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34326&quot; title=&quot;Global snapshot reads fail with SnapshotTooOld error&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34326&quot;&gt;&lt;del&gt;SERVER-34326&lt;/del&gt;&lt;/a&gt; (and deleted by &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34475&quot; title=&quot;Coverity analysis defect 103493: Structurally dead code&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34475&quot;&gt;&lt;del&gt;SERVER-34475&lt;/del&gt;&lt;/a&gt;) due to the small window of history that the storage engine supports. Now that &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; has increased the window of timestamps available for &lt;tt&gt;atClusterTime&lt;/tt&gt; reads, the above selection algorithm can be re-enabled.&lt;/p&gt;

&lt;p&gt;In addition, using the majority committed timestamp goes against the performance goals of the speculative snapshot optimization and can also lead to problems on shards with &lt;tt&gt;enableMajorityReadConcern=false&lt;/tt&gt; (where such shards may never provide a snapshot at the selected &lt;tt&gt;atClusterTime&lt;/tt&gt;). Because of this, the algorithm should be changed to use the last applied opTime timestamps of the targeted shards.&lt;/p&gt;</description>
                <environment></environment>
        <key id="576762">SERVER-36312</key>
            <summary>Re-enable atClusterTime selection algorithm on mongos</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="backlog-server-sharding-nyc">[DO NOT USE] Backlog - Sharding NYC</assignee>
                                    <reporter username="jack.mulrow@mongodb.com">Jack Mulrow</reporter>
                        <labels>
                            <label>ShardedTxn:FutureOptimizations</label>
                            <label>max-triage</label>
                            <label>pm-564</label>
                    </labels>
                <created>Thu, 26 Jul 2018 19:27:48 +0000</created>
                <updated>Tue, 6 Dec 2022 03:23:14 +0000</updated>
                            <resolved>Thu, 18 Nov 2021 16:57:54 +0000</resolved>
                                                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="4198317" author="ratika.gandhi" created="Thu, 18 Nov 2021 16:57:54 +0000"  >&lt;p&gt;Closing this. We will reopen this ticket if we hear complaints about stalls from the field.&#160;&lt;/p&gt;</comment>
                            <comment id="2114938" author="kaloian.manassiev" created="Mon, 14 Jan 2019 22:24:16 +0000"  >&lt;p&gt;Due to the multi-version routing table and because document histories are not carried as part of migration, the cluster time selection algorithm in question requires two phases:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Perform routing with the latest available cluster time in order to obtain a subset of shards&lt;/li&gt;
	&lt;li&gt;Select the most optimal timestamp for the produced subset of shards&lt;/li&gt;
	&lt;li&gt;Perform routing again with the timestamp selected in the previous step (which can potentially yield a different set of shards)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The value of this optimization is unclear versus the complexity it introduces and because of this we will not implement it.&lt;/p&gt;</comment>
                            <comment id="2030301" author="jack.mulrow" created="Thu, 11 Oct 2018 16:47:21 +0000"  >&lt;p&gt;If this work is started after PM-1191 has written integration tests for single replica set sharded transactions with &lt;tt&gt;enableReadConcernMajority=false&lt;/tt&gt;, then it will need to be done in tandem with &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37549&quot; title=&quot;Compute atClusterTime for sharded transactions using lastApplied opTime timestamps of targeted shards&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37549&quot;&gt;&lt;del&gt;SERVER-37549&lt;/del&gt;&lt;/a&gt;, to avoid picking atClusterTimes based on a lagged majority commit point that shards may not be able to provide snapshots at.&lt;/p&gt;</comment>
                            <comment id="2020688" author="greg.mckeon" created="Tue, 2 Oct 2018 15:34:43 +0000"  >&lt;p&gt;When doing this, we need to make sure we&apos;re actually using the routing information from the latest cluster time, which we ended up selecting (rather than the one which was latest at the time the command ran).&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="616696">SERVER-37549</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10020">
                    <name>Gantt Dependency</name>
                                            <outwardlinks description="has to be done before">
                                        <issuelink>
            <issuekey id="616696">SERVER-37549</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="has to be done after">
                                        <issuelink>
            <issuekey id="562118">SERVER-35707</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="490951">SERVER-33053</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="617016">SERVER-37568</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>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25134"><![CDATA[Sharding NYC]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 7 Aug 2018 15:36:23 +0000</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years, 11 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-sharding-nyc</customfieldvalue>
            <customfieldvalue>greg.mckeon@mongodb.com</customfieldvalue>
            <customfieldvalue>jack.mulrow@mongodb.com</customfieldvalue>
            <customfieldvalue>kaloian.manassiev@mongodb.com</customfieldvalue>
            <customfieldvalue>ratika.gandhi@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu3iwv:</customfieldvalue>

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

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