<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:43:10 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-17062] Make query execution robust to WriteConflictException</title>
                <link>https://jira.mongodb.org/browse/SERVER-17062</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;It should be possible to continue queries in the face of WriteConflictException (WT_ROLLBACK) by treating them like yields.&lt;/p&gt;</description>
                <environment></environment>
        <key id="180908">SERVER-17062</key>
            <summary>Make query execution robust to WriteConflictException</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="9">Done</resolution>
                                        <assignee username="mathias@mongodb.com">Mathias Stearn</assignee>
                                    <reporter username="schwerin@mongodb.com">Andy Schwerin</reporter>
                        <labels>
                            <label>WCE</label>
                    </labels>
                <created>Mon, 26 Jan 2015 22:25:19 +0000</created>
                <updated>Fri, 5 Feb 2016 14:29:17 +0000</updated>
                            <resolved>Wed, 18 Mar 2015 15:57:36 +0000</resolved>
                                                    <fixVersion>3.1.0</fixVersion>
                                    <component>Querying</component>
                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>13</watches>
                                                                                                                <comments>
                            <comment id="1068154" author="xgen-internal-githook" created="Thu, 22 Oct 2015 18:27:18 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;igorcanadi&apos;, u&apos;name&apos;: u&apos;Igor Canadi&apos;, u&apos;email&apos;: u&apos;icanadi@fb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-20650&quot; title=&quot;Backport MongoRocks changes to 3.0&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-20650&quot;&gt;&lt;del&gt;SERVER-20650&lt;/del&gt;&lt;/a&gt; backport recent changes from MongoRocks&lt;/p&gt;

&lt;p&gt;This patch includes the following changes:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Don&apos;t lazily initialize _writeBatch&lt;/li&gt;
	&lt;li&gt;Abandon snapshots in commitAndRestart()&lt;/li&gt;
	&lt;li&gt;Use only 33% of RAM for MongoRocks block cache&lt;/li&gt;
	&lt;li&gt;Decrease block cache shard count to 2^6 from 2^7&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-18844&quot; title=&quot;Reacquire the snapshot after commit/abort&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-18844&quot;&gt;&lt;del&gt;SERVER-18844&lt;/del&gt;&lt;/a&gt; Refresh iterators on commit()&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17062&quot; title=&quot;Make query execution robust to WriteConflictException&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17062&quot;&gt;&lt;del&gt;SERVER-17062&lt;/del&gt;&lt;/a&gt; Allow cursors over unique indexes with duplicates&lt;/li&gt;
	&lt;li&gt;Recompute dataSize and numRecords if numbers don&apos;t make sense&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Signed-off-by: Ramon Fernandez &amp;lt;ramon@mongodb.com&amp;gt;&lt;br/&gt;
Branch: v3.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2a4e6cd054ad8b1d3c54ca73fc6d852116eb89c5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2a4e6cd054ad8b1d3c54ca73fc6d852116eb89c5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1000917" author="igor" created="Mon, 10 Aug 2015 17:43:42 +0000"  >&lt;p&gt;&amp;gt; The situations where unique indexes can contain duplicate entries are transient and should never be observable by a cursor.&lt;/p&gt;

&lt;p&gt;Hey Mathias, I actually ported this simplification to v3.0 branch in MongoRocks. However, we&apos;re seeing the assertion trigger (i.e. we&apos;re getting &quot;Unique index cursor seeing multiple records for key&quot;) error message. Is this assumption also true in 3.0 branch or only in 3.1?&lt;/p&gt;</comment>
                            <comment id="830250" author="xgen-internal-githook" created="Tue, 17 Feb 2015 02:20:25 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;dstorch&apos;, u&apos;name&apos;: u&apos;David Storch&apos;, u&apos;email&apos;: u&apos;david.storch@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17062&quot; title=&quot;Make query execution robust to WriteConflictException&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17062&quot;&gt;&lt;del&gt;SERVER-17062&lt;/del&gt;&lt;/a&gt; rename NEED_FETCH to NEED_YIELD&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2a4111960fee25453ed0974ee9eae95ec25bd556&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2a4111960fee25453ed0974ee9eae95ec25bd556&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="829212" author="xgen-internal-githook" created="Fri, 13 Feb 2015 20:35:28 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;RedBeard0531&apos;, u&apos;name&apos;: u&apos;Mathias Stearn&apos;, u&apos;email&apos;: u&apos;mathias@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17062&quot; title=&quot;Make query execution robust to WriteConflictException&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17062&quot;&gt;&lt;del&gt;SERVER-17062&lt;/del&gt;&lt;/a&gt; Make query execution handle WriteConflictExceptions where possible&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5ffcf2f281d58aac6c27cbbf49407f18cb86eaf0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5ffcf2f281d58aac6c27cbbf49407f18cb86eaf0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="829211" author="xgen-internal-githook" created="Fri, 13 Feb 2015 20:35:27 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;RedBeard0531&apos;, u&apos;name&apos;: u&apos;Mathias Stearn&apos;, u&apos;email&apos;: u&apos;mathias@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17062&quot; title=&quot;Make query execution robust to WriteConflictException&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17062&quot;&gt;&lt;del&gt;SERVER-17062&lt;/del&gt;&lt;/a&gt; Make WT index cursors tolerant of WCE&lt;/p&gt;

&lt;p&gt;The cursor now retains it&apos;s original position if a reposition method fails.&lt;br/&gt;
This required abandoning the lazy loading of keys and values since we always&lt;br/&gt;
need to know where the cursor is positioned.&lt;/p&gt;

&lt;p&gt;Additionally, to simplify the code, cursors over unique indexes containing&lt;br/&gt;
duplicate keys are now banned. The situations where unique indexes can&lt;br/&gt;
contain duplicate entries are transient and should never be observable by a&lt;br/&gt;
cursor. If a cursor ever encountered a duplicate key in a unique index, it&lt;br/&gt;
indicates corruption.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3d5aee54e4f45cc516d64bfef0d682e93e264258&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3d5aee54e4f45cc516d64bfef0d682e93e264258&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="829209" author="xgen-internal-githook" created="Fri, 13 Feb 2015 20:35:24 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;RedBeard0531&apos;, u&apos;name&apos;: u&apos;Mathias Stearn&apos;, u&apos;email&apos;: u&apos;mathias@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17062&quot; title=&quot;Make query execution robust to WriteConflictException&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17062&quot;&gt;&lt;del&gt;SERVER-17062&lt;/del&gt;&lt;/a&gt; Move getKeys() up to IndexAccessMethod and make const&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4577311195bfab391d05c7e1862e0653771295e5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4577311195bfab391d05c7e1862e0653771295e5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="829208" author="xgen-internal-githook" created="Fri, 13 Feb 2015 20:35:23 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;RedBeard0531&apos;, u&apos;name&apos;: u&apos;Mathias Stearn&apos;, u&apos;email&apos;: u&apos;mathias@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17062&quot; title=&quot;Make query execution robust to WriteConflictException&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17062&quot;&gt;&lt;del&gt;SERVER-17062&lt;/del&gt;&lt;/a&gt; WiredTigerRecordStore::Iterator WriteConflict work&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2d359dfdd24629681742611f6120ffb504ac718f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2d359dfdd24629681742611f6120ffb504ac718f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="829203" author="xgen-internal-githook" created="Fri, 13 Feb 2015 20:35:18 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;RedBeard0531&apos;, u&apos;name&apos;: u&apos;Mathias Stearn&apos;, u&apos;email&apos;: u&apos;mathias@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-17062&quot; title=&quot;Make query execution robust to WriteConflictException&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-17062&quot;&gt;&lt;del&gt;SERVER-17062&lt;/del&gt;&lt;/a&gt; AuthIndex should use createIndexOnEmptyCollection&lt;/p&gt;

&lt;p&gt;It was using ensureIndex which is illegal inside of a WUOW.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/75f2927bf28b64ad2221192c6efc724af63d17cd&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/75f2927bf28b64ad2221192c6efc724af63d17cd&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="181694">SERVER-17132</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="181553">SERVER-17119</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_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>Tue, 3 Feb 2015 19:09:34 +0000</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            8 years, 16 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>schwerin@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>igor</customfieldvalue>
            <customfieldvalue>mathias@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrldm7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hs5sin:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>158903</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_11861" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>User Summary</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11856"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hsgaan:</customfieldvalue>

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