<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:02:15 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-3160] replication initial sync should use the fast compact command code to build indexes</title>
                <link>https://jira.mongodb.org/browse/SERVER-3160</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The new compact command has been optimized to be very fast at building several indexes during the compaction of a collection.  Keys for all indexes are written to temporary files during a single scan of the collection data.&lt;/p&gt;

&lt;p&gt;The same technique could be applied to initial sync and would make it faster for big collections with several indexes.  See the compact code - given that is now done it should be fairly easy to plug in to initial sync (clonecollection).&lt;/p&gt;</description>
                <environment></environment>
        <key id="17611">SERVER-3160</key>
            <summary>replication initial sync should use the fast compact command code to build indexes</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="benjamin.becker">Ben Becker</assignee>
                                    <reporter username="dwight@mongodb.com">Dwight Merriman</reporter>
                        <labels>
                    </labels>
                <created>Fri, 27 May 2011 18:35:47 +0000</created>
                <updated>Tue, 12 Jul 2016 00:18:44 +0000</updated>
                            <resolved>Thu, 6 Dec 2012 22:40:58 +0000</resolved>
                                                    <fixVersion>2.3.2</fixVersion>
                                    <component>Replication</component>
                                        <votes>1</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="208711" author="auto" created="Fri, 7 Dec 2012 06:46:38 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-12-07T06:46:22Z&apos;, u&apos;email&apos;: u&apos;benjamin.becker@gmail.com&apos;, u&apos;name&apos;: u&apos;Ben Becker&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-3160&quot; title=&quot;replication initial sync should use the fast compact command code to build indexes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-3160&quot;&gt;&lt;del&gt;SERVER-3160&lt;/del&gt;&lt;/a&gt;: fix check for existing presorter&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/81f940e7d8b5429264136f77ee80ed4d3c8948fd&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/81f940e7d8b5429264136f77ee80ed4d3c8948fd&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="208444" author="auto" created="Thu, 6 Dec 2012 22:38:39 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-12-06T22:38:10Z&apos;, u&apos;email&apos;: u&apos;ben.becker@10gen.com&apos;, u&apos;name&apos;: u&apos;Ben Becker&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-3160&quot; title=&quot;replication initial sync should use the fast compact command code to build indexes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-3160&quot;&gt;&lt;del&gt;SERVER-3160&lt;/del&gt;&lt;/a&gt;: Sort index keys during clone&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5e5afe90d148fb93d4c0b05470681d57de5bc3e9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5e5afe90d148fb93d4c0b05470681d57de5bc3e9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="188367" author="milkie" created="Tue, 13 Nov 2012 22:01:13 +0000"  >&lt;p&gt;Yes, I say add it to Cloner::go().  The code correctness should be pretty solid, as it&apos;s been in compact() since version 2.0.&lt;/p&gt;</comment>
                            <comment id="188298" author="milkie" created="Tue, 13 Nov 2012 21:02:36 +0000"  >&lt;p&gt;Interesting note about the global precalced variable.. with DB level locking, compact command only takes a DB write lock now.  So is it possible for precalced to have collisions if two compacts are running at once?&lt;/p&gt;

&lt;p&gt;With cloner, we may have the same issue, since cloner is used by more things than just initial sync &amp;#8211; there are several user-facing commands that call into cloner.&lt;/p&gt;

&lt;p&gt;I think the actual way to fix this is to move the initial setup logic for indexes out of DataFileMgr::Insert() and into its own function that we can call, and pass precalced as a parameter (or via a state object).&lt;br/&gt;
However, for the interim, we may just need to use a mutex here to protect the global.&lt;/p&gt;</comment>
                            <comment id="96176" author="eliot" created="Wed, 7 Mar 2012 02:08:35 +0000"  >&lt;p&gt;It should also get get ops up to date so as to be as efficient as possible.&lt;br/&gt;
Also fixes &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-5040&quot; title=&quot;Cloner can fail to create unique indexes on initial sync&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-5040&quot;&gt;&lt;del&gt;SERVER-5040&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="31251">SERVER-5040</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="54971">SERVER-7527</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="15073">SERVER-2731</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="59500">SERVER-7946</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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 7 Mar 2012 02:08:35 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        11 years, 10 weeks, 5 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>
                            11 years, 10 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>auto</customfieldvalue>
            <customfieldvalue>benjamin.becker</customfieldvalue>
            <customfieldvalue>dwight@mongodb.com</customfieldvalue>
            <customfieldvalue>eliot</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrkibz:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5744</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_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|ht04dr:</customfieldvalue>

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