<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:57: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-63333] Attach retryable error label to TemporarilyUnavailable error code in a Serverless environment</title>
                <link>https://jira.mongodb.org/browse/SERVER-63333</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;When run under a Serverless environment, we want to dynamically attach a RetriableError label to the TemporarilyUnavailable error code under the assumption that the higher layers will throttle themselves.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1978247">SERVER-63333</key>
            <summary>Attach retryable error label to TemporarilyUnavailable error code in a Serverless environment</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="backlog-server-execution">Backlog - Storage Execution Team</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                    </labels>
                <created>Mon, 7 Feb 2022 09:22:53 +0000</created>
                <updated>Tue, 23 May 2023 07:22:06 +0000</updated>
                            <resolved>Tue, 23 May 2023 07:22:06 +0000</resolved>
                                                                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="5444385" author="louis.williams" created="Tue, 23 May 2023 07:22:06 +0000"  >&lt;p&gt;Closing in favor of implementing more comprehensive load-shedding strategy in the server.&lt;/p&gt;</comment>
                            <comment id="4389182" author="louis.williams" created="Thu, 3 Mar 2022 14:42:58 +0000"  >&lt;p&gt;Pausing work on this until we determine whether &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-64050&quot; title=&quot;set TemporarilyUnavailableException::kRetryBackoff higher&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-64050&quot;&gt;&lt;del&gt;SERVER-64050&lt;/del&gt;&lt;/a&gt; is sufficient to just raise the timeout delay inside the server.&lt;/p&gt;</comment>
                            <comment id="4374289" author="esha.maharishi@10gen.com" created="Thu, 24 Feb 2022 15:06:54 +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;, this matches my understanding. We acknowledged that by attaching RetryableWriteError, drivers will only be able to retry retryable writes, not regular writes, in two places:&lt;/p&gt;

&lt;p&gt;From the&#160;&lt;a href=&quot;https://mongodb.slack.com/archives/C01BSKCQMFG/p1643306887009500&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Slack&lt;/a&gt; conversation a while ago, where we agreed to do (1) for now, then likely eventually (2):&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;(1) Hook into the drivers&apos; existing retry system for now by having the server attach a retryable error label when running in Serverless. This might require the server to return a different error in Serverless and non-Serverless, to get around how we statically declare error codes (though &lt;a href=&quot;https://mongodb.slack.com/team/U1CV1KBHR&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;@louis.williams&lt;/a&gt;, it looks like the decision for what error label to attach is &lt;a href=&quot;https://github.com/mongodb/mongo/blob/75e32d62555b868e7664b076ee0e1042de6b5fb2/src/mongo/db/error_labels.cpp#L134-L156&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;done dynamically in C++&lt;/a&gt;?). &lt;b&gt;This also has the limitation of only being able to use our &lt;a href=&quot;https://github.com/mongodb/mongo/blob/75e32d62555b868e7664b076ee0e1042de6b5fb2/src/mongo/db/error_labels.h&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;existing error labels&lt;/a&gt;, which don&apos;t apply to every operation.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;(2) Make Atlas Proxy retry internally on the error.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;From the&#160;&lt;a href=&quot;https://docs.google.com/document/d/13Bf9qr5iyJLI_iSohrSNxRwQBYGIxEbzW1qF_zje7xk/edit&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Alternative to transactions larger than cache&lt;/a&gt; doc:&lt;/p&gt;
&lt;blockquote&gt;&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-60839&quot; title=&quot;Introduce a TemporarilyUnavailable error type&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-60839&quot;&gt;&lt;del&gt;SERVER-60839&lt;/del&gt;&lt;/a&gt;: Make MongoDB retry a finite number of times on a transaction that was aborted due to dirty cache being full, then return an error with a retryable error label.
	&lt;ul&gt;
		&lt;li&gt;Interaction with drivers
		&lt;ul&gt;
			&lt;li&gt;If the operation is a retryable write, the driver will retry the write once (currently) or up to timeoutMs (after Client Side Operations Timeout). The error will not cause the driver to close any connections or suddenly open many new connections, the way a socket timeout would. We can only speculate how the application will handle the error.&lt;/li&gt;
			&lt;li&gt;&lt;b&gt;If the operation is not a retryable write, the driver will return the error to the application without retrying.&lt;/b&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=matt.broadstone&quot; class=&quot;user-hover&quot; rel=&quot;matt.broadstone&quot;&gt;matt.broadstone&lt;/a&gt;, thanks for documenting the options for improving the driver retry. Just a note I think there was generally interest in having Atlas Proxy/mongos/mongoq do the retries in the long term, so that we don&apos;t have to update all drivers (and users don&apos;t have to upgrade their drivers).&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1903239">SERVER-60839</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25136"><![CDATA[Storage Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 8 Feb 2022 16:27:44 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        37 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>louis.williams@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            37 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-execution</customfieldvalue>
            <customfieldvalue>esha.maharishi@mongodb.com</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i0jb67:</customfieldvalue>

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

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