<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:52:03 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-342] On INSERT a List of documents should NOT be converted to a raw Array</title>
                <link>https://jira.mongodb.org/browse/JAVA-342</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;When inserting a list of documents via DBCollection.insert( List&amp;lt;DBObject&amp;gt; list ), this List gets converted into an Array:&lt;/p&gt;

&lt;p&gt;    public WriteResult insert(List&amp;lt;DBObject&amp;gt; list) throws MongoException &lt;/p&gt;
{
        return insert( list.toArray( new DBObject[list.size()] ) , getWriteConcern() );
    }

&lt;p&gt;Later on, when it gets to the real implementation of the insert in DBApiLayer.MyCollection.insert, each element of this array is inserted into BSONEncoder (  via OutMessage ). Further this array is never used.&lt;/p&gt;

&lt;p&gt;So, it seems that there is no real benefit to convert the initial List into an Array. And for a performance sake, it should be left alone as a List. &lt;/p&gt;

&lt;p&gt;For example, in my tests, for a 1,000,000 documents 665 bytes each, &quot;list.toArray( new DBObject&lt;span class=&quot;error&quot;&gt;&amp;#91;list.size()&amp;#93;&lt;/span&gt; )&quot; takes 40 milliseconds. While it may not seem like a lot, it all can add up given a bigger document size / more documents / etc.. And, unless I missed something, there is no good reason for this conversion in the first place.&lt;/p&gt;

&lt;p&gt;/Anatoly&lt;/p&gt;</description>
                <environment>N/A</environment>
        <key id="16520">JAVA-342</key>
            <summary>On INSERT a List of documents should NOT be converted to a raw Array</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="jeff.yemin@mongodb.com">Jeffrey Yemin</assignee>
                                    <reporter username="tolitius">Anatoly Polinsky</reporter>
                        <labels>
                            <label>insert</label>
                            <label>performance</label>
                    </labels>
                <created>Sun, 1 May 2011 03:27:25 +0000</created>
                <updated>Mon, 26 Nov 2012 21:50:41 +0000</updated>
                            <resolved>Thu, 13 Sep 2012 19:40:14 +0000</resolved>
                                    <version>2.5.3</version>
                                    <fixVersion>2.10.0</fixVersion>
                                    <component>Performance</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="164140" author="auto" created="Thu, 13 Sep 2012 19:38:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-09-04T11:26:46-07:00&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-342&quot; title=&quot;On INSERT a List of documents should NOT be converted to a raw Array&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-342&quot;&gt;&lt;del&gt;JAVA-342&lt;/del&gt;&lt;/a&gt;: Converting array to List instead of vice versa using Arrays.asList(T ...), to avoid double copy&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/c2a691f9111bd01ee77affd52f99c1ab0bbcd87b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/c2a691f9111bd01ee77affd52f99c1ab0bbcd87b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="157306" author="jeff.yemin" created="Tue, 28 Aug 2012 03:04:32 +0000"  >&lt;p&gt;Instead of converting List&amp;lt;DBObject&amp;gt; to DBObject[], convert DBObject[] to List&amp;lt;DBObject&amp;gt; using Arrays.asList(T ... a), which is a shallow copy.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrgj0f:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>10023</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>