<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:59:13 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-41977] Index lookups may conflict with prepared transactions</title>
                <link>https://jira.mongodb.org/browse/SERVER-41977</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The way we query indexes internally is incompatible with prepared transactions.&lt;/p&gt;

&lt;p&gt;According to &lt;tt&gt;&lt;a href=&quot;http://source.wiredtiger.com/develop/struct_w_t___c_u_r_s_o_r.html#a8068ddce20d0775f26f6dac6e5eb209c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;WT_CURSOR::search_near&lt;/a&gt;&lt;/tt&gt;, it will return &quot;the record matching the key if it exists, or an adjacent record.&quot;&lt;/p&gt;

&lt;p&gt;On an index, given the keys &quot;A1&quot; and &quot;B2&quot;, and a query for &quot;B&quot;, it is completely within definition for &lt;tt&gt;search_near&lt;/tt&gt; to return &quot;A1&quot; instead of &quot;B2&quot;. In this example, the indexed value is &quot;B&quot; and the RecordId is 2, which we concatenate to form the key we insert into the WiredTiger table, &quot;B2&quot;. We then are only able to query for &quot;B&quot;, which is not the complete key.&lt;/p&gt;

&lt;p&gt;That means if there is a prepared update on &quot;A1&quot;, an update or delete on &quot;B&quot; (which first requires a lookup) may hit a prepare conflict, even though &quot;B2&quot; exists and is a closer match.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;This is a concern on secondaries and initial-syncing nodes, because they may encounter prepare conflicts that did not occur on the primary.&lt;/b&gt; We should consider partially-reverting&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40177&quot; title=&quot;Enforce prepare conflicts on secondaries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40177&quot;&gt;&lt;del&gt;SERVER-40177&lt;/del&gt;&lt;/a&gt; to ignore prepare conflicts.&lt;/p&gt;</description>
                <environment></environment>
        <key id="823502">SERVER-41977</key>
            <summary>Index lookups may conflict with prepared transactions</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="louis.williams@mongodb.com">Louis Williams</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                            <label>isfz</label>
                    </labels>
                <created>Thu, 27 Jun 2019 19:02:11 +0000</created>
                <updated>Wed, 18 Oct 2023 21:15:27 +0000</updated>
                            <resolved>Thu, 12 Aug 2021 19:57:40 +0000</resolved>
                                                                                        <votes>0</votes>
                                    <watches>17</watches>
                                                                                                                <comments>
                            <comment id="3998454" author="louis.williams" created="Thu, 12 Aug 2021 19:57:40 +0000"  >&lt;p&gt;We have decided that we will not fix this problem. Prepare conflicts are meant to resolve as quickly as possible, so any visible stalls caused by this behavior should not last for long periods of time.&lt;/p&gt;</comment>
                            <comment id="3712887" author="louis.williams" created="Mon, 12 Apr 2021 13:21:07 +0000"  >&lt;p&gt;In &lt;a href=&quot;https://jira.mongodb.org/browse/WT-7264&quot; title=&quot;Creating a new configuration for search near that allows it to exit quickly when searching for prefixes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-7264&quot;&gt;&lt;del&gt;WT-7264&lt;/del&gt;&lt;/a&gt; there is a proposed change to search_near that adds a &quot;prefix_search=true&quot; config option. This will only scan and returns keys with the same prefix as the search key. This may prevent &quot;landing&quot; on unrelated keys involved in prepared transactions. I believe this may allow us to solve both this problem and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40167&quot; title=&quot;Index key removal should not encounter prepare conflicts on unrelated keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40167&quot;&gt;&lt;del&gt;SERVER-40167&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="2306200" author="alexander.gorrod" created="Mon, 1 Jul 2019 05:09:18 +0000"  >&lt;p&gt;Thanks for the update &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;&lt;/p&gt;</comment>
                            <comment id="2304922" author="louis.williams" created="Fri, 28 Jun 2019 16:48:43 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=alexander.gorrod&quot; class=&quot;user-hover&quot; rel=&quot;alexander.gorrod&quot;&gt;alexander.gorrod&lt;/a&gt; Yes, I think that will still be a problem with non-unique indexes, so I don&apos;t think an API change is required at the moment.&#160;For the time being, we&apos;ll keep this ticket open to track the problem, but the present work will be &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41988&quot; title=&quot;Ignore prepare conflicts during secondary batch application and initial sync&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41988&quot;&gt;&lt;del&gt;SERVER-41988&lt;/del&gt;&lt;/a&gt; to ignore prepare conflicts on secondaries and initial syncing nodes.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="2303720" author="alexander.gorrod" created="Fri, 28 Jun 2019 06:08:47 +0000"  >&lt;p&gt;I thought there was an issue with search_prefix in a non-unique index i.e: There could be two &quot;B&quot; entries, and the one you aren&apos;t looking for could be prepared. I&apos;ll stand by for an answer, but there is significant work involved in WiredTiger in either this solution or the other one we talked about which was allowing for a key to be retrieved after a prepare conflict, and allowing for controlling cursor traversal behavior around prepare conflicts.&lt;/p&gt;</comment>
                            <comment id="2301232" author="louis.williams" created="Thu, 27 Jun 2019 19:15:52 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=alexander.gorrod&quot; class=&quot;user-hover&quot; rel=&quot;alexander.gorrod&quot;&gt;alexander.gorrod&lt;/a&gt;, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie&quot; class=&quot;user-hover&quot; rel=&quot;milkie&quot;&gt;milkie&lt;/a&gt;, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=geert.bosch&quot; class=&quot;user-hover&quot; rel=&quot;geert.bosch&quot;&gt;geert.bosch&lt;/a&gt;&#160;should we reconsider the idea of having a &quot;search_prefix&quot; functionality?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="717511">SERVER-40167</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="824787">SERVER-41988</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>6.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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 28 Jun 2019 06:08:47 +0000</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years, 25 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>alexander.gorrod@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|hv8olb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr2wtj:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="4552">Execution Team 2021-02-08</customfieldvalue>
    <customfieldvalue id="4553">Execution Team 2021-02-22</customfieldvalue>
    <customfieldvalue id="4568">Execution Team 2021-03-08</customfieldvalue>
    <customfieldvalue id="5117">Execution Team 2021-08-23</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|hv8aun:</customfieldvalue>

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