<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:37:45 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-78213] Efficient implementation of reference tracking</title>
                <link>https://jira.mongodb.org/browse/SERVER-78213</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Reference tracking is one of the major reasons for slower performance of Bonsai vs classic. There are several complimentary ways to approach this problem:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Reduce the number of call to functions that use reference tracking (for instance to constant folding).&lt;/li&gt;
	&lt;li&gt;Reduce the number of calls to reference tracking.&lt;/li&gt;
	&lt;li&gt;Make reference tracking faster by itself.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This task is about the latter approach. The main reason why reference tracking is slow is the use of hash-maps and hash-sets, therefore this task is about analysis of the existing code, and replacing hash-based data structures with a custom-designed and more efficient data structures. Since the most efficient way to operate on sets of objects known to us is via bitsets, this is what we will focus on.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2371833">SERVER-78213</key>
            <summary>Efficient implementation of reference tracking</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="timour.katchaounov@mongodb.com">Timour Katchaounov</assignee>
                                    <reporter username="timour.katchaounov@mongodb.com">Timour Katchaounov</reporter>
                        <labels>
                            <label>M1</label>
                    </labels>
                <created>Mon, 19 Jun 2023 14:07:31 +0000</created>
                <updated>Wed, 13 Sep 2023 06:02:20 +0000</updated>
                            <resolved>Wed, 13 Sep 2023 06:02:20 +0000</resolved>
                                                                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="5700001" author="JIRAUSER1258247" created="Wed, 13 Sep 2023 06:02:20 +0000"  >&lt;p&gt;This ticket will be implemented by several individual tickets. Currently these are &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-80953&quot; title=&quot;Efficient ref tracking - replace useMap with a global map&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-80953&quot;&gt;&lt;del&gt;SERVER-80953&lt;/del&gt;&lt;/a&gt;, and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-80954&quot; title=&quot;Efficient ref tracking - replace nodeDefs with global map&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-80954&quot;&gt;&lt;del&gt;SERVER-80954&lt;/del&gt;&lt;/a&gt;, but there may be more.&lt;/p&gt;</comment>
                            <comment id="5610237" author="JIRAUSER1258247" created="Thu, 3 Aug 2023 13:55:38 +0000"  >&lt;p&gt;There is a branch with current work on this improvement: &lt;a href=&quot;https://github.com/10gen/mongo/tree/s-78213-efficient-ref-track&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo/tree/s-78213-efficient-ref-track&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;As of August 3, 2023:&lt;/li&gt;
	&lt;li&gt;Commit 2a512a55478e442ddd425169b9e6802847a66939 contains a complete set of changes that replace &apos;useMap&apos; with a better structure, and result in ~25% improvement on a relatively complex query.&lt;/li&gt;
	&lt;li&gt;Subsequent changes are unfinished work in progress that replace &apos;defs&apos; and &apos;nodeDefs&apos; with a vector which will be later used to generate the final map.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                    </comments>
                    <attachments>
                            <attachment id="463410" name="matt-useMap-as-vector.diff" size="2564" author="timour.katchaounov@mongodb.com" created="Wed, 19 Jul 2023 12:47:19 +0000"/>
                            <attachment id="462701" name="s-78213-efficient-ref-track-useMap-as-bitset.v1.diff" size="22739" author="timour.katchaounov@mongodb.com" created="Mon, 17 Jul 2023 09:17:34 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 20 Jun 2023 08:03:34 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        21 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-3223</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>timour.katchaounov@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            21 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>timour.katchaounov@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2ehlb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1wokg:</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="7247">QO 2023-09-04</customfieldvalue>
    <customfieldvalue id="7250">QO 2023-09-18</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|i2e3qn:</customfieldvalue>

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