<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:45:46 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-37364] Coordinator should return the decision to the client as soon as the decision is durable</title>
                <link>https://jira.mongodb.org/browse/SERVER-37364</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently, the coordinator waits for all participants to ack the decision before returning the decision to the client.&lt;/p&gt;

&lt;p&gt;Once a participant with a prepared transaction blocks requests with a higher transaction number rather than return PreparedTransactionInProgress (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38028&quot; title=&quot;Participant with prepared transaction on session should block request for higher txn number on session rather than failing the new request&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38028&quot;&gt;&lt;del&gt;SERVER-38028&lt;/del&gt;&lt;/a&gt;), the coordinator can return to the client as soon as the commit decision is persisted (with the user&apos;s requested writeConcern, including journaling preference).&lt;/p&gt;

&lt;p&gt;Note that if the user requested w:1 writeConcern, the decision may roll back after being reported to the client, but regardless all participants will apply the same decision.&lt;/p&gt;</description>
                <environment></environment>
        <key id="611093">SERVER-37364</key>
            <summary>Coordinator should return the decision to the client as soon as the decision is durable</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="cheahuychou.mao@mongodb.com">Cheahuychou Mao</assignee>
                                    <reporter username="matthew.saltz@mongodb.com">Matthew Saltz</reporter>
                        <labels>
                            <label>ShardedTxn:DistributedCommit</label>
                            <label>ShardedTxn:FutureOptimizations</label>
                            <label>pm-564</label>
                            <label>transaction-coordinator-management</label>
                    </labels>
                <created>Thu, 27 Sep 2018 20:45:20 +0000</created>
                <updated>Sun, 29 Oct 2023 22:27:50 +0000</updated>
                            <resolved>Wed, 6 May 2020 20:14:54 +0000</resolved>
                                                    <fixVersion>4.7.0</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>12</watches>
                                                                                                                <comments>
                            <comment id="3072663" author="tess.avitabile" created="Wed, 6 May 2020 20:14:45 +0000"  >&lt;p&gt;Awesome, thank you!&lt;/p&gt;</comment>
                            <comment id="3072657" author="esha.maharishi@10gen.com" created="Wed, 6 May 2020 20:12:29 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt;, ah, thanks, we forgot to test this. I also checked and right now the coordinator is actually only&#160;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/bfaebfa7b5ad725717d1d348ae33bc758028f697/src/mongo/db/s/transaction_coordinator.cpp#L271-L281&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;returning the decision&lt;/a&gt; once the&#160;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/bfaebfa7b5ad725717d1d348ae33bc758028f697/src/mongo/db/s/transaction_coordinator.cpp#L240-L247&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;decision is majority-committed&lt;/a&gt;. I filed &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47993&quot; title=&quot;Make coordinateCommitTransaction return the decision once the decision has been written with the user&amp;#39;s writeConcern&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47993&quot;&gt;&lt;del&gt;SERVER-47993&lt;/del&gt;&lt;/a&gt; to change this as follow-on work.&lt;/p&gt;</comment>
                            <comment id="3072466" author="tess.avitabile" created="Wed, 6 May 2020 18:53:37 +0000"  >&lt;p&gt;Did you end up testing that we respect the user&apos;s writeConcern here?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We should ensure that we respect the user writeConcern here. For example, if the user requested w:1, we should return as soon as the decision is persisted with w:1.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Also, I&apos;m really excited to see this ticket get pushed!&lt;br/&gt;
&#160;&lt;/p&gt;</comment>
                            <comment id="3072461" author="xgen-internal-githook" created="Wed, 6 May 2020 18:51:10 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Cheahuychou Mao&apos;, &apos;email&apos;: &apos;cheahuychou.mao@mongodb.com&apos;, &apos;username&apos;: &apos;cheahuychou&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37364&quot; title=&quot;Coordinator should return the decision to the client as soon as the decision is durable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37364&quot;&gt;&lt;del&gt;SERVER-37364&lt;/del&gt;&lt;/a&gt; Coordinator should return the decision to the client as soon as the decision is durable&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/607f486bbb0211f1769b8bd2200b3cdaaaafe775&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/607f486bbb0211f1769b8bd2200b3cdaaaafe775&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3004336" author="jason.carey" created="Fri, 27 Mar 2020 15:20:40 +0000"  >&lt;p&gt;Putting this in quick wins, assuming it&apos;s only a couple of days to revisit our earlier implementation.&lt;/p&gt;

&lt;p&gt;If this starts dragging out, we&apos;ll put this back on the backlog&lt;/p&gt;</comment>
                            <comment id="2055862" author="tess.avitabile" created="Thu, 8 Nov 2018 16:59:07 +0000"  >&lt;p&gt;We should ensure that we respect the user writeConcern here. For example, if the user requested w:1, we should return as soon as the decision is persisted with w:1.&lt;/p&gt;</comment>
                            <comment id="2055121" author="xgen-internal-githook" created="Wed, 7 Nov 2018 21:35:25 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Esha Maharishi&apos;, &apos;email&apos;: &apos;esha.maharishi@mongodb.com&apos;, &apos;username&apos;: &apos;EshaMaharishi&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37364&quot; title=&quot;Coordinator should return the decision to the client as soon as the decision is durable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37364&quot;&gt;&lt;del&gt;SERVER-37364&lt;/del&gt;&lt;/a&gt; Temporarily disable coordinator returning decision as soon as decision is durable&lt;/p&gt;

&lt;p&gt;Instead, the coordinator will wait for all acks before returning the decision. Re-enable when all tests have been updated to handle a decision being returned early, possibly by making a request with a higher transaction number block if it is received by a participant still in prepare for an earlier transaction.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/675c01a6f151c892fe683fc6ff05496b3bed10bf&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/675c01a6f151c892fe683fc6ff05496b3bed10bf&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2055058" author="esha.maharishi@10gen.com" created="Wed, 7 Nov 2018 20:57:28 +0000"  >&lt;p&gt;Re-opening because I am disabling making the coordinator return the decision as soon as the decision is durable.&lt;/p&gt;

&lt;p&gt;Some tests start a transaction with a higher transaction number immediately on hearing OK for committing the previous transaction, but if the new transaction&apos;s request arrives at a participant (which is still in prepare) before the participant hears the decision, the participant will fail the new request, which causes the tests to fail.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="588301">SERVER-36640</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="631366">SERVER-38028</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                                                <inwardlinks description="is documented by">
                                        <issuelink>
            <issuekey id="1048733">DOCS-13283</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="627926">SERVER-37882</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1048754">DOCS-13288</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1335945">SERVER-47890</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1406318">SERVER-49423</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1548581">SERVER-52988</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1989735">SERVER-63971</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2001848">SERVER-64515</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1292129">SERVER-47130</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1342426">SERVER-47993</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>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.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>Wed, 7 Nov 2018 20:57:28 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 40 weeks 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-36640'>SERVER-36640</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-38028'>SERVER-38028</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_17052" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Downstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Prior to this ticket, commitTransaction for a sharded transaction waited for the commitment to complete on all participant shards before returning to the client. After this ticket, commitTransaction will return to the client as soon as the commit decision is persisted with the user&amp;#39;s requested writeConcern. Note that some component writes will still be performed with  writeConcern {w: &amp;quot;majority&amp;quot;, j: true}.</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16942"><![CDATA[Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1771</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, 40 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>cheahuychou.mao@mongodb.com</customfieldvalue>
            <customfieldvalue>esha.maharishi@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>matthew.saltz@mongodb.com</customfieldvalue>
            <customfieldvalue>mira.carey@mongodb.com</customfieldvalue>
            <customfieldvalue>tess.avitabile@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu926v:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htuntz:</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="2540">Sharding 2018-11-05</customfieldvalue>
    <customfieldvalue id="3837">Sharding 2020-04-20</customfieldvalue>
    <customfieldvalue id="3841">Sharding 2020-05-04</customfieldvalue>
    <customfieldvalue id="3842">Sharding 2020-05-18</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_17051" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Teams Impacted</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16944"><![CDATA[Docs]]></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|hu8og7:</customfieldvalue>

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