<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:26:21 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-51762] Delete code for old unique index format</title>
                <link>https://jira.mongodb.org/browse/SERVER-51762</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;All non-_id unique indexes since 4.4 should be upgraded to the new format versions 11 or 12. We already &lt;a href=&quot;https://github.com/mongodb/mongo/blob/63c4374e19a21d0ff9cf0ab926b7b99474f194cf/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp#L550-L560&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;fatally assert if that is not the case&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Replace current checks for &lt;a href=&quot;https://github.com/mongodb/mongo/blob/63c4374e19a21d0ff9cf0ab926b7b99474f194cf/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp#L1411&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;isTimestampSafeUniqueIdx&lt;/a&gt; with appropriate invariants on the format version&lt;/li&gt;
	&lt;li&gt;Delete all functions with the name &quot;timestampUnsafe&quot;&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="1519682">SERVER-51762</key>
            <summary>Delete code for old unique index format</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="13201">Fixed</resolution>
                                        <assignee username="louis.williams@mongodb.com">Louis Williams</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                    </labels>
                <created>Tue, 20 Oct 2020 14:49:23 +0000</created>
                <updated>Mon, 22 Jan 2024 16:37:18 +0000</updated>
                            <resolved>Fri, 15 Jan 2021 18:42:29 +0000</resolved>
                                                    <fixVersion>4.9.0</fixVersion>
                                                        <votes>1</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="3572400" author="xgen-internal-githook" created="Tue, 19 Jan 2021 21:46:04 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;, &apos;username&apos;: &apos;louiswilliams&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-51762&quot; title=&quot;Delete code for old unique index format&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-51762&quot;&gt;&lt;del&gt;SERVER-51762&lt;/del&gt;&lt;/a&gt; Fix index building for ephemeralForTest&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ab1ebf2353773101628de93855aa4cad3847c200&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ab1ebf2353773101628de93855aa4cad3847c200&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3567912" author="xgen-internal-githook" created="Fri, 15 Jan 2021 18:30:43 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;, &apos;username&apos;: &apos;louiswilliams&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-51762&quot; title=&quot;Delete code for old unique index format&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-51762&quot;&gt;&lt;del&gt;SERVER-51762&lt;/del&gt;&lt;/a&gt; Delete code for old unique index format&lt;/p&gt;

&lt;p&gt;This refactor makes the following improvements:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Deletes dead code that allows multiple RecordIds to coexist for the old unique&lt;br/&gt;
  index format&lt;/li&gt;
	&lt;li&gt;Deletes the obselete &quot;trigger write conflict&quot; code that applied to&lt;br/&gt;
  background indexes and has been superseded by hybrid indexes&lt;/li&gt;
	&lt;li&gt;Factors out three distinct implementations of indexes for WiredTiger:&lt;br/&gt;
  WiredTigerIndexStandard (non-unique indexes), WiredTigerIdIndex (_id&lt;br/&gt;
  index), and WiredTigerIndexUnique (non-_id unique indexes)&lt;/li&gt;
	&lt;li&gt;API modernization for the SortedDataInterface::BulkBuilder&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e077301e21429fb9cd6f179fb0552336e39183bd&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e077301e21429fb9cd6f179fb0552336e39183bd&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="3455072" author="louis.williams" created="Tue, 20 Oct 2020 19:44:01 +0000"  >&lt;p&gt;Code I think we can delete: In the function _insertTimestampUnsafe, for example, we can remove all of the code that handles WT_DUPLICATE_KEY errors &lt;a href=&quot;https://github.com/mongodb/mongo/blob/77963415a45ac22d3f460c2c4ed8d826c618d719/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp#L1537-L1586&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;highlighted here&lt;/a&gt;. Only _id indexes take this path, and I don&apos;t believe it&apos;s possible for _id indexes to temporarily have duplicate keys.&lt;/p&gt;

&lt;p&gt;Code we can&apos;t delete:  In _insertTimestampSafe, we can&apos;t remove any of the code that lazily upgrades the unique key format &lt;a href=&quot;https://github.com/mongodb/mongo/blob/77963415a45ac22d3f460c2c4ed8d826c618d719/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp#L1599-L1643&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;highlighted here&lt;/a&gt;. As you mentioned, this is because the new format (i.e. &quot;timestamp safe&quot;) has to know how to read the old format.&lt;/p&gt;</comment>
                            <comment id="3454887" author="daniel.gottlieb@10gen.com" created="Tue, 20 Oct 2020 18:30:46 +0000"  >&lt;p&gt;Can you link to some of the old code that anticipates multiple record ids? Additional context for this ticket would be useful. It&apos;s my understanding that the new unique index format is a &quot;superset&quot; of the old format &amp;#8211; it understands all of the old states an index could be in, but only writes out entries in the new format. And I would suspect we&apos;ve already deleted the code that could write out the old-style entries when the FCV value gating the feature was deleted.&lt;/p&gt;</comment>
                            <comment id="3454123" author="louis.williams" created="Tue, 20 Oct 2020 15:12:21 +0000"  >&lt;p&gt;I actually don&apos;t think my assumption here is correct. _id indexes still take the &quot;timestampUnsafe&quot; code paths. That said, I believe we can still delete some of the code that anticipates there being multiple RecordIDs on the same key, since this should be impossible for the _id index.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2310897">SERVER-75922</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2552896">SERVER-85536</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2310897">SERVER-75922</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>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.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, 20 Oct 2020 18:30:46 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 3 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1869</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>benety.goh@mongodb.com</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</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|hydkvz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hy8bfb:</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="4366">Execution Team 2021-01-25</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|hyd75b:</customfieldvalue>

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