<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 07:49:48 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>[DOCS-5185] MongoDB does not guarantee that rollback doesn&apos;t happen</title>
                <link>https://jira.mongodb.org/browse/DOCS-5185</link>
                <project id="10380" key="DOCS">Documentation</project>
                    <description>&lt;p&gt;This is claimed in docs at &lt;a href=&quot;http://docs.mongodb.org/manual/core/replica-set-rollbacks/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://docs.mongodb.org/manual/core/replica-set-rollbacks/&lt;/a&gt; and in the quiz for the Recovery section of M102. It isn&apos;t true.&lt;/p&gt;

&lt;p&gt;From the docs: &quot;To prevent rollbacks, use replica acknowledged write concern to guarantee that the write operations propagate to the members of a replica set.&quot;&lt;/p&gt;

&lt;p&gt;From M102: &quot;MongoDB has a method to ensure a write was replicated and will never need to be rolled back:&quot;&lt;/p&gt;

&lt;p&gt;Failure scenario in which commit was visible to another client on the master and then is removed during rollback.&lt;/p&gt;

&lt;p&gt;1) Client 1 commits to journal on master and waits.&lt;br/&gt;
2) Client 2 views commit from client 1 by doing read on master.&lt;br/&gt;
3) Master reboots.&lt;br/&gt;
4) Replica 2 elected new master, it didn&apos;t get oplog entry from step 1&lt;br/&gt;
5) Old master comes back, does rollback to remove change from step 1&lt;/p&gt;


</description>
                <environment></environment>
        <key id="194925">DOCS-5185</key>
            <summary>MongoDB does not guarantee that rollback doesn&apos;t happen</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="9">Done</resolution>
                                        <assignee username="kay.kim@mongodb.com">Kay Kim</assignee>
                                    <reporter username="mdcallag">Mark Callaghan</reporter>
                        <labels>
                    </labels>
                <created>Wed, 8 Apr 2015 22:59:11 +0000</created>
                <updated>Wed, 22 Apr 2015 20:41:05 +0000</updated>
                            <resolved>Fri, 10 Apr 2015 20:10:44 +0000</resolved>
                                                    <fixVersion>mongodb-2.6</fixVersion>
                    <fixVersion>mongodb-3.0</fixVersion>
                                    <component>manual</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="895522" author="shannon.bradshaw@10gen.com" created="Wed, 22 Apr 2015 20:41:05 +0000"  >&lt;p&gt;Revisiting this lesson, the existing quiz is not terribly on point even if it were correct. We&apos;ve updated as follows.&lt;/p&gt;

&lt;p&gt;Which of the following scenarios can trigger a rollback?&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;A secondary (that was previously a primary) contains write operations that are ahead of the current primary&lt;/li&gt;
	&lt;li&gt;A secondary lags behind the primary by 2 hours or more&lt;/li&gt;
	&lt;li&gt;A secondary lags behind the primary by 100 writes or more&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="878628" author="xgen-internal-githook" created="Fri, 10 Apr 2015 20:06:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kay-kim&apos;, u&apos;name&apos;: u&apos;kay&apos;, u&apos;email&apos;: u&apos;kay.kim@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DOCS-5185&quot; title=&quot;MongoDB does not guarantee that rollback doesn&amp;#39;t happen&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DOCS-5185&quot;&gt;&lt;del&gt;DOCS-5185&lt;/del&gt;&lt;/a&gt; forgot to append the before returning with acknowledgement clause&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/docs/commit/e2602245a3d447a633c0168541f3a1f6527ff852&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/docs/commit/e2602245a3d447a633c0168541f3a1f6527ff852&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="878627" author="xgen-internal-githook" created="Fri, 10 Apr 2015 20:05:50 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kay-kim&apos;, u&apos;name&apos;: u&apos;kay&apos;, u&apos;email&apos;: u&apos;kay.kim@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DOCS-5185&quot; title=&quot;MongoDB does not guarantee that rollback doesn&amp;#39;t happen&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DOCS-5185&quot;&gt;&lt;del&gt;DOCS-5185&lt;/del&gt;&lt;/a&gt; forgot to append the before returning with acknowledgement clause&lt;br/&gt;
Branch: v2.6&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/docs/commit/4df8683158342fc8cad95f844b0c5af3c78dfeff&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/docs/commit/4df8683158342fc8cad95f844b0c5af3c78dfeff&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="878626" author="xgen-internal-githook" created="Fri, 10 Apr 2015 20:05:49 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kay-kim&apos;, u&apos;name&apos;: u&apos;kay&apos;, u&apos;email&apos;: u&apos;kay.kim@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DOCS-5185&quot; title=&quot;MongoDB does not guarantee that rollback doesn&amp;#39;t happen&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DOCS-5185&quot;&gt;&lt;del&gt;DOCS-5185&lt;/del&gt;&lt;/a&gt; replica set rollback clarification&lt;br/&gt;
Branch: v2.6&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/docs/commit/ce51a55e8ec5c5e3b18823e10e9aae92fe9e91a4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/docs/commit/ce51a55e8ec5c5e3b18823e10e9aae92fe9e91a4&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="878613" author="xgen-internal-githook" created="Fri, 10 Apr 2015 19:55:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kay-kim&apos;, u&apos;name&apos;: u&apos;kay&apos;, u&apos;email&apos;: u&apos;kay.kim@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DOCS-5185&quot; title=&quot;MongoDB does not guarantee that rollback doesn&amp;#39;t happen&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DOCS-5185&quot;&gt;&lt;del&gt;DOCS-5185&lt;/del&gt;&lt;/a&gt; replica set rollback clarification&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/docs/commit/7903fd3f850a42636b3e9daa61f7182c02d1ac6b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/docs/commit/7903fd3f850a42636b3e9daa61f7182c02d1ac6b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="877648" author="mdcallag" created="Thu, 9 Apr 2015 21:58:01 +0000"  >&lt;p&gt;Can someone change &quot;happy&quot; to &quot;happen&quot; in the title?&lt;/p&gt;</comment>
                            <comment id="876540" author="mdcallag" created="Thu, 9 Apr 2015 00:31:31 +0000"  >&lt;p&gt;That would be much better. &lt;/p&gt;</comment>
                            <comment id="876537" author="asya" created="Thu, 9 Apr 2015 00:30:07 +0000"  >&lt;p&gt;Right, that should say instead:&lt;/p&gt;

&lt;p&gt;&quot;To prevent rollbacks of data that has been acknowledged to the client, use replica acknowledged write concern to guarantee that the write operations propagate to the members of a replica set before the acknowledgement is received.&quot;   (or something like that).&lt;/p&gt;</comment>
                            <comment id="876486" author="mdcallag" created="Wed, 8 Apr 2015 23:27:48 +0000"  >&lt;p&gt;Using the claim from the docs, this is not guaranteed. It is true that an ack&apos;d write won&apos;t be subject to rollback after the ack has been received. Prior to that lots of fun things can happen.&lt;/p&gt;

&lt;p&gt;&quot;To prevent rollbacks, use replica acknowledged write concern to guarantee that the write operations propagate to the members of a replica set.&quot;&lt;/p&gt;</comment>
                            <comment id="876482" author="mdcallag" created="Wed, 8 Apr 2015 23:20:56 +0000"  >&lt;p&gt;The behavior is that you can use a write concern so that an ack&apos;d write won&apos;t be open to rollback. But that isn&apos;t what has been claimed. This is async replication and changes visible to others will be subject to rollback. You need sync replication (or lossless semi-sync as done in MySQL) to avoid that risk.&lt;/p&gt;</comment>
                            <comment id="876478" author="asya" created="Wed, 8 Apr 2015 23:14:02 +0000"  >&lt;p&gt;Note that the docs don&apos;t say that it won&apos;t be visible till it&apos;s acknowledged - there is no &quot;read replica committed&quot; (yet).&lt;/p&gt;

&lt;p&gt;It&apos;s saying that if a write is acknowledged to the client then it won&apos;t be rolled back (and that&apos;s true unless there is a bug in the implementation).&lt;br/&gt;
Please note the linked discussion is based on older versions of MongoDB which did not use election times, etc. to resolve some conflict situations.&lt;/p&gt;</comment>
                            <comment id="876471" author="mdcallag" created="Wed, 8 Apr 2015 23:00:59 +0000"  >&lt;p&gt;This might be background reading - &lt;a href=&quot;http://www.tokutek.com/2014/07/introducing-ark-a-consensus-algorithm-for-tokumx-and-mongodb/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://www.tokutek.com/2014/07/introducing-ark-a-consensus-algorithm-for-tokumx-and-mongodb/&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>12.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10855" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Actual Time</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 8 Apr 2015 23:14:02 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        8 years, 43 weeks 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>jess.mokrzecki@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            8 years, 43 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>asya.kamsky@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>kay.kim@mongodb.com</customfieldvalue>
            <customfieldvalue>mdcallag</customfieldvalue>
            <customfieldvalue>shannon.bradshaw</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrqeuv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hs7x7b:</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="461">Docs Sprint 18 - 4/24 (461)</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_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hryw9b:</customfieldvalue>

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