<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 02:59:38 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-2328] right now btree gets split 10/90 on right of rightmost bucket, 50/50 everywhere else. Should also do 90/10 on left of leftmost</title>
                <link>https://jira.mongodb.org/browse/SERVER-2328</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;some people create their index thinking about the usual query more than inserts.&lt;br/&gt;
For example for gridfs, people usually will query db.files.find(&lt;/p&gt;
{filename: &quot;file&quot;}
&lt;p&gt;).sort(&lt;/p&gt;
{uploadDate: -1}
&lt;p&gt;) to have most recent first.&lt;br/&gt;
And so index may get created like &lt;/p&gt;
{filename: 1, uploadDate: -1}
&lt;p&gt; (which is what Python driver does).&lt;br/&gt;
But the actual inserts go with increasing date, so the btree grows by splitting 50/50 (left side).&lt;br/&gt;
The index ends up being twice as large as if the index was created in reverse order.&lt;/p&gt;

&lt;p&gt;Inserted 100000 increasing numbers into ascending index:&lt;br/&gt;
&amp;gt; db.time.$time_1.stats()&lt;br/&gt;
{&lt;br/&gt;
        &quot;ns&quot; : &quot;mydb.time.$time_1&quot;,&lt;br/&gt;
        &quot;sharded&quot; : false,&lt;br/&gt;
        &quot;primary&quot; : &quot;shard0000&quot;,&lt;br/&gt;
        &quot;ns&quot; : &quot;mydb.time.$time_1&quot;,&lt;br/&gt;
        &quot;count&quot; : 452,&lt;br/&gt;
        &quot;size&quot; : 3702784,&lt;br/&gt;
        &quot;avgObjSize&quot; : 8192,&lt;br/&gt;
        &quot;storageSize&quot; : 13191168,&lt;br/&gt;
        &quot;numExtents&quot; : 4,&lt;br/&gt;
        &quot;nindexes&quot; : 0,&lt;br/&gt;
        &quot;lastExtentSize&quot; : 10438656,&lt;br/&gt;
        &quot;paddingFactor&quot; : 1,&lt;br/&gt;
        &quot;flags&quot; : 0,&lt;br/&gt;
        &quot;totalIndexSize&quot; : 0,&lt;br/&gt;
        &quot;indexSizes&quot; : {&lt;/p&gt;

&lt;p&gt;        },&lt;br/&gt;
        &quot;ok&quot; : 1&lt;br/&gt;
}&lt;/p&gt;

&lt;p&gt;Inserted 100000 decreasing numbers into ascending index:&lt;br/&gt;
&amp;gt; db.time.$time_1.stats()&lt;br/&gt;
{&lt;br/&gt;
        &quot;ns&quot; : &quot;test.time.$time_1&quot;,&lt;br/&gt;
        &quot;sharded&quot; : false,&lt;br/&gt;
        &quot;primary&quot; : &quot;shard0001&quot;,&lt;br/&gt;
        &quot;ns&quot; : &quot;test.time.$time_1&quot;,&lt;br/&gt;
        &quot;count&quot; : 813,&lt;br/&gt;
        &quot;size&quot; : 6660096,&lt;br/&gt;
        &quot;avgObjSize&quot; : 8192,&lt;br/&gt;
        &quot;storageSize&quot; : 11141120,&lt;br/&gt;
        &quot;numExtents&quot; : 4,&lt;br/&gt;
        &quot;nindexes&quot; : 0,&lt;br/&gt;
        &quot;lastExtentSize&quot; : 8388608,&lt;br/&gt;
        &quot;paddingFactor&quot; : 1,&lt;br/&gt;
        &quot;flags&quot; : 0,&lt;br/&gt;
        &quot;totalIndexSize&quot; : 0,&lt;br/&gt;
        &quot;indexSizes&quot; : {&lt;/p&gt;

&lt;p&gt;        },&lt;br/&gt;
        &quot;ok&quot; : 1&lt;br/&gt;
}&lt;/p&gt;

&lt;p&gt;we should split 90/10 on left of leftmost so that the order of index really doesnt matter.&lt;/p&gt;</description>
                <environment></environment>
        <key id="14150">SERVER-2328</key>
            <summary>right now btree gets split 10/90 on right of rightmost bucket, 50/50 everywhere else. Should also do 90/10 on left of leftmost</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="backlog-server-execution">Backlog - Storage Execution Team</assignee>
                                    <reporter username="antoine">Antoine Girbal</reporter>
                        <labels>
                    </labels>
                <created>Tue, 4 Jan 2011 19:14:50 +0000</created>
                <updated>Tue, 6 Dec 2022 05:46:21 +0000</updated>
                            <resolved>Fri, 14 Sep 2018 20:23:57 +0000</resolved>
                                                                    <component>Index Maintenance</component>
                    <component>MMAPv1</component>
                                        <votes>1</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="22039" author="aaron" created="Tue, 4 Jan 2011 19:29:43 +0000"  >&lt;p&gt;Right now we are actually doing a 90/10 split on the rightmost key of any bucket, not just the rightmost bucket.  This was the requested initial implementation.  We should probably do it just on the right bucket.&lt;/p&gt;

&lt;p&gt;Mathias had some thoughts on caching the leftmost and rightmost buckets - these cached values could be used to determine if we are on left or rightmost bucket, or we could also determine these cases based on tree traversal.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25136"><![CDATA[Storage Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 4 Jan 2011 19:29:43 +0000</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            13 years, 7 weeks, 1 day 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>aaron</customfieldvalue>
            <customfieldvalue>antoine</customfieldvalue>
            <customfieldvalue>backlog-server-execution</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrp8xb:</customfieldvalue>

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

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

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