<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 09:04: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>[JAVA-5307] Address low hanging fruit in performance benchmarks</title>
                <link>https://jira.mongodb.org/browse/JAVA-5307</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;We should take a close look at the driver&apos;s performance benchmark results and look for opportunities to improve.  As an example, some of the things observed while running the large doc bulk insert benchmark:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Use of java.util.Stack in BsonWriter implementations.  All the methods of this class are synchronized, which is unnecessary in non-thread safe classes.  Could use ArrayDeque instead.&lt;/li&gt;
	&lt;li&gt;Lots of calls to &lt;tt&gt;CodecRegistry#get&lt;/tt&gt; in &lt;tt&gt;DocumentCodec#writeValue&lt;/tt&gt; and {BsonDocumentCodec#writeValue}}.  The implementation of this method in ProvidersCodecRegistry is not built for use in inner loops.  Some caching within the Codec implementation could be useful here.&lt;/li&gt;
	&lt;li&gt;&lt;tt&gt;ByteBufferBsonOutput&lt;/tt&gt; is great for minimizing heap use, but there is a performance cost of all the buffer management that it has to do in an inner loop.  We can consider using a simpler implementation of OutputBuffer that trades off memory use for speed.  For example, we could just cache 48MB buffers instead of power-of-two buffers.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;There are likely more opportunities available as well.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2563274">JAVA-5307</key>
            <summary>Address low hanging fruit in performance benchmarks</summary>
                <type id="11" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14707&amp;avatarType=issuetype">Epic</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</priority>
                        <status id="10049" iconUrl="https://jira.mongodb.org/images/icons/statuses/information.png" description="">Needs Triage</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="jeff.yemin@mongodb.com">Jeffrey Yemin</reporter>
                        <labels>
                    </labels>
                <created>Wed, 31 Jan 2024 21:58:57 +0000</created>
                <updated>Thu, 1 Feb 2024 18:27:10 +0000</updated>
                                                                            <component>Performance</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="6060200" author="jeff.yemin" created="Thu, 1 Feb 2024 18:27:10 +0000"  >&lt;p&gt;Quick and dirty implementation of the above ideas: &lt;a href=&quot;https://github.com/jyemin/mongo-java-driver/tree/j5307&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/jyemin/mongo-java-driver/tree/j5307&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_20965" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Cost Threshold %</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>100.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_20963" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Cost to Date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</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_10860" key="com.pyxis.greenhopper.jira:gh-epic-color">
                        <customfieldname>Epic Colour</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>ghx-label-5</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10858" key="com.pyxis.greenhopper.jira:gh-epic-label">
                        <customfieldname>Epic Name</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Performance Improvements Phase 1</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10859" key="com.pyxis.greenhopper.jira:gh-epic-status">
                        <customfieldname>Epic Status</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10640"><![CDATA[To Do]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_20964" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Final Cost Estimate</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i2su9g:</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_10856" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Scope Cost Estimate</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>