<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:23:35 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-30371] Separate renameCollection across DB commands into individual oplog entries</title>
                <link>https://jira.mongodb.org/browse/SERVER-30371</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently, when we rename across databases, a problem arises with rollback when we are trying to refetch a document in a collection that has been renamed across databases. Even if we are querying by UUID&apos;s, because the collection has been copied into another database, this action makes the UUID of the collection to change. Thus, although the document does exist, just under a different namespace and UUID, we will not be able to refetch it during rollback. This leads to data corruption between the sync source and rolling back node. &lt;/p&gt;

&lt;p&gt;A fix for this would be to make the oplog entry for renameCollection a set of create, insert and delete oplog entries instead of a singular oplog entry. This means that even if during rollback, we cannot refetch the document by UUID, when the node has transitioned out of roll back state and into secondary state, we can apply the insertions and maintain consistency.&lt;/p&gt;</description>
                <environment></environment>
        <key id="409115">SERVER-30371</key>
            <summary>Separate renameCollection across DB commands into individual oplog entries</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="benety.goh@mongodb.com">Benety Goh</assignee>
                                    <reporter username="allison.chang">Allison Chang</reporter>
                        <labels>
                    </labels>
                <created>Thu, 27 Jul 2017 16:01:54 +0000</created>
                <updated>Mon, 30 Oct 2023 23:14:50 +0000</updated>
                            <resolved>Wed, 6 Sep 2017 19:55:05 +0000</resolved>
                                    <version>Backlog</version>
                                    <fixVersion>3.5.13</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="1666076" author="benety.goh" created="Wed, 6 Sep 2017 19:53:59 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; remove dropSource from renameCollection oplog entry format&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c5b7cbe971635a5fb71cd3d628189ee328284df3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c5b7cbe971635a5fb71cd3d628189ee328284df3&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1665771" author="xgen-internal-githook" created="Wed, 6 Sep 2017 16:42:36 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; apply_ops_idempotency.js waits for drop-pending collections in all test databases to be removed&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e3f3b1357bb2838140f6e9a42ff704237d68afbe&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e3f3b1357bb2838140f6e9a42ff704237d68afbe&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1665652" author="xgen-internal-githook" created="Wed, 6 Sep 2017 16:00:12 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; repl9.js waits for source collection to be dropped&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d9058667133b60f21bbd887ca03a87948b070656&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d9058667133b60f21bbd887ca03a87948b070656&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1665426" author="xgen-internal-githook" created="Wed, 6 Sep 2017 14:16:50 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; add namespace to update error message&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/49621e733bfbdd42a57ae5b63bf018dcd8bd07a4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/49621e733bfbdd42a57ae5b63bf018dcd8bd07a4&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1665095" author="xgen-internal-githook" created="Wed, 6 Sep 2017 01:49:55 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; downgrade global write lock when renaming across databases&lt;/p&gt;

&lt;p&gt;This is done after creating the temporary collection and indexes and before&lt;br/&gt;
copying the documents from the source collection.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/fa2f40a44ea649b801bfa3ba2bbeb0d36020629c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/fa2f40a44ea649b801bfa3ba2bbeb0d36020629c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1665060" author="xgen-internal-githook" created="Wed, 6 Sep 2017 00:28:56 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; renaming collection across databases logs individual oplog entries&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f85b99b90e754efa8d806d6124c902447ddc7481&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f85b99b90e754efa8d806d6124c902447ddc7481&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1665058" author="xgen-internal-githook" created="Wed, 6 Sep 2017 00:27:04 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; added js tests for renaming a collection across databases&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/27b73dd0616a7e6c4956989f753b3ade4291cdd6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/27b73dd0616a7e6c4956989f753b3ade4291cdd6&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1664898" author="xgen-internal-githook" created="Tue, 5 Sep 2017 20:24:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; renaming collection across databases logs individual oplog entries&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 42bfda31eae322ac190e0c8cd831ca73f6e78f18.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5b0bf41d2305f684386332ee96d6a96a77f70e7f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5b0bf41d2305f684386332ee96d6a96a77f70e7f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1664798" author="xgen-internal-githook" created="Tue, 5 Sep 2017 19:28:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; renaming collection across databases logs individual oplog entries&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/42bfda31eae322ac190e0c8cd831ca73f6e78f18&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/42bfda31eae322ac190e0c8cd831ca73f6e78f18&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1664713" author="xgen-internal-githook" created="Tue, 5 Sep 2017 18:28:13 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; add tests for downgrading global lock from MODE_X to MODE_IX&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4db291425761c1b557f10b643242ed08eb542df7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4db291425761c1b557f10b643242ed08eb542df7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1662041" author="xgen-internal-githook" created="Thu, 31 Aug 2017 18:46:23 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; renameCollection() across databases returns InvalidLength if source collection&apos;s indexes are too long for temporary collection&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2d568c4ddbe9065d92a5f0443d0c65c8f3a62a87&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2d568c4ddbe9065d92a5f0443d0c65c8f3a62a87&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1660730" author="xgen-internal-githook" created="Wed, 30 Aug 2017 15:40:16 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;username&apos;: &apos;benety&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; rename across database does not make target collection temporary if source collection was not temporary&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/88ef24561ef69ac7756b80256a86515180b830a3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/88ef24561ef69ac7756b80256a86515180b830a3&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1660127" author="xgen-internal-githook" created="Tue, 29 Aug 2017 23:35:13 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; disable UUID on temporary collection when renaming across databases if source collection does not contain a UUID&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d810265d7b99e2137ab6c50c38a43d8dc3c6d0a4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d810265d7b99e2137ab6c50c38a43d8dc3c6d0a4&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1658861" author="xgen-internal-githook" created="Mon, 28 Aug 2017 19:10:11 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;benety&apos;, &apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30371&quot; title=&quot;Separate renameCollection across DB commands into individual oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30371&quot;&gt;&lt;del&gt;SERVER-30371&lt;/del&gt;&lt;/a&gt; UUIDCatalog::onCreateCollection() always replaces existing entry for uuid&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c7f224509f5e8f5dc5d138f02c507bd84a52a274&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c7f224509f5e8f5dc5d138f02c507bd84a52a274&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1633938" author="spencer" created="Thu, 27 Jul 2017 21:05:03 +0000"  >&lt;p&gt;Spoke with &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; just now and we agreed that #2 doesn&apos;t actually work, since the sync source can do a rename across databases &lt;b&gt;after&lt;/b&gt; the sync target already found the common point, and the sync target would have no way to detect or handle that.&lt;/p&gt;

&lt;p&gt;For #3 to work we&apos;d have to record persistently somewhere that we in rollback and encountered a rename, so that if we crashed we&apos;d know during startup recovery that we need to refetch any collections that we see a cross-db renameCollection entry for.  This makes startup recovery rely even more on having a sync source available, something we&apos;ve been trying to do less.&lt;/p&gt;

&lt;p&gt;After speaking with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=redbeard0531&quot; class=&quot;user-hover&quot; rel=&quot;redbeard0531&quot;&gt;redbeard0531&lt;/a&gt; we came up with another approach, described in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30383&quot; title=&quot;Preserve collection UUID in renameCollection across databases&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30383&quot;&gt;&lt;del&gt;SERVER-30383&lt;/del&gt;&lt;/a&gt;, which I think is the cleanest solution.  If that&apos;s not viable, then I think we need to go with the first solution of expanding cross-db renameCollections into its component writes and replicate it that way.&lt;/p&gt;</comment>
                            <comment id="1633701" author="geert.bosch" created="Thu, 27 Jul 2017 17:55:21 +0000"  >&lt;p&gt;To clarify, the situation above will happen for nodes in the minority that need to rollback if the majority performed a rename across databases since the common point in history. &lt;/p&gt;

&lt;p&gt;I see three solutions:&lt;/p&gt;

&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Solution&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt; Pros&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt; Cons &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Expand rename across databases &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Simplest &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Causes massive oplog traffic &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Hard to revert after when no longer needed &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Find set of UUID aliases from oplog &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Avoids oplog/network traffic in steady state &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; More complex rollback &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Preserves behavior / atomicity &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Refetch for rename during recovery syncApply &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Avoids oplog/network traffic in steady state &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Needs renamed coll refetch during recovery &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Preserves behavior / atomicity &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;  Slower recovery &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;


&lt;p&gt;For the second solution, we&apos;d track what UUIDs a collection that was renamed across DBs has had when we scan the oplog of our sync source for the common point, so we can rollback updates to that collection by fetching the document from any of these UUIDs&lt;/p&gt;

&lt;p&gt;For the third solution, we ignore updates to collections that were renamed across databases just like we drop updates to any other collection that was dropped by the majority. Howvever, now during recovery oplog application (non-steady state), we need to refetch collections that were renamed across databases, as these will otherwise not restore to a consistent state. This refetch will push the minValid time forward more making recovery slower.&lt;/p&gt;
</comment>
                            <comment id="1633638" author="schwerin" created="Thu, 27 Jul 2017 17:11:51 +0000"  >&lt;p&gt;This is only for renames across databases?&lt;/p&gt;</comment>
                            <comment id="1633532" author="allison.chang" created="Thu, 27 Jul 2017 16:05:00 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=spencer&quot; class=&quot;user-hover&quot; rel=&quot;spencer&quot;&gt;spencer&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=schwerin&quot; class=&quot;user-hover&quot; rel=&quot;schwerin&quot;&gt;schwerin&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&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; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=benety.goh&quot; class=&quot;user-hover&quot; rel=&quot;benety.goh&quot;&gt;benety.goh&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="421983">SERVER-30900</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="422345">SERVER-30908</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="419512">SERVER-30798</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="409324">SERVER-30381</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="409328">SERVER-30382</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="409358">SERVER-30383</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="697756">SERVER-39587</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="364161">SERVER-28285</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="423691">SERVER-30948</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="405700">SERVER-30212</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>18.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.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>Thu, 27 Jul 2017 17:11:51 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 23 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-30900'>SERVER-30900</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-30908'>SERVER-30908</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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-843</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>
                            6 years, 23 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>allison.chang</customfieldvalue>
            <customfieldvalue>schwerin@mongodb.com</customfieldvalue>
            <customfieldvalue>benety.goh@mongodb.com</customfieldvalue>
            <customfieldvalue>geert.bosch@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>spencer@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htbrv3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr9qkf:</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="1769">Repl 2017-08-21</customfieldvalue>
    <customfieldvalue id="1770">Repl 2017-09-11</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|htbdxr:</customfieldvalue>

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